Audience Network使用して、AndroidアプリにFacebook広告を掲載し、収益化することができます。このガイドでは、アプリにバナー広告と中サイズ矩形広告を追加する方法について説明します。
You can change placements in Monetization Manager to the Medium Rectangle format if these were previously configured as Banner for bidding. Similarly, for any new medium rectangle placements, navigate to the placement settings page in Monetization Manager and select Medium Rectangle (not Banner).
Placements will deliver as normal even if they are not changed to the medium rectangle format. However, to avoid confusion, we recommend that you change these placements to medium rectangle.
他の種類の広告ユニットに興味がある場合は、使用できる種類の一覧をご覧ください。
先に進む前に、Android設定ガイドの手順を完了してあることを確認してください。
レイアウトファイル(例: /res/layout/activity_main.xml
)で、広告のコンテナとして機能するレイアウトを追加します。
後でコードで参照するので、ここで設定したIDを覚えておいてください。
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout ... > ... <LinearLayout android:id="@+id/banner_container" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:orientation="vertical" app:layout_constraintBottom_toBottomOf="parent" /> ... </RelativeLayout>
Facebook広告SDKをインポートするには、アクティビティの先頭に以下のコードを追加します。
import com.facebook.ads.*;
次に、AdView
オブジェクトをインスタンス化し、広告の読み込みをリクエストします。AdView
はView
のサブクラスなので、他のビューと同じようにしてビュー階層に追加できます。
private AdView adView; @Override public void onCreate(Bundle savedInstanceState) { ... // Instantiate an AdView object. // NOTE: The placement ID from the Facebook Monetization Manager identifies your App. // To get test ads, add IMG_16_9_APP_INSTALL# to your placement id. Remove this when your app is ready to serve real ads. adView = new AdView(this, "IMG_16_9_APP_INSTALL#YOUR_PLACEMENT_ID", AdSize.BANNER_HEIGHT_50); // Find the Ad Container LinearLayout adContainer = (LinearLayout) findViewById(R.id.banner_container); // Add the ad view to your activity layout adContainer.addView(adView); // Request an ad adView.loadAd(); }
タブレット用のアプリを構築している場合は、代わりにAdSize.BANNER_HEIGHT_90
サイズの使用を検討してください。どの場合でも、バナーの幅は自由に設定できますが最小値は320pxです。
最後に、AdView
が使うリソースを解放するため、以下のコードをアクティビティのonDestroy()
関数に追加します。
@Override protected void onDestroy() { if (adView != null) { adView.destroy(); } super.onDestroy(); }
上記のコードが実行されると、表示は次のようになります。
デフォルトのGoogle Androidエミュレータを使用する場合は、テスト広告の読み込み前に次のコード行を追加します。AdSettings.addTestDevice("HASHED ID");
指定するIDは、デバイス上で広告を読み込むリクエストを最初に実行したときLogCatに出力される、ハッシュ化されたIDです。
Genymotionと物理的なデバイスではこのステップは必要ありません。実際の広告を使用してテストする場合は、テストガイドをご覧ください。
基本コードが実行されているので、特定のイベントをリッスンするため、AdListener
をAdView
に設定できます。
import android.widget.Toast; ... protected void onCreate(Bundle savedInstanceState) { ... AdListener adListener = new AdListener() { @Override public void onError(Ad ad, AdError adError) { // Ad error callback Toast.makeText( MainActivity.this, "Error: " + adError.getErrorMessage(), Toast.LENGTH_LONG) .show(); } @Override public void onAdLoaded(Ad ad) { // Ad loaded callback } @Override public void onAdClicked(Ad ad) { // Ad clicked callback } @Override public void onLoggingImpression(Ad ad) { // Ad impression logged callback // Please refer to Monetization Manager or Reporting API for final impression numbers } }; // Request an ad adView.loadAd(adView.buildLoadAdConfig().withAdListener(adListener).build()); }
Audience Networkでは、AdView
で使う広告サイズとして3種類のものがサポートされています。バナーユニットの幅は320ピクセル以上であれば自由に設定でき、高さのみが定義されています。
広告フォーマット | 広告サイズのリファレンス | サイズ | 推奨事項 |
---|---|---|---|
標準的なバナー |
| 320x50 | 携帯電話に最適です。 |
大サイズのバナー |
| 320x90 | タブレットや大型デバイスに最適です。 |
中サイズのバナー |
| 300x250 | スクロールできるフィードや最終階層の画面に最適です。 |
GithubでAudience Network Androidコードサンプルをご確認ください。プロジェクトをIDEにインポートして、機器またはエミュレータで実行します。
アプリを公開して収益を得る準備が整ったら、Audience NetworkのポリシーとFacebookコミュニティ規定を順守していることを確認してから、アプリのレビューを申請します。