В запросах объявлений можно отправлять контекстные данные и данные об аудитории в виде сигналов, предоставленных издателем (PPS). С помощью PPS вы можете использовать пользовательские данные, чтобы повысить эффективность алгоритмической монетизации. Для этого нужно передавать характеристики аудитории участникам аукциона, участвующим в транзакциях всех типов, в рамках стандартной таксономии. При этом не нужно предоставлять идентификаторы пользователей. Характеристики аудитории могут включать данные о поведении и интересах (классификация аудиторий IAB 1.1), а также контекстные данные (классификация контента IAB 2.2). Вы также можете отправлять структурированные сигналы, предоставленные издателем, которые определяются Google и позволяют отправлять дополнительные сигналы.
Как создать JSON-объект с пользовательскими сигналами
На верхнем уровне создайте объект JSON с одной парой "ключ-значение". Ключ должен быть PublisherProvidedTaxonomySignals, а его значение – массивом объектов. Каждый объект в массиве должен содержать две пары "ключ-значение":
Ключ
taxonomy, который принимает следующие значения, сопоставленные с общедоступными спецификациями IAB:IAB_AUDIENCE_1_1для классификации аудиторий 1.1IAB_CONTENT_2_2для классификации контента 2.2
Ключ
valuesс соответствующим массивом строковых значений таксономии.
Создайте массив структурированных сигналов
Для структурированных сигналов добавьте ключ PublisherProvidedStructuredSignals со значением массива объектов. Создайте объект на основе следующего списка пар "ключ-значение" для сигналов:
Переключить вид таблицы структурированных сигналов
| Сигнал | <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 с данными об интересах, поведении или контекстных данных пользователя.
- Создайте строку ASCII в кодировке Base64 из строки JSON, приведенной выше.
- Добавьте закодированную строку в URL тега объявления с параметром
&ppsj=.
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;