前提条件
この実装ガイドは、読者が次の内容を理解していることを前提としています。
- AFS カスタム検索広告(CSA)の実装プロトコル
- Android アプリの開発
- Android(現在は Google Play 開発者サービスの一部)向け Google Mobile Ads SDK を Android Studio プロジェクトに関連付けるGoogle Play 開発者サービスのバージョン 9.0.0 が必要です。
クラス
アプリ内で AFSMA 広告(動的高さ検索広告とも呼ばれます)を配信するには、次のクラスを実装します。
- このクラスは Android の
ViewGroup
クラスを継承し、AFSMA 広告を表示します。SearchAdView
は、DynamicHeightSearchAdRequest
を使って広告のリクエストを行い、返された広告を表示します。SearchAdView
は、アプリの既存のビューグループのいずれかに追加する必要があります。 SearchAdView
は、SearchAdView
が実行されているコンテキスト(通常はActivity
)でインスタンス化する必要があります。SearchAdView
がインスタンス化されたら、AdSize.SEARCH
を指定してsetAdSize()
メソッドを呼び出して、AFSMA 広告をリクエストする必要があります。その他の列挙値は、AFS(モバイルアプリ)に対応していない広告をリクエストします。- プロパティ コードを使用して、このオブジェクトの
setAdUnitId()
メソッドを呼び出します。
DynamicHeightSearchAdRequest.Builder
- このクラスは、広告リクエスト パラメータをカプセル化します。これは、AFS パソコンおよびモバイルウェブ用の JavaScript 広告リクエスト オブジェクト(ページ オプション、ユニット オプション)でパラメータを設定するのに似ています。
- 適切なセッターを使用してパラメータを設定します(つまり、
setQuery()
を呼び出してクエリ パラメータを設定します)。
実装例
以下の例では、Activity
を使用して、ViewGroup
のサブビューとして SearchAdView
を作成しています。AFSMA 広告を適切にリクエストするには、SearchAdView
オブジェクトで AdSize.SEARCH
を指定して setAdSize()
メソッドを呼び出す必要があります。
// MainActivity.java implementation
// (MainActivity is a subclass of Activity)
// Create the SearchAdView
final SearchAdView searchAdView = new SearchAdView(this);
// Set parameter to request for dynamic height search ads
searchAdView.setAdSize(AdSize.SEARCH); // Important!
// Replace with your pub ID (e.g. ms-app-pub-9616389000213823)
searchAdView.setAdUnitId("ms-app-pub-################");
// Add searchAdView to parent view group
...
同じ Activity
内で、SearchAdView
でレンダリングされる広告のパラメータを指定する DynamicHeightSearchAdRequest.Builder
を作成します。AFSMA 広告は AFS カスタム検索広告と同じ方法で設定されます。詳しくは、AFS カスタム検索広告のリファレンスをご覧ください。
// Create the ad request
DynamicHeightSearchAdRequest.Builder builder =
new DynamicHeightSearchAdRequest.Builder();
builder.setQuery("flowers");
builder.setNumber(2);
// Replace with the ID of a style from your custom search styles
builder.setAdvancedOptionValue("csa_styleId", "0000000001");
// Customization options (set using setters on
// DynamicHeightSearchAdRequest.Builder)
builder.setAdTest(true);
DynamicHeightSearchAdRequest.Builder
オブジェクトに追加のプロパティを設定することで、他のカスタマイズ オプションを使用することもできます。
広告リクエストを行うには、SearchAdView
オブジェクトの DynamicHeightSearchAdRequest.Builder
オブジェクトを指定して loadAd()
メソッドを呼び出します。
searchAdView.loadAd(builder.build());
詳細オプション
広告リクエスト パラメータの大半は、DynamicHeightSearchAdRequest.Builder
オブジェクトのセッター メソッドで設定できます。DynamicHeightSearchAdRequest.Builder
にセッター メソッドがないパラメータは、setAdvancedOptionValue()
メソッドで Key-Value ペアを使用して設定できます。setAdvancedOptionValue()
メソッドで設定できる設定の一覧については、AFS カスタム検索広告のリファレンスをご覧ください。
プロパティを正しく設定するには、キーパラメータの先頭に「csa_」を付ける必要があります。
// Advanced customization options (set using key-value pair)
// Set a parameter (parameter_name) and its value (parameter_value)
// builder.setAdvancedOptionValue("csa_parameter_name", "parameter_value");
// Example: Show visible URL below description
// (domainLinkAboveDescription: false)
builder.setAdvancedOptionValue("csa_domainLinkAboveDescription", "false");
パラメータのセッター メソッドを使い、setAdvancedOptionValue
を使って設定した場合、2 回目の呼び出しで最初の呼び出しの値がオーバーライドされます。
エラーの調査
SearchAdView
(ここでは searchAdView
)には、エラーの調査に役立つ setAdListener()
メソッドが含まれています。同じ Activity
内:
searchAdView.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
// Called when an ad is loaded
super.onAdLoaded();
Toast.makeText(MainActivity.this, "Ad Loaded",
Toast.LENGTH_SHORT).show();
Log.d(MainActivity.class.getSimpleName(), "Ad Loaded");
}
@Override
public void onAdOpened() {
// Called when an ad opens an overlay that covers the screen
super.onAdOpened();
Toast.makeText(MainActivity.this, "Ad Opened",
Toast.LENGTH_SHORT).show();
Log.d(MainActivity.class.getSimpleName(), "Ad Opened");
}
@Override
public void onAdLeftApplication() {
// Called when an ad leaves the application
// (to go to the browser for example)
super.onAdLeftApplication();
Toast.makeText(MainActivity.this, "Ad Left Application",
Toast.LENGTH_SHORT).show();
Log.d(MainActivity.class.getSimpleName(), "Ad Left Application");
}
@Override
public void onAdFailedToLoad(int errorCode) {
// Called when an ad request failed
super.onAdFailedToLoad(errorCode);
Toast.makeText(MainActivity.this, "Ad Failed to Load: " + errorCode,
Toast.LENGTH_SHORT).show();
Log.e(MainActivity.class.getSimpleName(), "Ad Failed to Load: " +
errorCode);
}
});
onAdFailedToLoad()
コールバック メソッドで使用される定数については、API リファレンスをご覧ください。
Google Play のデータ開示要件に備える
2021 年 5 月、Google Play は新しいデータ セーフティ セクションを発表しました。このセクションには、アプリによるデータの収集、共有、セキュリティ対策について、デベロッパーから提供された開示情報が表示されます。
このページは、AFS Native SDK の使用に関するデータ開示要件を満たすために役立ちます(ショッピング向け AdSense のご利用にも該当します)。このページでは、SDK がエンドユーザー データを取り扱うかどうか、またその方法について説明しています。
Google では、お客様のサポートにおいて可能な限り情報を開示するよう努めておりますが、アプリによるエンドユーザー データの収集、共有、セキュリティ対策に関して、Google Play のデータ セーフティ セクション フォームにどのように対応するかは、アプリのデベロッパーとしてお客様の責任で判断していただく必要があります。
このページの情報を使用するにあたって
このページには、最新バージョンの SDK によってのみ収集されるエンドユーザー データが記載されています。
収集されるデータを最も適切に表すデータの種類を判断するには、Android のデータの種類に関するガイドをご覧ください。また、収集されたデータが特定のアプリで共有、使用される方法についても考慮する必要があります。
SDK によるアクセスと収集のデータの種類
荷物:
com.google.android.gms:play-services-afs-native
com.google.ads.afsn
自動的に収集されるデータ
AFS SDK は、次のデータを自動的に収集します。データはすべて、広告の配信を目的としてデバイスから Google に送信され、転送時に暗号化されます。アプリがユーザークエリで送信した場合を除き、ユーザーの個人情報が収集されることはありません。
データ | このデータは次の目的で収集されます。 |
---|---|
IP アドレス |
概要:
IP アドレスは、不正行為や不正使用のモニタリングのほか、ユーザーのおおよその位置情報を取得するために使用されます。 おおよその位置情報は、広告が配信される広告が地域の規制を遵守していることを確認するため、およびユーザーのおおよその現在地に関連する広告を表示するために使用されます。 |
アプリのアクティビティ
|
概要:
キーワードに関連する検索広告を Google が返せるように、お客様のアプリは、ユーザーの検索語句を Google に提供しています。ビューとエンゲージメント(タップ)は、返された広告によって測定されます。 |
診断 |
概要:
SDK では、サービスの改善を実装および測定するために、広告のレンダリングのレイテンシを測定します。また、パブリッシャーによる機能の利用状況を把握するために、クラッシュ レポートやエラーレポートの送信や、必要に応じて他の計測手法を追加することもあります。 |
デバイスまたはその他の識別子 |
概要:
デバイス ID は、不正行為や不正使用のモニタリングや広告のパフォーマンスの測定に使用されます。 |