Android 向け AFS モバイルアプリ(AFSMA)の実装

前提条件

この実装ガイドは、読者が次の内容を理解していることを前提としています。

  • AFS カスタム検索広告(CSA)の実装 プロトコル
  • Android アプリ開発
  • Google モバイル広告を関連付ける SDK(Android 用) (現在は Google Play 開発者サービスの一部)を使っています。 Google Play 開発者サービスのバージョン 9.0.0 が必要です。

クラス

アプリで AFSMA 広告(動的ハイト検索広告)を配信するには、以下の手順を行います。 次のクラスを実装します。

SearchAdView

  • このクラスは 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">
    </ph>
  • 不正行為防止、セキュリティ、コンプライアンス
  • 広告、マーケティング
  • おおよその位置情報の取得
で確認できます。 <ph type="x-smartling-placeholder"></ph> 詳細:
IP アドレスは、不正行為や不正使用のモニタリングに使用されるほか、ユーザーのおおよその位置情報を導出するためにも使用されます。

そして、おおよその位置情報を使用して、配信される広告が地域の規制を遵守できるようにするとともに、ユーザーのおおよその地域に基づいて関連性の高い広告を配信します。

アプリのアクティビティ <ph type="x-smartling-placeholder">
    </ph>
  • ページビュー、アプリ内のタップ
  • アプリ内の検索履歴
<ph type="x-smartling-placeholder"></ph> まとめ: <ph type="x-smartling-placeholder">
    </ph>
  • アナリティクス
  • 不正行為防止、セキュリティ、コンプライアンス
  • 広告、マーケティング
  • カスタマイズ
で確認できます。 <ph type="x-smartling-placeholder"></ph> 詳細:
お客様のアプリは、キーワードに関連する検索広告を返すためにユーザーの検索語句を提供します。返された広告の視聴回数とエンゲージメント(タップ)を測定します。
診断 <ph type="x-smartling-placeholder"></ph> まとめ: <ph type="x-smartling-placeholder">
    </ph>
  • アナリティクス
で確認できます。 <ph type="x-smartling-placeholder"></ph> 詳細:
この SDK では、サービスの改善を実装、測定するために、広告のレンダリング レイテンシを測定します。また、クラッシュ/エラーレポートの送信や、パブリッシャーによる機能の使われ方を把握するために、必要に応じて他の計測手法も追加しています。
デバイスまたはその他の識別子 <ph type="x-smartling-placeholder"></ph> まとめ: <ph type="x-smartling-placeholder">
    </ph>
  • 不正行為防止、セキュリティ、コンプライアンス
  • 広告、マーケティング
で確認できます。 <ph type="x-smartling-placeholder"></ph> 詳細:
デバイス ID は、不正行為や不正使用の監視や広告パフォーマンスの測定に使用されます。