Prerequisites
この実装ガイドは、次に精通していることを前提としています。
- AFS カスタム検索広告(CSA)の実装プロトコル
- Android アプリの開発
- Android 向け Google Mobile Ads SDK(現在は Google Play 開発者サービスの一部)を 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 アドレスは、不正行為と不正行為のモニタリングや、ユーザーのおおよその位置情報の取得に使用されます。 その後、おおよその地域に基づいて、配信する広告が地域の規制に沿うようにし、ユーザーの大まかな地域に関連する広告を表示します。 |
アプリのアクティビティ
|
概要:
アプリは、そのキーワードに関連する検索広告を返すために、ユーザーの検索語句を提供します。返された広告の視聴回数とエンゲージメント(タップ)を測定します。 |
診断 |
概要:
この SDK は広告のレンダリング レイテンシを測定して、プロダクトの改善を実装し、測定できるようにします。また、パブリッシャーによる機能の使用状況を把握するために、クラッシュ/エラーレポートや、必要に応じてその他の計測手法を追加することもあります。 |
デバイスまたはその他の識別子 |
概要:
デバイス ID は、不正行為や悪用のモニタリングや広告のパフォーマンス測定に使用されます。 |