Как улучшить рекламные кампании с помощью PPS

Выберите платформу: HTML5 Android iOS tvOS

В запросах объявлений можно отправлять контекстные данные и данные об аудитории в виде сигналов, предоставленных издателем (PPS). С помощью PPS вы можете использовать пользовательские данные, чтобы повысить эффективность алгоритмической монетизации. Для этого нужно передавать характеристики аудитории участникам аукциона, участвующим в транзакциях всех типов, в рамках стандартной таксономии. При этом не нужно предоставлять идентификаторы пользователей. Характеристики аудитории могут включать данные о поведении и интересах (классификация аудиторий IAB 1.1), а также контекстные данные (классификация контента IAB 2.2). Вы также можете отправлять структурированные сигналы, предоставленные издателем, которые определяются Google и позволяют отправлять дополнительные сигналы.

Как создать JSON-объект с пользовательскими сигналами

На верхнем уровне создайте объект JSON с одной парой "ключ-значение". Ключ должен быть PublisherProvidedTaxonomySignals, а его значение – массивом объектов. Каждый объект в массиве должен содержать две пары "ключ-значение":

  • Ключ taxonomy, который принимает следующие значения, сопоставленные с общедоступными спецификациями IAB:

    • IAB_AUDIENCE_1_1 для классификации аудиторий 1.1
    • IAB_CONTENT_2_2 для классификации контента 2.2
  • Ключ values с соответствующим массивом строковых значений таксономии.

Создайте массив структурированных сигналов

Для структурированных сигналов добавьте ключ PublisherProvidedStructuredSignals со значением массива объектов. Создайте объект на основе следующего списка пар "ключ-значение" для сигналов:

Переключить вид таблицы структурированных сигналов

Сигнал <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": MA
–
Распространение контента "delivery" –
  • "cd_1": стриминг
  • "cd_2": последовательно;
  • "cd_3": скачать
Качество производства "prodq"
  • "pq_1": профессиональное.
  • "pq_2": полупрофессиональное;
  • "pq_3": контент, созданный пользователями
–

Ниже приведен пример, в котором для сигналов классификации используются параметры 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;