前提条件
この実装ガイドは、読者が次の内容を理解していることを前提としています。
- AFS カスタム検索広告(CSA)の実装 プロトコル
- Android アプリ開発
- Google モバイル広告を関連付ける SDK(Android 用) (現在は Google Play 開発者サービスの一部)を使っています。 Google Play 開発者サービスのバージョン 9.0.0 が必要です。
クラス
アプリで AFSMA 広告(動的ハイト検索広告)を配信するには、以下の手順を行います。 次のクラスを実装します。
- このクラスは Android
ViewGroup
クラスから継承されます。 AFSMA の広告が表示されますSearchAdView
は、DynamicHeightSearchAdRequest
を呼び出して、返された広告をレンダリングします。SearchAdView
は、アプリの既存のビューグループのいずれかに追加する必要があります。 SearchAdView
をコンテキストを指定してインスタンス化する必要があります。SearchAdView
が実行されている(通常はActivity
)。SearchAdView
をインスタンス化したら、setAdSize()
メソッドを呼び出す必要があります。AdSize.SEARCH
を指定して AFSMA 広告をリクエストします。 その他の列挙値を指定すると、AFS(モバイルアプリ)に対応していない広告がリクエストされます。- プロパティ コードを使用して、このオブジェクトの
setAdUnitId()
メソッドを呼び出します。
DynamicHeightSearchAdRequest.Builder
- このクラスは、広告リクエストのパラメータをカプセル化します。 JavaScript 広告リクエスト オブジェクトでパラメータを設定するのに似ています。 (ページ オプション、ユニット オプション)を使用できます。
- 適切なセッター(つまり、
setQuery()
を呼び出してクエリ パラメータを設定します)。
実装例
以下の例は、Activity
を使用して SearchAdView
を作成する方法を示しています。
ViewGroup
のサブビューとして格納できます。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
内に、次の DynamicHeightSearchAdRequest.Builder
を作成します。
SearchAdView
でレンダリングされる広告のパラメータを指定します。
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
渡されます。
広告リクエストを行うには、loadAd()
メソッドを
SearchAdView
オブジェクトから DynamicHeightSearchAdRequest.Builder
オブジェクトを取得します。
searchAdView.loadAd(builder.build());
詳細オプション
広告リクエスト パラメータのほとんどは setter メソッドで設定できます。
DynamicHeightSearchAdRequest.Builder
オブジェクト。
セッター メソッドがないパラメータ
DynamicHeightSearchAdRequest.Builder
は、Key-Value ペアを使用して設定できます。
setAdvancedOptionValue()
メソッドを呼び出します。
AFS カスタム検索広告を表示
リファレンス
で設定できる設定の完全なリストについては、
setAdvancedOptionValue()
メソッドを使用します。
キーパラメータの先頭には「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 回目の呼び出しは
1 回目の呼び出しの値をオーバーライドします
エラーの調査
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 ネイティブ SDK の使用に関するデータ開示要件について説明します(ショッピング向け AdSense の使用にも適用されます)。このページでは、Google の SDK がエンドユーザー データを取り扱うかどうか、またどのように処理するかについて説明します。
Google は、パートナー様をサポートするにあたり、できる限り透明性を確保するよう努めています。ただし、アプリによるエンドユーザー データの収集、共有、セキュリティ対策について、Google Play のデータ セーフティ セクション フォームにどのように回答するかを決定する責任は、アプリ デベロッパーにあります。
このページの情報を使用するにあたって
このページでは、最新バージョンの SDK によって収集されるエンドユーザー データの一覧を示します。
収集データのデータタイプの特定に役立つ、Android のデータタイプに関するガイドを参考に、データ開示を完了しましょう。また、収集されたデータが特定のアプリで共有、使用される方法についても考慮する必要があります。
SDK がアクセスして収集するデータ型
パッケージ:
com.google.android.gms:play-services-afs-native
com.google.ads.afsn
自動的に収集されるデータ
AFS SDK は以下のデータを自動的に収集します。データはすべて、広告の配信を目的としてデバイスから Google に送信されます。データはすべて転送時に暗号化されます。アプリからユーザーのクエリで送信された場合を除き、ユーザーの個人情報が収集されることはありません。
データ | このデータは次の目的で収集されます... |
---|---|
IP アドレス |
<ph type="x-smartling-placeholder"></ph>
まとめ:
<ph type="x-smartling-placeholder">
IP アドレスは、不正行為や不正使用のモニタリングに使用されるほか、ユーザーのおおよその位置情報を導出するためにも使用されます。 そして、おおよその位置情報を使用して、配信される広告が地域の規制を遵守できるようにするとともに、ユーザーのおおよその地域に基づいて関連性の高い広告を配信します。 |
アプリのアクティビティ
<ph type="x-smartling-placeholder">
|
<ph type="x-smartling-placeholder"></ph>
まとめ:
<ph type="x-smartling-placeholder">
お客様のアプリは、キーワードに関連する検索広告を返すためにユーザーの検索語句を提供します。返された広告の視聴回数とエンゲージメント(タップ)を測定します。 |
診断 |
<ph type="x-smartling-placeholder"></ph>
まとめ:
<ph type="x-smartling-placeholder">
この SDK では、サービスの改善を実装、測定するために、広告のレンダリング レイテンシを測定します。また、クラッシュ/エラーレポートの送信や、パブリッシャーによる機能の使われ方を把握するために、必要に応じて他の計測手法も追加しています。 |
デバイスまたはその他の識別子 |
<ph type="x-smartling-placeholder"></ph>
まとめ:
<ph type="x-smartling-placeholder">
デバイス ID は、不正行為や不正使用の監視や広告パフォーマンスの測定に使用されます。 |