Partager via


API de plateforme numérique - Service de profil publicitaire

Un réseau peut vouloir créer des « profils d’approbation publicitaire » pour définir les types de marques et de créations qui peuvent et ne peuvent pas s’exécuter sur les pages de leurs éditeurs. Le service de profil publicitaire vous permet de créer vos profils d’approbation publicitaire au niveau du membre ou de l’éditeur. Pour les créer au niveau de l’éditeur, incluez un ID d’éditeur. Si aucun ID d’éditeur n’est inclus, il s’agit d’un profil de niveau réseau disponible pour une utilisation avec tous les éditeurs.

Les profils publicitaires se composent de plusieurs éléments : membres, marques, créations, langage, attributs techniques, catégories et serveurs publicitaires. Lors de la création d’un profil publicitaire, vous pouvez approuver ou interdire chaque création dans le système individuellement, mais vous préférerez peut-être gagner du temps en approuvant ou en interdisant des marques ou des membres entiers.

  • Un membre doit être approuvé : Si vous pensez que leurs annonces seront toujours acceptables. Par instance, vous pouvez « faire confiance » au réseau A pour diffuser des publicités de qualité, ce qui vous permet d’éviter d’avoir à auditer chacune de leurs créations.
  • Une marque doit être approuvée : Si vous pensez que les publicités de cette marque seront presque toujours acceptables. Toutefois, vous aurez toujours la possibilité d’interdire un créatif spécifique même s’il fait partie d’une marque de confiance. Si la création spécifique n’est pas interdite, elle s’exécute par défaut.
  • Une marque doit être interdite : Si vous pensez que les publicités de cette marque ne seront jamais acceptables. Vous aurez toujours la possibilité d’approuver un créateur spécifique affecté à une marque « interdite », sauf si le membre est interdit.
  • Le profil par défaut (vide ou ID défini sur ) interdit les publicités non auditées d’autres membres (c’est-à-dire 0lorsque le member_id du créatif est différent de celui member_id du TinyTag).

Remarque

Une marque peut avoir une marque parente, comme un moyen de rassembler des marques par société mère/société enfant. Si un vendeur bloque/approuve une marque parente, toutes les marques enfants sans paramètre *explicite* approuver/bloquer correspondent au paramètre de marque parente.

API REST

HTTP, méthode Endpoint Description
GET https://api.appnexus.com/ad-profile Afficher tous les profils publicitaires d’un membre.
GET https://api.appnexus.com/ad-profile?id=AD_PROFILE_ID Afficher un profil publicitaire particulier.
GET https://api.appnexus.com/ad-profile?publisher_id=PUBLISHER_ID Afficher tous les profils publicitaires d’un éditeur spécifique.
POST https://api.appnexus.com/ad-profile
(ad_profile JSON)
Ajoutez un nouveau profil d’annonce au niveau du membre.
POST https://api.appnexus.com/ad-profile?publisher_id=PUBLISHER_ID
(ad_profile JSON)
Ajoutez un nouveau profil publicitaire au niveau de l’éditeur.
PUT https://api.appnexus.com/ad-profile?id=AD_PROFILE_ID
(ad_profile JSON)
Modifier un profil publicitaire existant.
DELETE https://api.appnexus.com/ad-profile?id=AD_PROFILE_ID Supprimer un profil publicitaire existant.
GET https://api.appnexus.com/ad-profile?sort=description Triez les profils d’annonces par ordre alphabétique par description.
GET https://api.appnexus.com/ad-profile?search=text_of_description Recherchez un profil publicitaire par sa description.

Champs JSON

Champs Type Description
id int ID Xandr attribué par l’API pour référencer ce ad_profile.
Obligatoire On :PUT, dans la chaîne de requête.
state enum État du profil publicitaire. Valeurs possibles : "active" ou "inactive".
Par défaut:"active"
member_id int ID de membre propriétaire de ce ad_profile.
description string Description facultative.
default_member_status enum Le membre status à utiliser par défaut lorsqu’aucune sélection explicite n’est effectuée. Valeurs possibles :
- "case-by-case": les éléments créatifs de ce membre doivent passer tous les filtres de marque, de langue, d’attribut technique, de catégorie et de serveur publicitaire définis sur le profil publicitaire
- "banned": Aucun des créatifs de ce membre n’est autorisé à servir.
default_brand_status enum La marque status être utilisée par défaut lorsqu’aucune sélection explicite n’est effectuée. Valeurs possibles : "trusted" ou "banned".
default_language_status enum La langue status à utiliser par défaut lorsqu’aucune sélection explicite n’est effectuée. Valeurs possibles : "trusted" ou "banned".
default_ad_server_status enum Le serveur publicitaire status être utilisé par défaut lorsqu’aucune sélection explicite n’est effectuée. Valeurs possibles : "trusted" ou "banned".
default_category_status enum La catégorie status être utilisée par défaut lorsqu’aucune sélection explicite n’est effectuée. Valeurs possibles : "trusted" ou "banned".
default_technical_attribute_status enum L’attribut technique status être utilisé par défaut lorsqu’aucune sélection explicite n’est effectuée. Valeurs possibles : "trusted" ou "banned".
default_audit_type enum L’audit status être utilisé par défaut lorsqu’aucune sélection explicite n’est effectuée. Valeurs possibles :
- "platform": les créatifs doivent avoir subi l’audit de la plateforme Xandr.
- "platform_or_self": les créatifs doivent avoir été auto-audités par le membre ou avoir fait l’objet d’un audit Xandr.
members tableau d’objets Tableau de membres avec leur status. Pour plus d’informations, consultez Membres ci-dessous.
brands tableau d’objets Gamme de marques (marques parentes et marques enfants) avec leurs status. Pour plus d’informations, consultez Marques ci-dessous.
creatives tableau d’objets Tableau de créatifs avec leur status. Pour plus d’informations, consultez Créations ci-dessous.
languages tableau d’objets Tableau de langues avec leur status. Pour plus d’informations, consultez Langues ci-dessous.
ad_servers tableau d’objets Tableau de serveurs publicitaires avec leur status. Pour plus d’informations, consultez Serveurs publicitaires ci-dessous.
categories tableau d’objets Tableau de catégories avec leur status. Pour plus d’informations, consultez Catégories ci-dessous.
technical_attributes tableau d’objets Tableau d’attributs techniques avec leur status. Pour plus d’informations, consultez Attributs techniques ci-dessous.
frequency_caps tableau d’objets Tableau de limites de fréquence/récurrence. Pour plus d’informations, consultez Limite de fréquence ci-dessous.
total_creative_count int Nombre de créatifs.
approved_creative_count int Nombre de créations approuvées.
banned_creative_count int Nombre de créatifs interdits.
creatives_approved_percent double Pourcentage du nombre total de créations approuvées.
creatives_unreviewed int Nombre de créations en attente de révision.
brands_unreviewed int Nombre de marques en attente d’examen.
exclude_unaudited valeur booléenne Indique s’il faut ou non exclure les créations qui n’ont pas été auditées.
exclude_unaudited_direct valeur booléenne Indique s’il faut ou non exclure les créations qui n’ont pas été auditées pour les annonceurs directs.
audit_type_direct string Spécifie le type d’audit requis pour servir les éléments créatifs pour les annonceurs directs. Valeurs autorisées :
- "platform": les créatifs doivent faire l’objet d’un audit de la plateforme Xandr.
- "platform_or_self": les créatifs doivent être auto-audités par le membre ou subir un audit Xandr.
check_attributes_direct valeur booléenne Détermine si les éléments créatifs avec des attributs techniques peuvent ou ne peuvent pas être exécutés pour les annonceurs directs.
excluded_landing_page_urls tableau d’URL Non disponible. Les interdictions d’exclusions concurrentielles devraient être appliquées par le biais d’exclusions de marque.
notes string Remarques facultatives.
publisher_id int ID de l’éditeur à associer au profil publicitaire.
last_modified Timestamp En lecture seule. Horodatage de la dernière modification de ce profil publicitaire.
require_seller_audit_default valeur booléenne Indique si l’audit du vendeur est requis ou non.
Valeur par défaut : false

Members

Champ Type Description
id int ID du membre.
status enum Indique si le membre peut ou ne peut pas exécuter des créations sur les pages de vos éditeurs. Valeurs autorisées :
- "trusted": tous les créatifs de ce membre peuvent servir.
- "case-by-case": les éléments créatifs de ce membre doivent passer tous les filtres de marque, de langue, d’attribut technique, de catégorie et de serveur publicitaire définis sur le profil publicitaire.
- "banned": Aucun des créatifs de ce membre n’est autorisé à servir.
audit_type enum Type d’audit dont vous aurez besoin pour servir les créatifs de ce membre. Valeurs autorisées :
- "platform": les créatifs doivent avoir fait l’objet d’un audit de la plateforme Xandr.
- "platform_or_self": les créatifs doivent avoir été auto-audités par le membre ou avoir fait l’objet d’un audit Xandr.
exclude_unaudited valeur booléenne Si la valeur est true, les créations non auditées sont exclues de ce membre.
require_seller_audit_status enum Si le membre peut exiger son propre audit pour les créatifs d’un acheteur donné :
- "always": ce membre peut toujours exiger un audit pour les créatifs d’un acheteur donné.
- "never": ce membre ne peut jamais exiger d’audit pour les créatifs d’un acheteur donné.
- "case-by-case": revenez à l’audit ad_profile.require_seller_audit_default status requis.

Conseil

La combinaison des champs Membre status, audit_typeet exclude_unaudited détermine le niveau de confiance de l’acheteur indiqué dans le profil Qualité de l’annonce réseau.

status audit_type exclude_unaudited Niveau de confiance dans l’interface utilisateur
banned S/O S/O Interdit
case-by-case platform true Standard
case-by-case platform_or_self true Moyen
trusted platform true Élevé
trusted platform false Maximum

Marques

Champ Type Description
id int ID de la marque. Vous pouvez utiliser le service de marque pour récupérer les ID de marque.
status enum Si les créatifs de cette marque peuvent ou non s’exécuter sur les pages de vos éditeurs. Valeurs possibles : "trusted" ou "banned".

Note: Si une marque est marquée comme éligible, les créatifs associés à cette marque serviront même si la catégorie de la marque est Interdite. Par exemple, si vous marquez la marque « 1 et 1 Internet (17310) » comme Éligible, elle servira même si vous interdisez sa catégorie globale, « Télécommunications (27) ».
parent_brand_id int Lorsqu’une marque a une marque parente, la valeur par défaut est définie sur null.

Créatifs

Champ Type Description
id int ID du créatif. Vous pouvez utiliser creative service pour récupérer des ID créatifs.
approved valeur booléenne Si truela valeur est , la création peut s’exécuter sur les pages de vos éditeurs.

Langages

Champ Type Description
id int ID de la langue. Vous pouvez utiliser le service de langage pour récupérer les ID de langue.
status enum Indique si les créatifs de ce langage peuvent ou non exécuter des créations sur les pages de vos éditeurs. Valeurs possibles : "trusted" ou "banned".

Serveurs publicitaires

Champ Type Description
id int ID du serveur publicitaire. Vous pouvez utiliser le service Ad Server pour récupérer les ID de serveur publicitaire.
status enum Indique si le serveur publicitaire peut ou ne peut pas exécuter des créations sur les pages de vos éditeurs. Valeurs possibles : "trusted" ou "banned".

Catégories

Champ Type Description
id int ID de la catégorie. Vous pouvez utiliser le service de catégorie pour récupérer les ID de catégorie.
status enum Indique si les créatifs de cette catégorie peuvent ou ne peuvent pas s’exécuter sur les pages de vos éditeurs. Valeurs possibles : "trusted" ou "banned".

Attributs techniques

Champ Type Description
id int ID de l’attribut technique. Vous pouvez utiliser le service d’attributs techniques pour récupérer les ID d’attribut technique.
status enum Indique si les créatifs dotés de cet attribut technique peuvent ou non s’exécuter sur les pages de vos éditeurs. Valeurs possibles : "trusted" ou "banned".

Limites de fréquence

Champ Type Description
id int En lecture seule. ID de la définition de limite de fréquence.
member_id int En lecture seule. ID du membre propriétaire du profil publicitaire.
max_session_imps int Nombre maximal d’impressions par personne et par session pour les créatifs avec le spécifié technical_attributes ou categories. Si elle est définie, cette valeur doit être comprise entre 0 et 255.
max_day_imps int Nombre maximal d’impressions par personne et par jour pour les créatifs avec le spécifié technical_attributes ou categories. Si elle est définie, cette valeur doit être comprise entre 0 et 255.
min_minutes_per_imp int Nombre minimal de minutes entre les impressions par utilisateur pour les créations avec le ou categoriesspécifiétechnical_attributes.
cap_users_without_cookie valeur booléenne Si truela valeur est , les utilisateurs sans cookies ne seront jamais affichés avec le ou categoriesspécifiétechnical_attributes. Ils seront traités comme s’ils ont atteint la limite de fréquence.
Si falsela valeur est , aucune limite de fréquence pour le spécifique technical_attributes ou categories ne s’applique aux utilisateurs sans cookies. Il leur sera possible de voir un nombre illimité de créations avec le ou categoriesspécifiétechnical_attributes.
technical_attributes tableau ID des attributs techniques que vous limitez. Vous pouvez utiliser le service d’attributs techniques pour obtenir la liste complète des attributs techniques. Les technical_attributes champs et categories ont une relation OR.
categories tableau ID des catégories que vous limitez. Vous pouvez utiliser le service de catégorie pour obtenir la liste complète des catégories. Les technical_attributes champs et categories ont une relation OR.

Exemples

Avertissement

Ajouter sur PUT

Vous remplacerez les données existantes par le contenu de votre PUT requête, sauf si vous ajoutez les paramètres append=true de chaîne de requête à la requête. Pour plus d’informations, consultez Sémantique de l’API et l’exemple Mettre à jour un profil publicitaire existant ci-dessous.

Create un nouveau profil publicitaire

Il s’agit d’un profil assez complexe. Ci-dessous, nous avons utilisé la cat commande pour générer un exemple de fichier JSON de profil publicitaire.

$ cat ad_profile
{
    "ad-profile": {
        "description": "Network Level ad profile",
        "member_id": 326,
        "brands": [
            {
                "id": "168",
                "status": "banned"
            },
            {
                "id": "255",
                "status": "banned"
            },
            {
                "id": "1072",
                "status": "trusted"
            },
            {
                "id": "1090",
                "status": "trusted"
            }
        ],
        "creatives": [
            {
                "id": "5",
                "approved": true
            }
        ],
        "notes": "This is a great ad profile",
        "default_language_status": "banned",
        "default_ad_server_status": "trusted",
        "default_category_status": "trusted",
        "default_technical_attribute_status": "trusted",
        "excluded_landing_page_urls": ["https://www.netflix.com","https://www.blockbuster.com"],
        "languages": [
            {
                "id": 1,
                "status": "trusted"
            }
        ],
        "ad_servers": null,
        "categories": [
            {
                "id": 41,
                "status": "banned"
            },
            {
                "id": 43,
                "status": "trusted"
            }
        ]
    }
}

Mettre à jour un profil publicitaire existant

Étant donné le profil d’annonce JSON dans le premier exemple, supposons que vous souhaitez mettre à jour le categories tableau pour inclure un autre élément. Dans un cas d’usage réel, il peut y avoir 47 catégories dans le tableau. La sémantique de PUT signifie que pour ajouter une autre catégorie au tableau, vous devez passer les 47 catégories existantes plus la nouvelle.

Vous pouvez éviter ce travail supplémentaire en ajoutant les paramètres append=true de chaîne de requête à votre requête, comme illustré dans l’exemple ci-dessous. Pour des raisons de compatibilité descendante, les paramètres append_only=true fonctionnent également.

$ cat ad-profile-update.json
{
  "ad-profiles":
  [
    {
      "id": 984276,
      "categories" : [
        {
          "id" : 42,
          "status" : "banned"
        }
      ]
    }
  ]
}
$ curl -b cookies -X PUT -d '@/tmp/ad-profile-update.json' \
'https://api.appnexus.com/ad-profile?id=984276&member_id=1282&append=true'
{
   "response" : {
      "id" : 984276,
      "ad-profile" : {
         "id" : 984276,
         "description" : "Rich's Crazy Reseller - Network Ad Profile",
         "categories" : [
            {
               "id" : 41,
               "status" : "banned"
            },
            {
               "id" : 42,
               "status" : "banned"
            },
            {
               "id" : 43,
               "status" : "trusted"
            }
         ],
         // many other fields...
         "default_category_status" : "trusted"
      },
      "status" : "OK",
      "count" : 1,
      "start_element" : 0,
      "num_elements" : 100,
   }
}

Ajouter un profil publicitaire à votre membre

$ curl -b cookies -c cookies -X POST -d @ad_profile  "https://api.appnexus.com/ad-profile"
{
    "response": {
        "status": "OK",
        "id": "1317"
    }
}

Afficher un profil publicitaire

$ curl -b cookies -c cookies "https://api.appnexus.com/ad-profile?id=1317"
{
  "response": {
    "status": "OK",
    "ad-profile": {
      "id": 1317,
      "state": "active",
      "description": "Network Level ad profile",
      "member_id": 326,
      "default_brand_status": "trusted",
      "members": null,
      "brands": [
        {
          "id": "168",
          "status": "banned"
        },
        {
          "id": "255",
          "status": "banned"
        },
        {
          "id": "1072",
          "status": "trusted"
        },
        {
          "id": "1090",
          "status": "trusted"
        }
      ],
      "creatives": [
        {
          "id": "5",
          "approved": true
        }
      ],
      "total_creative_count": 8369,
      "approved_creative_count": 1,
      "banned_creative_count": 8368,
      "creatives_approved_percent": 0.011948858883977,
      "creatives_unreviewed": 8367,
      "brands_unreviewed": null,
      "exclude_unaudited": true,
      "exclude_unaudited_direct": false,
      "notes": "This is a great ad profile.",
      "publisher_id": null,
      "last_modified": "2010-07-23 16:15:49",
      "default_language_status": "banned",
      "default_ad_server_status": "trusted",
      "default_category_status": "trusted",
      "excluded_landing_page_urls": ["https://www.netflix.com","https://www.blockbuster.com"],
      "default_technical_attribute_status": "trusted",
      "languages": [
        {
          "id": 1,
          "status": "trusted"
        }
      ],
      "ad_servers": null,
      "categories": [
        {
          "id": 41,
          "status": "banned"
        },
        {
          "id": 43,
          "status": "trusted"
        }
      ],
      "technical_attributes": null
    }
  }
}

Exemples de limitation de fréquence d’attributs créatifs

Ajouter une règle de limite de fréquence à un profil publicitaire

Le {{"frequency_caps"}} champ sera d’abord {{null}} :

$ curl -b cookies -c cookies -X GET "https://sand.api.appnexus.com/ad-profile?id=199943"
{
  "response": {
    "status": "OK",
    "ad-profile": {
      "id": 199943,
      "state": "active",
      "description": null,
      "member_id": 941,
      ...
      "frequency_caps": null
    }
}

Ajouter une règle de limite de fréquence

$ cat add_freq_cap_rule.json
{
   "ad-profile": {
      "id": 199943,
      "frequency_caps": [
        {
          "max_day_imps": 5,
          "min_minutes_per_imp": 120,
          "technical_attributes": [ {"id":4},{"id":6} ],
          "categories": [ {"id":59},{"id":37} ]
        }
      ]
   }
}
$ curl -b cookies -c cookies -X PUT --data-binary @add_freq_cap_rule.json "https://sand.api.appnexus.com/ad-profile?id=199943"
{
  "response": {
    "status": "OK",
    "id": "199943"
  }
}

Le profil d’annonce aura désormais la règle de limite de fréquence

$ curl -b cookies -c cookies -X GET "https://sand.api.appnexus.com/ad-profile?id=199943"
{
  "response": {
    "status": "OK",
    "ad-profile": {
      "id": 199943,
      "state": "active",
      "description": null,
      "member_id": 941,
      ...
      "frequency_caps": [
        {
          "id": 64,
          "max_session_imps": null,
          "max_day_imps": 5,
          "min_minutes_per_imp": 120,
          "member_id": 941,
          "technical_attributes": [
            {
              "id": 4,
              "name": "Video"
            },
            {
              "id": 6,
              "name": "Expandable"
            }
          ],
          "categories": [
            {
              "id": 37,
              "name": "Politics"
            },
            {
              "id": 59,
              "name": "Get Rich Quick"
            }
          ]
        }
      ]
      ...

Modifier une règle de limite de fréquence

Utilisez la {{PUT}} commande sur le {{ad-profile}} service. L’ID de la limite de fréquence doit être spécifié dans le json de mise à jour. Si l’ID de limite de fréquence n’est pas spécifié, la règle existante est supprimée et une nouvelle règle est créée.

{code}
$ cat update_freq_cap_rule.json
{
   "ad-profile": {
      "id": 199943,
      "frequency_caps": [
        {
          "id": 64,
          "technical_attributes": [ {"id":4} ],
          "categories": [ ],
          "max_day_imps": 20
        }
      ]
   }
}
$ curl -b cookies -c cookies -X PUT --data-binary @update_freq_cap_rule.json "https://sand.api.appnexus.com/ad-profile?id=199943"
{
  "response": {
    "status": "OK",
    "id": "199943"
  }
}
{code}

Vérifiez le profil d’annonce pour voir la règle mise à jour

$ curl -b cookies -c cookies -X GET "https://sand.api.appnexus.com/ad-profile?id=199943"
{
  "response": {
    "status": "OK",
    "ad-profile": {
      "id": 199943,
      "state": "active",
      "description": null,
      "member_id": 941,
      ...
      "frequency_caps": [
        {
          "id": 64,
          "max_session_imps": null,
          "max_day_imps": 20,
          "min_minutes_per_imp": 120,
          "member_id": 941,
          "technical_attributes": [
            {
              "id": 4,
              "name": "Video"
            }
          ],
          "categories": null
        }
      ]
      ...