パブリッシャー提供のシグナル

オーディエンス データとコンテキスト データは、広告リクエストでパブリッシャー提供のシグナル(PPS)として送信できます。PPS では、ユーザー ID を共有することなく、標準の分類を使用してすべてのトランザクション タイプの入札者にオーディエンスの特性を伝えることで、ユーザーデータを使用してプログラマティックな収益化を改善できます。オーディエンス特性には、行動およびインタレスト ベースのデータ(IAB オーディエンス分類 1.1)やコンテキスト データ(IAB コンテンツの分類 2.2)などがあります。また、Google が定義したパブリッシャー提供の構造化シグナルを送信して、追加のシグナルの送信を許可することもできます。

ユーザーシグナルの JSON を作成する

最上位レベルで、単一の Key-Value ペアを含む JSON オブジェクトを作成します。キーは PublisherProvidedTaxonomySignals で、その値はオブジェクトの配列である必要があります。配列内の各オブジェクトには、2 つの Key-Value ペアが必要です。

  • taxonomy キー。次の IAB 公開仕様にマッピングされた次の値を使用できます。

    • IAB_AUDIENCE_1_1(オーディエンス分類 1.1 用)
    • IAB_CONTENT_2_2(コンテンツ分類 2.2 用)
  • values キーと、対応する文字列分類値の配列。

構造化シグナル配列を作成する

構造化シグナルの場合は、オブジェクトの配列の値を持つ PublisherProvidedStructuredSignals キーを追加します。次のシグナル Key-Value リストに基づいてオブジェクトを作成します。

構造化シグナル テーブルの表示を切り替える

シグナル <code" dir="ltr" translate="no">"type" Value</code"> 有効な "single_value" の値 "values" に指定可能な値
音声フィードタイプ "audio_feed"
  • "af_1": 音楽
  • "af_2": ブロードキャスト
  • "af_3": ポッドキャスト
なし
コンテンツのレーティング "content_rating"
  • "cr_1": G
  • "cr_2": PG
  • "cr_3": T
  • "cr_4": ママ
なし
コンテンツ配信 "delivery" なし
  • "cd_1": ストリーミング
  • "cd_2": プログレッシブ
  • "cd_3": ダウンロード
制作品質 "prodq"
  • "pq_1": プロが制作
  • "pq_2": プロシューマー
  • "pq_3": ユーザー作成コンテンツ(UGC)
なし

分類シグナルに IAB_AUDIENCE_1_1IAB_CONTENT_2_2 を使用し、構造化シグナルを含む次の例をご覧ください。

const userSignals = {
  "PublisherProvidedTaxonomySignals": [{
     "taxonomy": "IAB_AUDIENCE_1_1",
     "values": ["6", "284"]
     // '6' = 'Demographic | Age Range | 30-34'
     // '284' = 'Interest | Business and Finance |  Mergers and Acquisitions'
  },
  {
     "taxonomy": "IAB_CONTENT_2_2",
     "values": ["49", "138"]
     // '49' = 'Books and Literature | Poetry'
     // '138' = 'Education | College Education | College Planning'
  }],
  "PublisherProvidedStructuredSignals": [{
      "type": "audio_feed",
      "single_value": "af_1",
    },
    {
      "type": "delivery",
      "values": ["cd_1", "cd_3"],
    },
  ],
};

ストリーム リクエストを構成する

StreamRequest を使用して PPS を送信する手順は次のとおりです。

  • ユーザーの関心、行動、コンテキスト データを含む JSON 文字列を作成します。
  • 上記の JSON 文字列から Base64 エンコードの ASCII 文字列を作成します。
  • StreamRequest.setAdTagParameters を使用して、エンコードされた JSON を追加します。
JSONObject userSignalsObject = new JSONObject();
JSONArray userSignalsArray = new JSONArray();
JSONObject audienceTaxonomyObject = new JSONObject();
JSONArray valuesArray = new JSONArray();
valuesArray.put("1");
valuesArray.put("284");
try {
  audienceTaxonomyObject.put("taxonomy", "IAB_AUDIENCE_1_1");
  audienceTaxonomyObject.put("values", valuesArray);
} catch (JSONException e) {
  e.printStackTrace();
}

userSignalsArray.put(audienceTaxonomyObject);

try {
  userSignalsObject.put("PublisherProvidedTaxonomySignals", userSignalsArray);
} catch (JSONException e) {
  e.printStackTrace();
}

byte[] userSignalsByte=new byte[0];
try {
  userSignalsByte = userSignals.getBytes(StandardCharsets.UTF_8);
  String encodedBas64Signals = android.util.Base64.encodeToString(
    userSignalsByte,
    android.util.Base64.URL_SAFE);
  encodedSignals = URLEncoder.encode(encodedBas64Signals, "UTF-8");
} catch (java.io.UnsupportedEncodingException error) {
  Log.w("Sample app", error);
}

Map<String, String> adTagParamMap = new java.util.HashMap<String, String>();
adTagParamMap.put("ppsj", encodedSignals);

streamRequest.setAdTagParameters(adTagParamMap)