Ulepszanie kampanii reklamowych za pomocą PPS

Wybierz platformę: HTML5 Android iOS tvOS Cast Roku

W żądaniach reklamy możesz wysyłać dane o odbiorcach i dane kontekstowe jako sygnały dostarczane przez wydawcę. Sygnały dostarczane przez wydawcę umożliwiają Ci wykorzystywanie danych o użytkownikach do poprawy zarabiania w sposób zautomatyzowany poprzez przekazywanie charakterystyki odbiorców podmiotom ustalającym stawki we wszystkich rodzajach transakcji z użyciem standardowych taksonomii bez konieczności udostępniania identyfikatorów użytkowników. Charakterystyka odbiorców może obejmować dane związane z zachowaniem i dane oparte na zainteresowaniach (taksonomia odbiorców IAB w wersji 1.1) oraz dane kontekstowe (taksonomia treści IAB w wersji 2.2). Możesz też wysyłać zdefiniowane przez Google sygnały strukturalne dostarczane przez wydawcę, które umożliwiają wysyłanie dodatkowych sygnałów.

Tworzenie pliku JSON sygnałów użytkownika

Na najwyższym poziomie utwórz obiekt JSON z pojedynczą parą klucz-wartość. Klucz powinien mieć wartość PublisherProvidedTaxonomySignals, a jego wartość powinna być tablicą obiektów. Każdy obiekt w tablicy powinien mieć 2 pary klucz-wartość:

  • Klucz taxonomy, który akceptuje te wartości, które są mapowane zgodnie z publicznymi specyfikacjami IAB:

    • IAB_AUDIENCE_1_1 w przypadku taksonomii odbiorców 1.1
    • IAB_CONTENT_2_2 w przypadku taksonomii treści w wersji 2.2
  • Klucz values z odpowiadającą mu tablicą wartości z mapy kategorii w formie ciągów znaków.

Tworzenie tablicy sygnałów strukturalnych

W przypadku sygnałów strukturalnych dodaj klucz PublisherProvidedStructuredSignals z wartością w postaci tablicy obiektów. Utwórz obiekt na podstawie tej listy par klucz-wartość sygnału:

Przełączanie widoku tabeli sygnałów strukturalnych

Sygnał <code" dir="ltr" translate="no">"type" Value</code"> Możliwe wartości "single_value" Możliwe wartości "values"
Typ pliku danych audio "audio_feed"
  • "af_1": Muzyka
  • "af_2": Broadcast
  • "af_3": Podcast
nie dotyczy
Ocena treści "content_rating"
  • "cr_1": G
  • "cr_2": PG
  • "cr_3": T
  • "cr_4": MA
nie dotyczy
Dostawa treści "delivery" nie dotyczy
  • "cd_1": streaming
  • "cd_2": progresywne
  • "cd_3": Pobierz
Poziom produkcji "prodq"
  • "pq_1": Opracowane przez profesjonalistę
  • "pq_2": prosument
  • "pq_3": Treści wygenerowane przez użytkowników
nie dotyczy

Poniżej znajdziesz przykład, w którym użyto znaków IAB_AUDIENCE_1_1IAB_CONTENT_2_2 do oznaczenia sygnałów taksonomii oraz sygnałów strukturalnych.

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"],
    },
  ],
};

Konfigurowanie żądania strumienia

Aby wysłać PPS za pomocą StreamRequest:

  • Utwórz ciąg znaków JSON z danymi o zainteresowaniach, zachowaniu lub kontekście użytkownika.
  • Utwórz ciąg znaków ASCII z kodowaniem Base64 na podstawie powyższego ciągu znaków JSON.
  • Dodaj zakodowany kod JSON za pomocą tagu StreamRequest.setAdTagParameters.
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)