Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La configuration d’une implémentation d’API Xandr pour vos activités côté vente peut sembler compliquée. Cette page vous guide tout au long du processus de création et de configuration d’objets côté vente pour une configuration d’API classique.
Vue d’ensemble
La configuration d’un éditeur implique généralement d’effectuer des demandes aux points de terminaison de service d’API suivants pour créer et configurer les objets côté vente correspondants :
| Point de terminaison d’API | Sell-Side, objet | Informations de référence détaillées |
|---|---|---|
https://api.appnexus.com/publisher |
publisher |
Service d’éditeur |
https://api.appnexus.com/site |
site |
Site Service |
https://api.appnexus.com/placement |
placement |
Placement Service |
https://api.appnexus.com/payment-rule |
payment rule |
Service de règle de paiement |
https://api.appnexus.com/ad-profile |
ad profile |
Service de profil publicitaire |
https://api.appnexus.com//ad-quality-rule |
ad quality rule |
Service de règle de qualité des annonces |
Ce guide utilise des cURL exemples pour toutes les demandes. Vous pouvez utiliser d’autres outils de requête d’API, par exemple Postman, mais vous devez ensuite ajuster les exemples en conséquence.
Remarque
Par souci de simplicité, les exemples de configuration fournis ne personnalisent pas les objets selon des cas d’usage particuliers. Pour plus d’informations sur les paramètres disponibles dans chaque service, consultez Services côté vente .
Configuration requise
Avant de commencer cette configuration, veillez à lire les Prise en main de l’API. Il fournit des informations sur les environnements de test, les contraintes d’utilisation, la sémantique d’API (exécution de commandes, filtrage, tri, etc.) et les bonnes pratiques.
Dépendances et ordre des opérations
Les objets côté vente ont souvent des dépendances vis-à-vis d’autres objets côté vente. Par exemple, lorsque vous créez ou mettez à jour une règle de paiement, vous devez fournir un ID d’éditeur dans la POST demande. Toutefois, vous devez créer (ou avoir déjà accès à) un serveur de publication pour obtenir l’ID d’éditeur généré par le système dont vous aurez besoin. Il existe de nombreuses autres dépendances similaires entre les objets côté vente. Le fait de suivre l’ordre des opérations décrit sur cette page peut faciliter la configuration et réduire le nombre de demandes que vous devrez effectuer à l’API.
Remarque
Un bon moyen de savoir si un objet côté vente a une dépendance avec un autre objet côté vente consiste à noter les champs requis dans le JSON utilisé pour le créer ou le mettre à jour. Par exemple, s’il existe des ID d’objet (par exemple, publisher_id, ad_profile_id) requis sur une POST demande de création d’un objet, cet objet dépend de l’objet avec l’ID requis.
Le diagramme ci-dessous indique les champs d’éditeur utilisés, les objets côté vente créés ou configurés et les étapes de configuration requises pour configurer une implémentation simple côté vente :
Remarque
L’objet API "site" est appelé « groupe de placement » lorsqu’il est créé et configuré à l’aide de .
Meilleures pratiques
Pour obtenir la liste générale des meilleures pratiques à suivre lors de l’utilisation de l’API, consultez Bonnes pratiques relatives à l’API. Voici quelques bonnes pratiques spécifiques à la configuration de l’API côté vente :
- Utilisez un site par défaut et un emplacement par défaut. Bien que vous puissiez créer un serveur de publication sans site par défaut et sans emplacement par défaut (voir Service Publisher pour plus d’informations), vous souhaiterez généralement qu’un site par défaut et un placement par défaut fournissent un « fourre-tout » pour les erreurs de ciblage potentielles.
- Définissez des règles de qualité des publicités sur l’éditeur. Si aucune règle de qualité des publicités n’est affectée à l’éditeur, le profil publicitaire par défaut de l’éditeur est automatiquement appliqué. S’il n’existe aucun profil d’annonce par défaut de l’éditeur, le profil d’annonce réseau est appliqué. La définition de règles de qualité des publicités sur l’éditeur permet à l’éditeur de mieux contrôler les types d’annonces qui sont servis dans l’inventaire de l’éditeur.
-
Affectez l’ID de règle de qualité des publicités de base du serveur de publication. La règle de qualité des publicités de base d’un éditeur agit comme un « fourre-tout » et est appliquée dans deux situations :
- Si aucune règle de qualité publicitaire conditionnelle n’est définie.
- Si aucune des règles de qualité des publicités conditionnelles définies ne correspond à l’impression actuelle.
-
Définissez le
statechamp du serveur de publication sur jusqu’à"inactive"ce que le serveur de publication soit entièrement configuré et prêt pour le test. - Notez l’ID des objets que vous créez. Les ID des objets que vous créez sont retournés dans le corps de la réponse des requêtes. Vous aurez souvent besoin de ces ID ultérieurement afin de les copier quand ils sont retournés peut réduire le nombre de demandes supplémentaires
GETque vous devez effectuer pour les obtenir.
Procédure d’installation
Les étapes suivantes vous guident tout au long du processus de configuration d’un serveur de publication avec des configurations classiques :
- Create un éditeur avec un site par défaut et un emplacement par défaut.
- Mettez à jour le site par défaut.
- Mettez à jour le positionnement par défaut.
- Create un nouveau site.
- Create un nouveau placement.
- Mettez à jour la règle de paiement de base.
- Create un profil publicitaire.
- Create une règle de qualité publicitaire.
- Mettez à jour l’ID de règle de qualité des annonces de base.
Authentification
Tout d’abord, vous devez obtenir un jeton d’autorisation. Vous devez ensuite inclure ce jeton d’autorisation dans toutes les demandes suivantes (pour plus d’informations, consultez Service d’authentification ). Pour obtenir un jeton d’autorisation, procédez comme suit :
Create un fichier JSON contenant votre nom d’utilisateur et votre mot de passe.
{ "auth": { "username" : "USERNAME", "password" : "PASSWORD" } }Effectuez une
POSTdemande au point de/authterminaison avec ce fichier JSON dans le corps de la demande (pour plus d’informations, consultez Service d’authentification ). Dans lacURLrequête ci-dessous, le jeton d’autorisation retourné est stocké dans le fichier «cookies».curl -c cookies -X POST -d @authentication.json 'https://api.appnexus.com/auth'Vérifiez le corps de la réponse de votre demande (voir Exemple de réponse ci-dessous). Si votre demande a réussi, vous obtiendrez un
"status"de"OK"et le"token"champ sera rempli avec la valeur du jeton d’authentification.
Exemple de réponse{ "response" : { "token" : "authn:225692:2d787d1838283:lax1", "status" : "OK" } }
Éditeur
Étape 1 : Création d’un serveur de publication
Il existe deux options pour créer un serveur de publication (pour plus d’informations, consultez Service Publisher ) :
- Create un éditeur avec un site par défaut et un emplacement par défaut.
- Create un éditeur sans site par défaut ou sans emplacement par défaut.
Il est recommandé pour les éditeurs d’avoir à la fois un site par défaut et un emplacement par défaut. C’est donc l’option sur laquelle nous allons nous concentrer dans ce guide de configuration. Un site par défaut et un placement par défaut peuvent fournir un « fourre-tout » si le ciblage est mal configuré et qu’ils peuvent aider à résoudre les différences.
Pour créer un éditeur avec un site par défaut et un emplacement par défaut, procédez comme suit :
Create un fichier JSON avec les champs requis pour un serveur de publication (pour plus d’informations, consultez Service Publisher).
Remarque
Remplacez les espaces réservés (par exemple,
"PUBLISHER_NAME") dans l’exemple JSON ci-dessous par vos propres valeurs.Étant donné que le
inventory_relationshipchamp est obligatoire, nous l’avons défini sur"direct", (mais il peut être défini sur d’autres valeurs). Nous avons également définistatesur pour l’instant"inactive". Étant donné que nous ne fournissons pas les autres champs d’éditeur dans notre demande, ils seront définis sur leurs valeurs par défaut et affichés dans le corps de la réponse.{ "publisher": { "name": "PUBLISHER_NAME", "inventory_relationship": "direct", "billing_dba": "PUBLISHER_DBA", "billing_address1": "PUBLISHER_ADDRESS", "billing_city": "PUBLISHER_CITY", "billing_state": "PUBLISHER_STATE", "billing_zip": "PUBLISHER_ZIP", "billing_country": "PUBLISHER_COUNTRY", "contact": { "phone": "CONTACT_PHONE", "email": "CONTACT_EMAIL", "name": "CONTACT_NAME" } } }Effectuez une
POSTdemande au point de/publisherterminaison avec ce fichier JSON dans le corps de la demande.curl -b cookies -X POST -d @Publisher.json 'https://api.appnexus.com/publisher'Vérifiez le corps de la réponse de votre demande (voir Exemple de réponse ci-dessous). Si votre demande a réussi, vous obtenez un
"status"de et un ID d’éditeur"OK"("id"dans l’objet"publisher") retourné dans le corps de la réponse. Notez que lesdefault_site_idchamps ,default_placement_idetbase_payment_rule_idsont remplis (avec de nombreux autres champs). Copiez les valeurs de l’IDpublisher,default_site_id,default_placement_idetbase_payment_rule_idpour une utilisation ultérieure.Exemple de réponse
{ "response" : { "status" : "OK", "id" : "1256104", "start_element" : 0, "num_elements" : 100, "publisher" : { "contact" : { "phone" : "CONTACT_PHONE_NUMBER", "name" : "CONTACT_NAME", "email" : "CONTACT_EMAIL", "id" : 931326 }, "billing_zip" : "BILLING_ZIP", "allow_cpc_external" : false, "allow_report_on_default_imps" : false, "platform_ops_notes" : null, "inventory_relationship" : "direct", "billing_state" : "BILLING_STATE", "publisher_brand_exceptions" : null, "allow_cpm_external" : true, "default_site_id" : 3758012, "billing_dba" : "BILLING_DBA_NAME", "accept_data_provider_usersync" : null, "allow_cpc_managed" : true, "default_placement_id" : 13814496, "description" : "", "expose_domains" : true, "base_payment_rule_id" : 1579248, "default_ad_profile_id" : null, "name" : "PUBLISHER_NAME", "reselling_exposure" : "private", "code" : null, "is_oo" : false, "pitbull_segment_id" : 0, "learn_bypass_cpm" : 5, "managed_cpa_bias_pct" : 100, "billing_address2" : null, "max_learn_pct" : 0, "cpc_reselling_disabled" : false, "last_modified" : "2018-08-10 18:05:08", "billing_city" : "BILLING_CITY", "pitbull_segment_value" : 0, "base_ad_quality_rule_id" : null, "billing_country" : "BILLING_COUNTRY", "id" : 1256104, "inventory_source_name" : null, "disclosure_status" : "disclosed_pending", "seller_page_cap_enabled" : false, "currency" : "USD", "external_cpc_bias_pct" : 100, "billing_address1" : "BILLING_ADDRESS", "allow_cpa_managed" : true, "external_inv_codes" : null, "reselling_exposed_on" : "1970-01-01 00:00:01", "allow_cpa_external" : false, "cpm_reselling_disabled" : false, "billing_internal_user" : null, "allow_cpm_managed" : true, "labels" : null, "inventory_source" : null, "reselling_name" : null, "visibility_profile_id" : null, "ym_profile_id" : null, "contact_info" : null, "use_anx_auction_logic" : false, "ad_quality_advanced_mode_enabled" : true, "accept_demand_partner_usersync" : null, "state" : "inactive", "placements" : [ { "id" : 13814496, "code" : null } ], "is_rtb" : false, "accept_supply_partner_usersync" : null, "timezone" : "CET", "enable_cookie_tracking_default" : true, "managed_cpc_bias_pct" : 100, "external_cpa_bias_pct" : 100 }, "count" : 1 } }
Étape 2 : Mise à jour du site par défaut
Un site par défaut a été créé lorsque vous avez créé le serveur de publication dans Création d’un serveur de publication ci-dessus. Bien que ce site par défaut n’ait pas besoin d’une configuration supplémentaire pour fonctionner, vous pouvez mettre à jour certains champs si nécessaire. Pour mettre à jour le site par défaut, procédez comme suit :
Conseil
L’objet API "site" est appelé « groupe de placement » lorsqu’il est créé et configuré à l’aide de .
Create un fichier JSON contenant les champs du site par défaut que vous souhaitez mettre à jour (voir Service de site pour plus d’informations). Dans cet exemple, nous mettons à jour le
content_categoriestableau.{ "site": { "content_categories": [{ "id": 8, "name": "Business & Industry", "is_system": true }, { "name": "Arts & Entertainment", "id": 10, "is_system": true }, { "is_system": true, "id": 29, "name": "Sports" } ] } }Effectuez une
PUTdemande au point de/siteterminaison avec ce fichier JSON dans le corps de la demande. Vous devez indiquer l’ID du site par défaut que vous mettez à jour dans la chaîne de requête de la requête.Conseil
Si vous avez copié l’ID de site par défaut dans Création d’un serveur de publication ci-dessus, vous pouvez l’utiliser. Sinon, vous pouvez obtenir l’ID de site par défaut en effectuant une
GETdemande au point de terminaison à l’aide/publisherde l’ID d’éditeur du serveur de publication qui a le site par défaut que vous souhaitez mettre à jour (pour plus d’informations, consultez Service publisher ).curl -b cookies -X PUT -d @DefaultSiteUpdate.json 'https://api.appnexus.com/site?id=DEFAULT_SITE_ID'Vérifiez le corps de la réponse de votre demande (voir Exemple de réponse ci-dessous). Si votre demande a réussi, vous obtiendrez un
"status"de"OK"et vous verrez les mises à jour que vous avez effectuées.Exemple de réponse
{ "response" : { "site" : { "url" : "", "publisher_name" : "PUBLISHER_NAME", "creative_format_action" : "exclude", "code" : null, "managed_optimization_zone_id" : "262", "audited" : false, "intended_audience" : null, "content_categories" : [ { "name" : "Business & Industry", "is_system" : true, "id" : 8 }, { "name" : "Arts & Entertainment", "is_system" : true, "id" : 10 }, { "name" : "Sports", "is_system" : true, "id" : 29 } ], "marketplace_map" : { "rtb" : true, "an_audit_perf_only" : false, "rtb_suspended" : false, "deals_suspended" : false, "deals_allowed" : true, "performance" : false }, "creative_formats" : null, "name" : "[DEFAULT_SITE_NAME] - ROS", "id" : 3731466, "mobile_app_instance" : null, "allowed_click_actions" : null, "last_modified" : "2018-08-17 23:44:07", "inventory_attributes" : null, "primary_content_category_id" : null, "state" : "active", "publisher_id" : 1240580, "rtb_optimization_zone_id" : null, "supply_type" : "web", "placements" : [ { "code" : null, "id" : 13741957 } ] }, "id" : "3731466", "start_element" : 0, "count" : 1, "status" : "OK", "num_elements" : 100 } }
Étape 3 : Mise à jour du positionnement par défaut
Un placement par défaut a été créé lorsque vous avez créé le serveur de publication dans Création d’un serveur de publication ci-dessus. Bien que ce placement par défaut ne nécessite pas de configuration supplémentaire pour fonctionner, vous pouvez mettre à jour certains champs si nécessaire. Pour mettre à jour le placement par défaut, procédez comme suit :
Create un fichier JSON contenant les champs du placement par défaut que vous souhaitez mettre à jour (pour plus d’informations, consultez Service de placement). Dans cet exemple, nous mettons à jour le
default_positionchamp du placement par défaut.{ "placement" : { "default_position" : "above" } }Effectuez une
PUTdemande au point de/placementterminaison avec ce fichier JSON dans le corps de la demande. Vous devez indiquer l’ID de placement du placement par défaut que vous mettez à jour dans la chaîne de requête de la requête.Remarque
Si vous avez copié l’ID de placement par défaut dans Création d’un serveur de publication ci-dessus, vous pouvez l’utiliser. Sinon, vous pouvez obtenir l’ID de placement par défaut en effectuant une
GETdemande au point de terminaison à l’aide/publisherde l’ID d’éditeur du serveur de publication qui a le placement par défaut que vous souhaitez mettre à jour (pour plus d’informations, consultez Service publisher ).curl -b cookies -X PUT -d @DefaultPlacementUpdate.json 'https://api.appnexus.com/placement?id=DEFAULT_PLACEMENT_ID'Vérifiez le corps de la réponse de votre demande (voir Exemple de réponse ci-dessous). Si votre demande a réussi, vous obtiendrez un
"status"de"OK"et vous verrez les mises à jour que vous avez effectuées.Exemple de réponse
{ "response" : { "start_element" : 0, "status" : "OK", "id" : "13741957", "num_elements" : 100, "placement" : { "private_sizes" : null, "publisher_id" : 1240580, "code3" : null, "width" : null, "ad_types" : null, "pixel_type" : "image", "acb_code" : null, "cost_cpm" : null, "inventory_attributes" : null, "estimated_clear_prices" : [ { "width" : 0, "geo_country" : "", "height" : 0, "clear_price" : 1, "average_price" : 0.5, "verified" : true } ], "demand_filter_action" : "default", "content_categories" : null, "is_prohibited" : false, "site_name" : "[DEFAULT_SITE_NAME] - ROS", "code2" : null, "reserve_price" : null, "site_audit_status" : "unaudited", "audited" : false, "id" : 13741957, "state" : "active", "name" : "[PLACEMENT_NAME] - Default", "filtered_advertisers" : null, "default_creative_id" : null, "pop_values" : null, "exclusive" : false, "toolbar" : null, "default_creatives" : null, "enable_for_mediation" : false, "mime_types" : null, "segments" : null, "visibility_profile_id" : null, "pixel_url_secure" : null, "default_calculation_type" : "gross", "code" : null, "default_position" : "above", "filtered_campaigns" : null, "filtered_line_items" : null, "supported_mime_types_action_include" : false, "supported_media_subtypes" : null, "ad_profile_id" : null, "content_retrieval_timeout_ms" : 0, "audit_level" : "site", "tag_data" : null, "use_detected_domain" : true, "is_resizable" : false, "vendor_id" : null, "intended_audience" : null, "hide_referer" : false, "supported_media_types" : [ { "id" : 1, "name" : "Banner", "is_private" : false } ], "default_referrer_url" : null, "floor_application_target" : "all", "pixel_url" : null, "site_id" : 3731466, "publisher_name" : "PUBLISHER_NAME", "media_subtypes" : null, "video" : null, "last_modified" : "2018-08-20 17:17:42", "height" : null, "is_prebid_enabled" : false, "buy_it_now_price" : 0 }, "count" : 1 } }
Étape 4 : Création d’un site
Bien qu’un site par défaut ait été créé lors de la création du serveur de publication dans Création d’un serveur de publication ci-dessus, il est généralement utilisé comme un « fourre-tout » pour cibler des configurations incorrectes et contient généralement uniquement le positionnement par défaut. Étant donné que vous souhaitez ajouter un nouveau placement à l’éditeur, vous devez d’abord créer un site pour contenir les nouveaux placements. Pour créer un site, procédez comme suit :
Create un fichier JSON contenant les champs du nouveau site (pour plus d’informations, consultez Service de site). Dans cet exemple, nous incluons des champs dans le
content_categoriestableau, ainsi que tous les champs obligatoires.{ "site" : { "name" : "NEW_SITE_NAME", "rtb" : true, "content_categories" : [ { "id" : 8, "name" : "Business & Industry", "is_system" : true }, { "name" : "Arts & Entertainment", "id" : 10, "is_system" : true }, { "is_system" : true, "id" : 29, "name" : "Sports" } ] } }Effectuez une
POSTdemande au point de/siteterminaison avec ce fichier JSON dans le corps de la demande. Vous devez indiquer lepublisher_idde l’éditeur auquel vous ajoutez le site dans la chaîne de requête de la demande.Conseil
Si vous avez copié l’ID d’éditeur dans Création d’un serveur de publication ci-dessus, vous pouvez l’utiliser.
curl -b cookies -X POST -d @NewSite.json 'https://api.appnexus.com/site publisher_id=PUBLISHER_ID'Vérifiez le corps de la réponse de votre demande (voir Exemple de réponse ci-dessous). Si votre demande a réussi, vous obtiendrez un
"status"de"OK"et vous verrez les champs du nouveau site. Copiez l’ID de site pour qu’il soit disponible lorsque vous ajoutez un emplacement au nouveau site.Exemple de réponse
{ "response" : { "status" : "OK", "start_element" : 0, "id" : 3804119, "num_elements" : 100, "site" : { "content_categories" : [ { "id" : 8, "is_system" : true, "name" : "Business & Industry" }, { "name" : "Arts & Entertainment", "is_system" : true, "id" : 10 }, { "is_system" : true, "id" : 29, "name" : "Sports" } ], "id" : 3804119, "creative_formats" : [ "text" ], "mobile_app_instance" : null, "audited" : false, "rtb_optimization_zone_id" : null, "marketplace_map" : { "rtb" : true, "performance" : false, "deals_suspended" : false, "rtb_suspended" : false, "an_audit_perf_only" : false, "deals_allowed" : true }, "supply_type" : "web", "code" : null, "creative_format_action" : "exclude", "inventory_attributes" : null, "name" : "NEW_SITE_NAME", "allowed_click_actions" : [ "click-to-web" ], "intended_audience" : null, "publisher_id" : 1229638, "primary_content_category_id" : null, "managed_optimization_zone_id" : "262", "publisher_name" : "MarkD_Test05", "placements" : null, "url" : "", "state" : "active", "last_modified" : "2018-09-08 00:01:40" }, "count" : 1 } }
Étape 5 : Création d’un placement
Bien qu’un placement par défaut ait été créé lors de la création du serveur de publication dans Création d’un serveur de publication ci-dessus, vous souhaiterez créer un ou plusieurs placements et les ajouter au serveur de publication pour gérer le ciblage du placement publicitaire. Pour créer un placement et l’ajouter à votre éditeur, procédez comme suit :
Create un fichier JSON contenant les champs du placement que vous souhaitez ajouter (voir Service de placement pour plus d’informations). Dans cet exemple, nous avons inclus les champs obligatoires ainsi que certaines informations de type de média prises en charge.
{ "placement" : { "name" : "NEW_PLACEMENT_NAME", "state" : "inactive", "supported_media_types" : [ { "name" : "Banner", "is_private" : false, "id" : 1 } ] } }Effectuez une
POSTdemande au point de/placementterminaison avec ce fichier JSON dans le corps de la demande. Vous devez ajouter lesite_iddu site auquel vous ajoutez le placement dans la chaîne de requête de la demande (pour plus d’informations, consultez Service de placement ).Conseil
Si vous avez copié l’ID de site dans Création d’un site ci-dessus, vous pouvez l’utiliser lors de l’ajout d’un placement. Pour obtenir les ID de site d’un éditeur, effectuez une requête GET au point de terminaison à l’aide
/sitede l’ID d’éditeur de l’éditeur qui possède les sites (voir Service de site pour plus d’informations).curl -b cookies -X POST -d @NewPlacement.json 'https://api.appnexus.com/placement?site_id=SITE_ID'Vérifiez le corps de la réponse de votre demande (voir Exemple de réponse ci-dessous). Si votre demande a réussi, vous obtiendrez un
"status"de"OK"et vous verrez les champs du nouveau placement.Exemple de réponse
{ "response" : { "num_elements" : 100, "placement" : { "supported_mime_types_action_include" : false, "video" : null, "default_creative_id" : null, "private_sizes" : null, "code" : null, "height" : null, "audited" : false, "state" : "inactive", "filtered_line_items" : null, "last_modified" : "2018-08-20 22:40:09", "tag_data" : null, "content_retrieval_timeout_ms" : 0, "is_prebid_enabled" : false, "toolbar" : null, "pixel_url_secure" : null, "vendor_id" : null, "supported_media_types" : [ { "id" : 1, "is_private" : false, "name" : "Banner" } ], "default_position" : "unknown", "is_resizable" : false, "code3" : null, "filtered_advertisers" : null, "exclusive" : false, "site_id" : 3731466, "estimated_clear_prices" : [ { "average_price" : 0.5, "verified" : true, "clear_price" : 1, "width" : 0, "geo_country" : "", "height" : 0 } ], "name" : "NEW_PLACEMENT_NAME", "site_audit_status" : "unaudited", "site_name" : "SITE_NAME", "pop_values" : null, "media_subtypes" : null, "enable_for_mediation" : true, "supported_media_subtypes" : null, "segments" : null, "pixel_url" : null, "publisher_id" : 1240580, "pixel_type" : "image", "reserve_price" : null, "content_categories" : null, "audit_level" : "site", "mime_types" : null, "visibility_profile_id" : null, "id" : 13847262, "use_detected_domain" : true, "default_creatives" : null, "hide_referer" : false, "intended_audience" : null, "width" : null, "default_referrer_url" : null, "default_calculation_type" : "gross", "buy_it_now_price" : 0, "ad_profile_id" : null, "floor_application_target" : "all", "demand_filter_action" : "default", "filtered_campaigns" : null, "inventory_attributes" : null, "ad_types" : null, "cost_cpm" : null, "code2" : null, "acb_code" : null, "publisher_name" : "PUBLISHER_NAME", "is_prohibited" : false }, "status" : "OK", "start_element" : 0, "id" : 13847262, "count" : 1 } }
Règles de paiement
Vous devez configurer l’arrangement financier entre le réseau et l’éditeur. Pour ce faire, utilisez des règles de paiement de base et conditionnelles (consultez Service de règles de paiement pour plus d’informations).
Étape 6 : Mise à jour de la règle de paiement de base
Une règle de paiement de base a été créée par défaut lorsque vous avez créé un serveur de publication dans Création d’un serveur de publication ci-dessus. Vous devez généralement mettre à jour cette règle de paiement de base pour refléter l’arrangement financier réel entre le réseau et l’éditeur. Pour mettre à jour la règle de paiement de base, procédez comme suit :
Create un fichier JSON contenant les champs avec les mises à jour souhaitées (consultez Service de règle de paiement pour plus d’informations). Dans cet exemple, nous mettons à jour les
pricing_typechamps etcost_cpm.Remarque
Les modifications apportées à un champ peuvent nécessiter des modifications apportées à un autre champ dépendant. Par exemple, si vous remplacez la valeur du
pricing_typechamp par"revshare""cpm", vous devez également mettre à jour lecost_cpmchamp. Pour plus d’informations, consultez Service de règles de paiement.{ "payment-rule":{ "pricing_type": "cpm", "cost_cpm": "0.4" } }Effectuez une
PUTdemande au point de/payment-ruleterminaison avec ce fichier JSON dans le corps de la demande. Vous devez indiquer l’ID de règle de paiement de base et l’ID de l’éditeur dans la chaîne de requête de la demande.Remarque
Si vous avez copié l’ID de règle de paiement de base et l’ID d’éditeur dans Création d’un serveur de publication ci-dessus, vous pouvez les utiliser. Sinon, vous pouvez effectuer une
GETdemande au point de terminaison à l’aide/publisherde l’ID d’éditeur de l’éditeur pour trouver l’ID de règle de paiement de base que vous souhaitez mettre à jour (voir Service publisher pour plus d’informations).curl -b cookies -X PUT -d @UpdatePaymentRule.json 'https://api.appnexus.com/payment-rule?id=BASE_PAYMENT_RULE_ID&publisher_id=PUBLISHER_ID'Vérifiez le corps de la réponse de votre demande (voir Exemple de réponse ci-dessous). Si votre demande a réussi, vous obtiendrez un
"status"de"OK"et vous verrez les mises à jour que vous avez effectuées.Exemple de réponse
{ "response" : { "id" : "1570229", "start_element" : 0, "count" : 1, "num_elements" : 100, "status" : "OK", "payment-rule" : { "id" : 1570229, "target_ecpm" : null, "priority" : 1, "lifetime_budget_imps" : null, "start_date" : null, "lifetime_budget" : null, "filtered_advertisers" : null, "description" : "", "last_modified" : "2018-08-21 22:26:19", "code" : null, "state" : "active", "daily_budget_imps" : null, "name" : "Base Payment Rule", "apply_cost_on_default" : false, "end_date" : null, "pricing_type" : "cpm", "buyer_type" : "both", "profile_id" : null, "revshare" : 0, "demand_filter_action" : "default", "filtered_campaigns" : null, "cost_cpm" : 0.4, "daily_budget" : null, "max_revshare" : null, "timezone" : "EST5EDT", "filtered_line_items" : null } } }
Paramètres de qualité des annonces
Vous pouvez maintenant configurer les paramètres de qualité des publicités pour votre éditeur. Un éditeur nouvellement créé utilise les paramètres de qualité des publicités réseau, sauf si vous créez et configurez des paramètres de qualité des annonces pour le serveur de publication. Les paramètres de qualité des annonces permettent aux éditeurs de déterminer la qualité des annonces diffusées dans leur inventaire. Ces paramètres de qualité des annonces se composent de profils publicitaires (voir Ad Profile Service pour plus d’informations) et de règles de qualité des publicités de base et conditionnelles (voir Ad Quality Rule Service pour plus d’informations).
Les règles de qualité des annonces nécessitent un ID de profil publicitaire. Vous devez donc créer un profil publicitaire (ou en utiliser un existant) avant de pouvoir créer et appliquer des règles de qualité publicitaire.
Étape 7 : Création d’un profil publicitaire
Un profil d’annonce indique l’éligibilité ("trusted" ou "banned") des caractéristiques des annonces devant être servies par un éditeur. Ces caractéristiques publicitaires incluent les acheteurs, les marques, les catégories, les attributs techniques, les langues, les serveurs publicitaires, etc. Un profil d’annonce est ensuite appliqué à l’aide de règles de qualité des annonces.
Remarque
Si aucune règle de qualité des publicités n’est affectée à l’éditeur, le profil publicitaire par défaut de l’éditeur est automatiquement appliqué. S’il n’existe aucun profil d’annonce par défaut de l’éditeur, le profil d’annonce réseau est appliqué.
Pour créer un profil publicitaire, procédez comme suit :
Create un fichier JSON contenant les champs avec les mises à jour souhaitées (voir Ad Profile Service pour plus d’informations). Dans cet exemple, nous ajoutons des informations d’éligibilité aux
technical_attributestableaux de catégories et .{ "ad-profile" : { "technical_attributes" : [ { "id" : 2, "status" : "banned" }, { "id" : 8, "status" : "banned" }, { "status" : "banned", "id" : 22 }, { "status" : "banned", "id" : 104 } ], "categories" : [ { "id" : 37, "status" : "banned" }, { "status" : "banned", "id" : 109 }, { "id" : 166, "status" : "banned" } ], "description" : "AD_PROFILE_DESCRIPTION" } }Effectuez une
POSTdemande au point de/ad-profileterminaison avec ce fichier JSON dans le corps de la demande. Vous devez indiquer le de l’éditeurpublisher_idauquel vous souhaitez associer le profil publicitaire dans la chaîne de requête de la demandeRemarque
Si vous avez copié l’ID d’éditeur dans Création d’un serveur de publication ci-dessus, vous pouvez l’utiliser.
curl -b cookies -X POST -d @AdProfile.json 'https://api.appnexus.com/ad-profile?publisher_id=PUBLISHER_ID'Vérifiez le corps de la réponse de votre demande (voir Exemple de réponse ci-dessous). Si votre demande a réussi, vous obtiendrez un
"status"de"OK"et vous verrez les valeurs que vous avez ajoutées ainsi que d’autres paramètres par défaut.Exemple de réponse
{ "response" : { "ad-profile" : { "require_msft_audit" : false, "creatives" : null, "default_ad_server_status" : "trusted", "exclude_unaudited_direct" : false, "default_brand_status" : "trusted", "inventory_type" : "real_time", "excluded_landing_page_urls" : null, "default_category_status" : "trusted", "exclude_direct" : false, "categories" : [ { "status" : "banned", "id" : 37 }, { "status" : "banned", "id" : 109 }, { "id" : 166, "status" : "banned" } ], "exclude_unaudited" : true, "member_id" : 958, "require_google_audit" : false, "check_attributes_direct" : false, "description" : "AD_PROFILE_DESCRIPTION", "last_modified" : "2018-08-24 23:37:40", "technical_attributes" : [ { "status" : "banned", "id" : 2 }, { "id" : 8, "status" : "banned" }, { "id" : 22, "status" : "banned" }, { "status" : "banned", "id" : 104 } ], "audit_type_direct" : "platform_or_self", "require_landing_page_url" : false, "require_seller_audit_default" : false, "id" : 1223520, "ad_servers" : null, "allow_pending_creatives_direct" : false, "default_member_status" : "case-by-case", "members" : null, "languages" : null, "state" : "active", "require_msft_external_audit" : false, "default_audit_type" : "platform", "default_technical_attribute_status" : "trusted", "brands" : null, "frequency_caps" : null, "require_appnexus_review" : false, "publisher_id" : 1240580, "notes" : null, "default_language_status" : "trusted" }, "count" : 1, "start_element" : 0, "id" : 1223520, "num_elements" : 100, "status" : "OK" } }
Étape 8 : Création d’une règle de qualité des annonces
Bien que la configuration des paramètres de qualité des publicités au-delà du profil réseau soit facultative, il est recommandé d’utiliser des règles de qualité publicitaire au niveau de l’éditeur ainsi que pour contrôler la qualité des publicités. Si vous choisissez de configurer les paramètres de qualité des annonces au niveau de l’éditeur, vous devez disposer d’une règle de qualité des annonces de base pour le serveur de publication. Cela permet de s’assurer qu’au moins certains contrôles de qualité des annonces sont appliqués au niveau de l’éditeur au cas où aucune des règles de qualité de la publicité conditionnelle ne s’applique. La règle de qualité des annonces de base est une règle de qualité des annonces qui est affectée au champ du serveur de base_ad_quality_rule_id publication (voir Mise à jour de l’ID de règle de qualité de l’annonce de base du serveur de publication ci-dessous).
Pour créer une règle de qualité des publicités, procédez comme suit :
Create un fichier JSON contenant les champs souhaités (pour plus d’informations, consultez Ad Quality Rule Service). Dans cet exemple, nous ajoutons l’ID du profil publicitaire (voir Création d’un profil publicitaire ci-dessus) que nous voulons que cette règle de qualité d’annonce utilise avec le nom et la priorité de cette règle.
{ "ad-quality-rule" : { "name" : "New_Ad_Quality_Rule", "ad_profile_id" : 1223520, "priority" : 1 } }Effectuez une
POSTdemande au point de/ad-quality-ruleterminaison avec ce fichier JSON dans le corps de la demande. Vous devez indiquer dans lapublisher_idchaîne de requête de la requête.Remarque
Si vous avez copié l’ID d’éditeur dans Création d’un serveur de publication ci-dessus, vous pouvez l’utiliser.
curl -b cookies -X POST -d @AdQualityRule.json 'https://api.appnexus.com/ad-quality-rule?publisher_id=PUBLISHER_ID'Vérifiez le corps de la réponse de votre demande (voir Exemple de réponse ci-dessous). Si votre demande a réussi, vous obtenez un
"status"de"OK"et vous verrez les champs de la règle de qualité des annonces que vous avez créée. Copiez l’ID de règle de qualité des annonces afin de l’avoir lorsque vous mettrez à jour l’ID de règle de qualité de l’annonce de base du serveur de publication à l’étape suivante.Exemple de réponse
{ "response" : { "count" : 1, "start_element" : 0, "num_elements" : 100, "ad-quality-rule" : { "active" : true, "publisher_id" : 1240580, "id" : 632112, "member_id" : 958, "description" : null, "code" : null, "profile_id" : null, "priority" : 1, "name" : "New_Ad_Quality_Rule", "last_modified" : "2018-08-26 21:47:12", "ad_profile_id" : 1223520 }, "id" : 632112, "status" : "OK" } }
Étape 9 : Mise à jour de l’ID de règle de qualité de l’annonce de base de l’éditeur
Vous souhaiterez généralement qu’une règle de qualité des annonces de base soit affectée à votre éditeur. La règle de qualité de l’annonce de base agit comme une règle de qualité publicitaire « fourre-tout » si aucune règle de qualité d’annonce conditionnelle n’est définie ou si aucune règle de qualité d’annonce conditionnelle ne correspond à une impression. Une fois que vous avez créé une règle de qualité des annonces que vous souhaitez utiliser pour une règle de qualité d’annonce de base, il vous suffit d’affecter l’ID de cette règle de qualité d’annonce à l’éditeur avec une PUT demande.
Pour affecter une règle de qualité des publicités de base à un éditeur, procédez comme suit :
Create un fichier JSON contenant une valeur pour le
base_ad_quality_rule_idchamp de votre éditeur (pour plus d’informations, consultez Service Publisher). Dans cet exemple, nous ajoutons l’ID de la règle de qualité des annonces que nous avons créée dans Création d’une règle de qualité d’annonce ci-dessus.Conseil
Si vous avez copié l’ID de règle de qualité des annonces dans Création d’une règle de qualité d’annonce ci-dessus, vous pouvez l’utiliser. Sinon, vous pouvez faire une
GETdemande au point de terminaison (voir Ad Quality Rule Service pour plus d’informations) à/ad-quality-rulel’aide de l’ID d’éditeur que vous avez utilisé dans Création d’une règle de qualité d’annonce ci-dessus pour rechercher l’ID de règle de qualité des annonces.{ "publisher" : { "base_ad_quality_rule_id" : 632112 } } ```Effectuez une
PUTdemande au point de/publisherterminaison avec ce fichier JSON dans le corps de la demande (pour plus d’informations, consultez Service Publisher ). Vous devez indiquer l’ID de l’éditeur dans la chaîne de requête de la demande.Conseil
Si vous avez copié l’ID d’éditeur dans Création d’un serveur de publication ci-dessus, vous pouvez l’utiliser.
curl -b cookies -X PUT -d @PublisherBaseAdQualityRuleUpdate.json 'https://api.appnexus.com/publisher?id=PUBLISHER_ID' ```Vérifiez le corps de la réponse de votre demande (voir Exemple de réponse ci-dessous). Si votre demande a réussi, vous obtiendrez un
"status"de"OK"et vous verrez les mises à jour que vous avez effectuées.Exemple de réponse
{ "response" : { "count" : 1, "status" : "OK", "start_element" : 0, "id" : "1240580", "publisher" : { "billing_address1" : "BILLING_ADDRESS", "managed_cpa_bias_pct" : 100, "inventory_source" : null, "external_cpc_bias_pct" : 100, "ym_profile_id" : null, "currency" : "USD", "allow_cpa_managed" : true, "inventory_source_name" : null, "use_anx_auction_logic" : false, "learn_bypass_cpm" : 5, "platform_ops_notes" : null, "contact" : { "phone" : "555-555-1212", "email" : "CONTACT_EMAIL@EMAIL.COM", "id" : CONTACT_ID, "name" : "CONTACT_NAME" }, "allow_cpc_managed" : true, "is_rtb" : false, "disclosure_status" : "disclosed_pending", "visibility_profile_id" : null, "billing_dba" : "BILLING_DBA", "reselling_exposure" : "private", "managed_cpc_bias_pct" : 100, "default_placement_id" : 13741957, "labels" : null, "accept_supply_partner_usersync" : null, "expose_domains" : true, "reselling_name" : null, "billing_internal_user" : null, "placements" : [ { "id" : 13741957, "code" : null }, { "id" : 13847262, "code" : null } ], "enable_cookie_tracking_default" : true, "external_inv_codes" : null, "inventory_relationship" : "direct", "pitbull_segment_value" : 0, "default_site_id" : 3731466, "publisher_brand_exceptions" : null, "billing_address2" : null, "timezone" : "CET", "contact_info" : null, "last_modified" : "2018-08-26 22:33:13", "code" : null, "billing_zip" : "BILLING_ZIP", "billing_country" : "US", "reselling_exposed_on" : "1970-01-01 00:00:01", "is_oo" : false, "billing_state" : "BILLING_STATE", "ad_quality_advanced_mode_enabled" : true, "allow_cpm_external" : true, "pitbull_segment_id" : 0, "base_ad_quality_rule_id" : 632112, "default_ad_profile_id" : null, "seller_page_cap_enabled" : false, "description" : "", "allow_cpa_external" : false, "id" : 1240580, "state" : "inactive", "billing_city" : "Portland", "max_learn_pct" : 0, "cpc_reselling_disabled" : false, "allow_report_on_default_imps" : false, "cpm_reselling_disabled" : false, "base_payment_rule_id" : 1570229, "name" : "PUBLISHER_NAME", "allow_cpm_managed" : true, "accept_demand_partner_usersync" : null, "accept_data_provider_usersync" : null, "external_cpa_bias_pct" : 100, "allow_cpc_external" : false }, "num_elements" : 100 } }