Partager via


Configuration côté vente

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 .

Diagramme montrant les champs d’éditeur utilisés, les objets côté vente créés ou configurés et les étapes de configuration pour l’implémentation côté vente.

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 state champ 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 GET que 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 :

  1. Create un éditeur avec un site par défaut et un emplacement par défaut.
  2. Mettez à jour le site par défaut.
  3. Mettez à jour le positionnement par défaut.
  4. Create un nouveau site.
  5. Create un nouveau placement.
  6. Mettez à jour la règle de paiement de base.
  7. Create un profil publicitaire.
  8. Create une règle de qualité publicitaire.
  9. 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 :

  1. Create un fichier JSON contenant votre nom d’utilisateur et votre mot de passe.

    {
        "auth": {
            "username" : "USERNAME",
            "password" : "PASSWORD"
        }
    }
    
  2. Effectuez une POST demande au point de /auth terminaison avec ce fichier JSON dans le corps de la demande (pour plus d’informations, consultez Service d’authentification ). Dans la cURL requê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'
    
  3. 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 :

  1. 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_relationship champ est obligatoire, nous l’avons défini sur "direct", (mais il peut être défini sur d’autres valeurs). Nous avons également défini state sur 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"
                    }
            }
    }
    
  2. Effectuez une POST demande au point de /publisher terminaison avec ce fichier JSON dans le corps de la demande.

    curl -b cookies -X POST -d @Publisher.json 'https://api.appnexus.com/publisher'
    
  3. 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 les default_site_idchamps , default_placement_idet base_payment_rule_id sont remplis (avec de nombreux autres champs). Copiez les valeurs de l’ID publisher , default_site_id, default_placement_idet base_payment_rule_id pour 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 .

  1. 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_categories tableau.

    {
            "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"
                            }
                    ]
            }
    }
    
  2. Effectuez une PUT demande au point de /site terminaison 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 GET demande au point de terminaison à l’aide /publisher de 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'
    
  3. 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 :

  1. 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_position champ du placement par défaut.

     {
          "placement" : 
             {
                "default_position" : "above"
             }   
    }
    
  2. Effectuez une PUT demande au point de /placement terminaison 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 GET demande au point de terminaison à l’aide /publisher de 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'
    
  3. 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 :

  1. 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_categories tableau, 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"
                   }
                ]
       }
    } 
    
  2. Effectuez une POST demande au point de /site terminaison avec ce fichier JSON dans le corps de la demande. Vous devez indiquer le publisher_id de 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'
    
  3. 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 :

  1. 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
                   }
                ]
             }   
    }
    
  2. Effectuez une POST demande au point de /placement terminaison avec ce fichier JSON dans le corps de la demande. Vous devez ajouter le site_id du 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 /site de 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'
    
  3. 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 :

  1. 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_type champs et cost_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_type champ par "revshare""cpm", vous devez également mettre à jour le cost_cpm champ. Pour plus d’informations, consultez Service de règles de paiement.

    {
        "payment-rule":{
            "pricing_type": "cpm",
            "cost_cpm": "0.4"
        }
    } 
    
  2. Effectuez une PUT demande au point de /payment-rule terminaison 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 GET demande au point de terminaison à l’aide /publisher de 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'
    
    
  3. 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 :

  1. 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_attributes tableaux 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"
             }
    }
    
  2. Effectuez une POST demande au point de /ad-profile terminaison avec ce fichier JSON dans le corps de la demande. Vous devez indiquer le de l’éditeur publisher_id auquel vous souhaitez associer le profil publicitaire dans la chaîne de requête de la demande

    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 @AdProfile.json 'https://api.appnexus.com/ad-profile?publisher_id=PUBLISHER_ID'
    
  3. 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 :

  1. 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
             }
    }
    
  2. Effectuez une POST demande au point de /ad-quality-rule terminaison avec ce fichier JSON dans le corps de la demande. Vous devez indiquer dans la publisher_id chaî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'
    
  3. 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 :

  1. Create un fichier JSON contenant une valeur pour le base_ad_quality_rule_id champ 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 GET demande au point de terminaison (voir Ad Quality Rule Service pour plus d’informations) à /ad-quality-rule l’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
             }
    }
     ```
    
  2. Effectuez une PUT demande au point de /publisher terminaison 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'
        ```
    
  3. 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
       }
    }