Signaux fournis par l'éditeur

Vous pouvez envoyer des données d'audience et contextuelles en tant que signaux fournis par l'éditeur (PPS) dans les demandes d'annonces. Avec les PPS, vous pouvez utiliser vos données utilisateur pour améliorer la monétisation programmatique en communiquant les caractéristiques de votre audience aux enchérisseurs dans tous les types de transactions, à l'aide de taxonomies standards, sans avoir à partager les identifiants utilisateur. Vos caractéristiques d'audience peuvent inclure des données sur le comportement et basées sur les centres d'intérêt (Taxonomie d'audience de l'IAB 1.1) et des données contextuelles (Taxonomie de contenu de l'IAB 2.2). Vous pouvez également envoyer des signaux structurés fournis par l'éditeur, qui sont définis par Google et permettent d'envoyer des signaux supplémentaires.

Créer le fichier JSON des signaux utilisateur

Au niveau supérieur, créez un objet JSON avec une seule paire clé-valeur. La clé doit être PublisherProvidedTaxonomySignals et sa valeur doit être un tableau d'objets. Chaque objet du tableau doit comporter deux paires clé-valeur :

  • La clé taxonomy, qui accepte les valeurs suivantes mappées aux spécifications publiques de l'IAB suivantes :

    • IAB_AUDIENCE_1_1 pour la taxonomie d'audience 1.1
    • IAB_CONTENT_2_2 pour la taxonomie de contenu 2.2
  • La clé values avec un tableau correspondant de valeurs de taxonomie de chaîne.

Créer le tableau des signaux structurés

Pour les signaux structurés, ajoutez la clé PublisherProvidedStructuredSignals avec une valeur correspondant à un tableau d'objets. Construisez l'objet en fonction de la liste suivante de clés-valeurs de signal :

Activer/Désactiver l'affichage du tableau des signaux structurés

Signal <code" dir="ltr" translate="no">"type" Valeur</code"> Valeurs possibles pour "single_value" Valeurs possibles pour "values"
Type de flux audio "audio_feed"
  • "af_1": musique
  • "af_2" : diffusion
  • "af_3" : podcast
n/a
Classification du contenu "content_rating"
  • "cr_1": G
  • "cr_2" : PG
  • "cr_3": T
  • "cr_4" : MA
n/a
Diffusion de contenu "delivery" n/a
  • "cd_1": streaming
  • "cd_2": progressive
  • "cd_3" : téléchargement
Qualité de la production "prodq"
  • "pq_1" : produit par des professionnels
  • "pq_2" : prosommateur
  • "pq_3": contenu généré par les utilisateurs
n/a

Consultez l'exemple suivant qui utilise IAB_AUDIENCE_1_1 et IAB_CONTENT_2_2 pour les signaux de taxonomie et inclut des signaux structurés.

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

Configurer votre demande de flux

Pour envoyer des PPS avec votre StreamRequest, procédez comme suit :

  • Créez une chaîne JSON avec les centres d'intérêt, le comportement ou les données contextuelles de l'utilisateur.
  • Créez une chaîne ASCII encodée en base64 à partir de la chaîne JSON ci-dessus.
  • Ajoutez votre fichier JSON encodé à l'aide de 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)