まえがき
Googleに「AdMob」を導入すると、最初のサイトはAdMobサイトではなく、Googleサイトになります。 それに切り替えると、Firebaseの
暗黒面(最近Googleが購入した)に少し誘惑され始めます。
Firebaseは、アプリケーション(広告の
身長、体重 、国、ビュー数、インストールされたAndroidバージョンなど)の非常に広範な分析機能(少なくとも、マーケティング担当者ではなくプログラマーとして)を提供します。
最初に見つかったのは
postでしたが、Eclipse向けでした。例として最初の試みを行った後、非難され、実際にエラーに関する警告が始まりました。
より多くの情報を読んだ後、AdMobが最近firebaseに切り替えたため、自分でそれを把握する必要があることが明らかになりました。
それと一緒に暮らす方法を見てみましょう。
最小要件:(記事が書かれたことを考慮して)。
- Android Studio 2.2.2
- Google Developer Consoleに登録されている
- AdMobに登録されている
脳
ステップ1
build.gradleファイルに依存関係を追加します。 「モジュール:アプリ」の最初のもの:
2番目( 'Project:AdMobOnHabr')で:
その後、ツール→Android→「Gradleファイルとプロジェクトを同期」を実行し、プロジェクトをコンパイルすることをお勧めします。 目に見える結果はまだありませんが、最も重要なこと-エラーはありませんか? いいね! どうぞ
ステップ2
AdMobアカウントにログインします。 アプリケーションを手動で追加することを選択します(アプリケーションが既にGoogle Playで公開されている場合は、最初のタブの検索を使用します)。
アプリケーションに広告
バナーを追加します(自分で他のタイプに精通することをお勧めします)。 最小の頻度である30秒を選択しましたが、広告ユニットの名前はあなたの裁量に任されています。
その後、「Firebase Analyticsの設定(
オプション )」-必要な単語に下線を付けて提供します。 これまでのところ、これは
無駄です-
スキップ 。 「統合手順」に慣れて、[
完了 ]をクリックします。 リダイレクト後、ページと待望の広告ユニットIDが表示されます。
広告ユニットIDを
strings.xmlに追加し
ます 。
別のアクティビティの広告ユニットには新しいIDが必要であることを忘れないでください。
ステップ3
AdView要素を
activity_admobbanner.xmlに追加します。
属性「ads:adUnitId」に、広告ユニットのIDを使用して、
strings.xmlからリソースを書き込みます。
いくつかのヒントとメモ:
- 親ViewGroupにネームスペースを追加するときに、 広告とアプリを混同しないでください。
- API <16では、View広告要素を追加し、誤ってxmlnsを登録しました: app = 'http://schemas.android.com/apk/res-auto'は、 'adSize'(adSizeが欠落している)属性によるレンダリングエラーのみを示しました。 他の場合にも同様のエラーが発生する可能性があるため、これについて言及します。 私を助けた解決策: xmlns: ads = 'http://schemas.android.com/apk/res-auto'を広告要素のViewタグに追加します( ヒントはSOから取得 )。
- 「ads:adSize」属性の値がBANNERによって設定されている場合、広告ユニットはおそらくデバイスの画面全体に表示されません(幅)。 この割礼は私には向いていませんでした。 ソリューションは簡単です-属性値をSMART_BANNERに変更します。 小さな値があります-この値を追加すると、プレビューでバナーが大きくなり、有用な要素が閉じます。属性を追加し、必要な高さを設定することでこれを修正します。
ツールの名前空間を親ViewGroupに追加することを忘れないでください:
コードスタイルタグのヒント次のようなタグを閉じることをお勧めします。
しかし、
ASはタグの本文が空であると言い、コードを書くための良い口調の推奨事項で新しい行から「/>」を書くことをお勧めします。 空のタグは追加情報を提供せず、コードを1行追加するだけなので、平均的なものをお勧めします。
ステップ4
Google Mobile Ads SDKを初期化します。 これを行うには、AdMobから取得したアプリIDが必要です。 右上の
歯車をクリック→アプリケーション管理:
ここ
に、アプリIDが必要な
幸福度があります。
アプリIDを使用して初期化自体を記述します。
ステップ5
Googleによる最後のアクションは、待望の広告をAdView要素にロードすることです。
AdMobポリシーに従って、エミュレータに実際の広告を表示することはできません(テスト広告のみが表示されます)。 かなり論理的です。 しかし、実際のデバイスをお持ちの場合、そのデバイスで実際に広告をテストして、成功をお楽しみください。
実際のデバイスでの広告のテスト- 実際のテストデバイスに広告を表示するには、次のようにコードを書き換えます。
問題は残っています-魔法のDEVICE_ID_EMULATORを入手するには? 全員が非常に「悲惨な」方法を全会一致で推奨します。DEVICE_ID_EMULATORの代わりに任意の値を書き込みます。次に例を示します。
次に、デバイスでアプリケーションを起動し、logcatを参照してください。 そこに次のようなログがあります:
次に行うことは明確です-結果のコードを上記のメソッドにコピーして、楽しんでください。
注 :
それは夜でした、私は眠りたかったです、一般に、私の間違いを繰り返さないでください:
実際のデバイスのIDを検索する場合-アプリケーションが実行されているデバイスのlogcatを選択することを忘れないでください(たとえば、さらにいくつかのエミュレーターを実行しており、必要なIDがエミュレーターログに表示されない理由を永続的に理解できませんでした)
書かれているとおりにすべてを行ったようで、すべてが機能するはずです。そして、次の機能で作業
するために寝る必要がありますが...
ステップ6
行のどこか
で、 google-services.jsonがなければ機能しません。 ほとんどの場合、このファイルはまだありません。 一緒に検索しましょう。
Googleは、
google-services.jsonの作成方法に関する指示の「シート」を
提供します 。 しかし、私は質問がありました-あなたは本当にこのファイルを2k16で自分で座って書く必要がありますか?
答えは
Google Developer Consoleにあります。彼らは皆、怠programmerなプログラマーの欲望について考えました。
フィールドに入力します。
続行をクリックします。 Google Sing-Inを選択します。 それは簡単です-SHA-1を記念品として知っていますか?
突然忘れられた場合-私は助けることができます。 SHA-1は、
keyltoolまたは少し不器用なものを使用して、
AS自体の
gradleを
介して認識できます。 追加のアクションは行いたくないので、2番目の方法を選択します。
- サイドタブGradle( ASウィンドウの右側)をクリックします。
- プロジェクトを選択します(必要に応じて、[更新]をクリックします)。
- タスクを開く-> android;
- signingReportをダブルクリックします。
- コンソールテキストモードの実行に切り替えます(下のスクリーンショットを参照)。
- 後でビルドするアプリケーションを選択することを忘れないでください(signingReportではありません)。
そして、これがあなたのSHA-1です。 覚えてますか?
結果のSHA-1コードを貼り付け、[Googleサインインを有効にする]および[構成ファイルの生成を続行する]をクリックします。
さて、あなたはポイントを得る。 生成されたファイルをダウンロードして、アプリケーションのルートディレクトリにコピーします。
プロジェクトをまとめる-
完了 。 このような簡単な操作により、アプリケーションに広告が表示されるようになりました。
PS:数秒でコピーアンドペーストするだけでなく、少なくとも何かを覚えておくための写真のコード。