広告リクエストでオーディエンス データとコンテキスト データを パブリッシャー提供のシグナル (PPS)として送信できます。PPS を使用すると、ユーザー識別子を共有することなく、標準の分類を使用して、すべての 取引タイプの入札者にオーディエンスの特性を伝えることにより、ユーザーデータを使用して プログラマティックな収益化を改善できます。オーディエンスの特性には、行動や興味に基づくデータ(IAB オーディエンスの分類 1.1)やコンテキスト データ(IAB コンテンツの分類 2.2)を含めることができます。Google が定義したパブリッシャー提供の構造化シグナルを送信することもできます。これにより、追加のシグナルを送信できます。
ユーザー シグナルの JSON を作成する
最上位レベルで、Key-Value ペアが 1 つの 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" |
|
なし |
| コンテンツのレーティング | "content_rating" |
|
なし |
| コンテンツ配信 | "delivery" |
なし |
|
| 制作品質 | "prodq" |
|
なし |
分類シグナルに IAB_AUDIENCE_1_1 と IAB_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"],
},
],
};
広告リクエストを構成する
PPS を送信する手順は次のとおりです。
AdsRequest
- ユーザーの興味、行動、コンテキスト データを含む JSON 文字列を作成します。
- 上記の JSON 文字列から Base64 エンコードされた ASCII 文字列を作成します。
- エンコードされた文字列を
&ppsj=パラメータを使用して広告タグ URL に追加します。
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();
}
String userSignals = userSignalsObject.toString();
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);
}
String finalAdTag = sampleAdTag + "&ppsj=" + encodedSignals;