Partager via


Service de transaction

Le service deal permet aux acheteurs, aux vendeurs et aux soumissionnaires externes de configurer et de gérer les transactions négociées. Les offres peuvent fournir aux acheteurs :

  • Tarifs préférentiels sur les stocks
  • Accès à l’inventaire exclusif
  • Réduction de la concurrence sur les stocks
  • Autres opportunités

Chaque transaction est valide pour un seul acheteur.

Remarque

  • L’inventaire inclus dans une transaction peut également être inclus dans d’autres transactions.
  • Les acheteurs peuvent utiliser le service d’accès à l’acheteur pour afficher les offres qui leur sont disponibles. Pour cibler des transactions, les acheteurs Seller Restricted Targeting peuvent utiliser le deal_targets champ dans le service de profil.

API REST

HTTP, méthode Endpoint Description
GET https://api.appnexus.com/deal Affichez toutes les offres que vous avez avec les acheteurs.
GET https://api.appnexus.com/deal?id=DEAL_ID Afficher une transaction spécifique.
GET https://api.appnexus.com/deal?id=1,2,3 Affichez plusieurs transactions par ID à l’aide d’une liste séparée par des virgules.
GET https://api.appnexus.com/deal/meta Découvrez les champs que vous pouvez filtrer et trier.
POST https://api.appnexus.com/deal Ajoutez une nouvelle transaction.
PUT https://api.appnexus.com/deal?id=DEAL_ID Modifier une transaction existante.
DELETE https://api.appnexus.com/deal?id=DEAL_ID Supprimer une transaction.

Avertissement : Si vous supprimez une transaction, toutes les campagnes ciblant la transaction cesseront de servir. Les suppressions sont permanentes et ne peuvent pas être annulées. Bien que les transactions supprimées continuent d’être disponibles dans les rapports, vous n’aurez plus de visibilité sur leurs paramètres spécifiques.

Champs JSON

Champ Type (Longueur) Description
active valeur booléenne Si truela valeur est , la transaction est active.

Par défaut : true
Remarque : la transaction sera disponible pour l’acheteur uniquement lorsque ce champ est true, start_date est dans le passé (ou null) et end_date est dans le futur (ou null).
adserver_lists tableau d’objets Chaque objet identifie une liste de serveurs publicitaires qui sera appliquée à la transaction. Pour plus d’informations, consultez Ad Server Listes ci-dessous.

Par défaut : null
allow_creative_add_on_click valeur booléenne Si la valeur est true, autorisez toute création à servir qui ajoute des utilisateurs à un segment en cliquant.

Par défaut : true
allow_creative_add_on_view valeur booléenne Si la valeur est true, autorisez tout élément créatif à servir qui ajoute des utilisateurs à un segment affiché.

Par défaut : false
allowed_media_subtypes tableau d’objets Sous-types de média autorisés pour la transaction. Pour plus d’informations, consultez Sous-types de média autorisés ci-dessous.
allowed_media_types tableau d’objets Types de médias autorisés pour la transaction. Pour plus d’informations, consultez Types de supports autorisés ci-dessous.
ask_price double Plus floor_price la part de revenus du vendeur spécifiée dans votre contrat. Il s’agit du prix indiqué à l’acheteur. Il s’agit du minimum qu’ils doivent soumissionner pour être en concurrence pour l’inventaire.

Remarque : Ce champ est obligatoire pour les offres programmatiques garanties et correspond au prix convenu entre le vendeur et l’acheteur.

Obligatoire sur : PUT et POST

Valeur par défaut : nombre généré automatiquement
auction_type objet Type d’enchère pour la transaction. Une transaction peut avoir les types d’enchères suivants : premier prix, deuxième prix et prix fixe. Pour plus d’informations, consultez Type d’enchère ci-dessous.
audit_status_option chaîne Spécifie la façon dont la transaction gère les créations.
- none: les créatifs utilisent des paramètres de qualité publicitaire existants.
- provisional: les créatifs de l’audit "pending" status serviront. Une fois ces créations auditées, les paramètres de qualité des publicités existants sont utilisés.
- max_trust: aucune restriction de profil publicitaire n’est appliquée à cette offre.
Les éléments créatifs spécifiquement répertoriés dans l’objet Creatives remplacent ces paramètres.

Par défaut : none
brands tableau d’objets Les marques des créatifs éligibles à la transaction. Pour plus d’informations, consultez Marques ci-dessous.

Valeur par défaut : null
brand_restrict valeur booléenne Spécifie si l’offre est limitée uniquement aux marques répertoriées dans l’objet Brands .
- true: l’offre est limitée uniquement aux marques répertoriées.
- false: d’autres marques sont également autorisées à servir.

Par défaut : true
buyer objet Le soumissionnaire acheteur et le membre qui peut cibler cette transaction. Une transaction n’utilisera jamais le buyer champ ou le buyer_seats champ, pas les deux. Pour plus d’informations, consultez Acheteur ci-dessous.

Obligatoire sur : POST
buyer_seats objet Le soumissionnaire acheteur et le siège qui peut cibler cette transaction. Une transaction n’utilisera jamais le buyer champ ou le buyer_seats champ, pas les deux. Pour plus d’informations, consultez Sièges acheteur ci-dessous.
buyer_bidders objet Le soumissionnaire acheteur qui peut cibler cette transaction. Pour plus d’informations, consultez Acheteurs soumissionnaires ci-dessous.

Par défaut : null
buyer_members objet ID de membre Xandr de l’acheteur qui peut cibler cette transaction. Pour plus d’informations, consultez Membres acheteurs ci-dessous.

Par défaut : null
categories tableau d’objets Catégories qui décrivent les créatifs éligibles à la transaction. Pour plus d’informations, consultez Catégories ci-dessous.
category_restrict valeur booléenne Spécifie si la transaction est limitée uniquement aux catégories répertoriées dans l’objet Categories .
- true: l’offre est limitée uniquement aux catégories répertoriées.
- false: d’autres catégories sont également autorisées à servir.

Par défaut : true
code string (100) Code personnalisé pour la transaction.

Remarque : Ce champ est obligatoire et représente votre ID de transaction interne, passé dans la demande d’offre via le champ ID de transaction d’objet de PMP.

Obligatoire sur : POST
Par défaut : null
created_by string Spécifie si cette transaction a été créée par le vendeur ou l’acheteur (à l’aide du service Deal From Package).
creatives tableau d’objets Liste des créateurs qui sont spécifiquement approuvés ou interdits pour la transaction. Cette liste remplace tout autre paramètre de qualité publicitaire. Pour plus d’informations, consultez Créations ci-dessous.
currency enum Devise de .floor_price Pour obtenir la liste complète des devises disponibles, utilisez le service monétaire en lecture seule.

Par défaut : "USD"
data_protected valeur booléenne Si truela valeur est , les paramètres de allow_creative_add_on_view, allow_creative_add_on_clicket visibility_profile_id sont utilisés pour cette transaction. Si falsela valeur est , les paramètres réseau et d’éditeur sont utilisés.

Par défaut : false
description string (65535) Description de la transaction. Vous pouvez utiliser ce champ pour fournir à l’acheteur des informations supplémentaires ou des détails sur la transaction.

Par défaut : null
end_date Timestamp Le jour et l’heure où la transaction cesse d’être disponible pour l’acheteur, en heure locale. Si cette valeur est définie, le format doit être "YYYY-MM-DD HH:MM:SS".

Par défaut : null (immédiatement)
floor_price double Valeur CPM minimale que l’acheteur doit enchérir pour être éligible à la transaction.

Remarque :
- Si use_deal_floor a la valeur false, ce champ doit être défini sur 0. Dans ce cas, notez que bien que soit 0 indiqué comme prix plancher, aucun plancher de transaction n’est réellement appliqué ; si vous avez d’autres planchers (dans les placements ou les profils de gestion du rendement), ils seront appliqués, ou si vous n’avez pas d’autres étages, la mécanique standard de l’enchère de second prix s’appliquera.
- Depuis 2017, seul ask_price est utilisé. L’API POST et PUT les appels référençant floor_price et use_deal_floor fonctionnent comme suit :
* Si l’appel d’API inclut ask_price uniquement, il s’agit de la valeur qui sera utilisée.
* Si l’appel d’API inclut uniquement une floor_price valeur, cette valeur est convertie en ask_price valeur.

Valeur par défaut : 0, si use_deal_floor est false
id int ID de la transaction.

Obligatoire sur : PUT et DELETE

Par défaut : nombre incrémenté automatiquement
languages tableau d’objets Langue associée aux créatifs éligibles à la transaction. Pour plus d’informations, consultez Langues ci-dessous.
language_restrict valeur booléenne Spécifie si la transaction est limitée uniquement aux langues répertoriées dans l’objet Languages .
- true: l’offre est limitée uniquement aux langues répertoriées.
- false: d’autres langues sont également autorisées à servir.

Par défaut : true
last_modified Timestamp En lecture seule. Date et heure de la dernière modification de la transaction, en heure locale.
media_preference chaîne Spécifie la façon dont cette transaction gère les types/sous-types de média. Il existe deux options :
- standard = utiliser les types de médias déjà présents aux enchères (en fonction des paramètres de placement)
- append = inclure les types de médias sur la vente aux enchères + tous les types de médias privés définis sur le placement

Si une transaction est créée à partir d’un package, ce paramètre est copié du package vers la transaction.
name string (255) Nom de la transaction.
Par défaut : null
package_id int ID de package pour le package à partir duquel la transaction a été créée, le cas échéant. Consultez Deal From Package Service.

Par défaut : null
payment_type string Spécifie le type de paiement pour la transaction :
- default: cette transaction utilise le type de paiement par défaut pour l’acheteur de cette transaction. Inclut CPM et peut également inclure CPA, CPP, ou les deux.
- cpvm: cette transaction utilise le type de paiement CPM visible. Seules les impressions visibles entraînent le paiement de l’acheteur.

Par défaut : default
priority int Priorité des enchères pour les transactions dans id l’objet type = 2/Private Auction.
Valeurs possibles : 1 - 20, où 20 est la priorité la plus élevée.

Par défaut : 5
profile_id int ID du profil associé à la transaction. Vous pouvez utiliser un profil pour spécifier les éditeurs, les placements, les catégories de contenu, les zones géographiques, les segments, les groupes de segments ou les tailles qui doivent être impliqués dans la vente aux enchères afin que l’offre soit disponible pour l’acheteur. Pour plus d’informations, consultez publisher_targets, placement_targets, country_targetscontent_category_targets, , city_targetsregion_targets, dma_targets, segment_targets, segment_group_targets, site_targetset size_targets dans le service de profil.

Avertissement : les autres paramètres de ciblage dans le profil associé ne seront pas respectés.

Par défaut : null
seller objet En lecture seule. Le membre vendeur qui offre la transaction. Pour plus d’informations, consultez Vendeur ci-dessous.
size_preference chaîne Spécifie la façon dont cette transaction gère les tailles privées. Les tailles privées sont des tailles de placement (définies dans le private_sizes tableau dans le service de placement) qui peuvent être autorisées à servir pour une transaction. Il existe deux options :
- standard: les tailles privées ne sont pas disponibles pour cette transaction.
- append: les tailles privées peuvent être utilisées en plus de la taille de placement spécifiée.

Si une transaction est créée à partir d’un package, ce paramètre est copié du package vers la transaction.
start_date Timestamp Le jour et l’heure où la transaction commence à être disponible pour l’acheteur, en heure locale. Si cette valeur est définie, le format doit être "YYYY-MM-DD HH:MM:SS".

Par défaut : null (immédiatement)
technical_attributes tableau d’objets Les attributs techniques des créatifs éligibles à la transaction. Pour plus d’informations, consultez Attributs techniques ci-dessous.
technical_attribute_restrict valeur booléenne Spécifie si la transaction est limitée uniquement aux attributs techniques répertoriés dans l’objet Attributs techniques .
- true: La transaction est limitée uniquement aux attributs techniques répertoriés.
- false: d’autres attributs techniques sont également autorisés à servir.

Par défaut : true
type objet Type de transaction. Pour les vendeurs, une transaction peut être une vente aux enchères ouverte ou une vente privée. Pour plus d’informations, consultez Type ci-dessous.
use_deal_floor valeur booléenne Si truela valeur est , est floor_price appliqué pour la transaction.

Remarque :
- Lorsque use_deal_floor a la valeur , le prix plancher de la transaction remplace tous les autres étages que vous pouvez avoir, c’est-à-dire truedans les placements ou les profils de gestion du rendement.
- Depuis 2017, seul ask_price est utilisé. L’API POST et PUT les appels référençant floor_price et use_deal_floor fonctionnent comme suit :
* Si l’appel d’API inclut ask_price uniquement, il s’agit de la valeur qui sera utilisée.
* Si l’appel d’API inclut uniquement une floor_price valeur, cette valeur est convertie en ask_price valeur.

Par défaut : true
version int Spécifie la version de l’objet deal. Les valeurs possibles sont les suivantes :
1 = Offres de partenaires fournisseurs externes et configurations de monétisation héritées
2 = Monétiser les offres de vendeur

Obligatoire sur : POST
Par défaut : 1
visibility_profile_id int ID unique du profil de visibilité qui sera appliqué à une transaction. Cet ID peut être récupéré à partir du service de profil de visibilité.
line_item_ids tableau de int Une liste se compose des ID des éléments de ligne présents dans une transaction. Ce tableau est rempli lorsque la version de transaction est 2, sinon il s’agit d’un tableau null. Il s’agit d’un champ en lecture seule retourné dans une GET requête.
seller_targeting_restriction objet Indique si la transaction limite les attributs qu’un acheteur Invest peut cibler tout en ciblant cette transaction. Consultez Ciblage restreint du vendeur ci-dessous.

Vendeur

L’objet seller contient les champs suivants :

Champ Type Description
id int - En lecture seule.
- ID de membre du vendeur
ID de membre du vendeur.
name chaîne - En lecture seule.
- Nom du membre du vendeur
Nom du membre du vendeur.

Acheteur

L’objet acheteur peut être défini sur un POST, mais ne peut pas être mis à jour avec un PUT. Si vous souhaitez modifier l’acheteur, vous devez créer une nouvelle transaction.

L’objet buyer contient les champs suivants :

Champ Type Description
id int ID de membre de l’acheteur.
Obligatoire sur : POST
bidder_id int En lecture seule. ID du soumissionnaire du membre. Pour les acheteurs, il s’agit toujours de 2.
name chaîne En lecture seule. Nom du membre de l’acheteur.

Exemple de l’objet buyer

"buyer": {
                "bidder_id": 2,
                "bidder_name": "Microsoft Invest",
                "id": 9155,
                "name": "Hearts & Science (AT&T)"
            },
"buyer_seats": null

Enchérisseurs d’acheteurs

L’objet buyer_bidders peut être défini sur un POSTet peut être mis à jour avec un PUT. Lorsqu’un vendeur est activé pour les transactions multi-acheteurs. l’objet buyer_bidders peut être défini en combinaison avec buyer_seats et buyer_members.

L’objet buyer_bidders contient les champs suivants :

Champ Type Description
bidder_name string En lecture seule. Nom du soumissionnaire.
id int ID du soumissionnaire de l’acheteur. L’ID du soumissionnaire est 2.
Obligatoire sur : POST

Exemple de l’objet buyer_bidders

"buyer_bidders": [{
    "bidder_id": 1,
    "bidder_name": "Example Bidder"
}],

Membres acheteur

L’objet buyer_members peut être défini sur un POSTet peut être mis à jour avec un PUT. Lorsqu’un vendeur est activé pour les transactions multi-acheteurs, l’objet buyer_members peut être défini en combinaison avec buyer_seats et buyer_bidders.

L’objet buyer_members contient les champs suivants :

Champ Type Description
bidder_id int En lecture seule. ID du soumissionnaire du membre. Pour les acheteurs Invest, il s’agit toujours de 2.
bidder_name chaîne En lecture seule. Nom du soumissionnaire.
id int ID de membre de l’acheteur.
Obligatoire sur : POST
name string En lecture seule. Nom du membre de l’acheteur.

Exemple de l’objet buyer_members

"buyer_members": [{
    "bidder_id": 1,
    "bidder_name": "Example Bidder",
    "id": "456",
    "name": "Example Buyer Member"
}],

Sièges d’acheteur

Les transactions avec les sièges peuvent être configurées à l’aide de l’objet buyer_seats via l’API.

Lorsqu’une nouvelle transaction est configurée via avec, l’API est remplie avec l’objet buyer_seats . Vous pouvez utiliser l’ID de membre de l’acheteur Invest dans le code champ ainsi que bidder_id. De nouvelles offres avec des fournisseurs de services de sécurité externes peuvent également être configurées avec des ID de siège d’acheteur. Vous pouvez case activée les fournisseurs de services de sécurité externes qui utilisent des ID de siège d’acheteur ici.

Remarque

  • Une transaction peut être configurée avec buyer ou , où buyer est membre et buyer_seatsbuyer_seatsest un siège.
  • Lorsqu’un vendeur a des offres de sièges d’acheteur activées, toutes les transactions avec sont configurées à l’aide buyer_seats de (lorsque la transaction est configurée à l’aide de , les transactions avec le champ peuvent toujours être configurées à l’aide buyer de l’API).
  • Code est le code de siège, en d’autres termes, l'« ID de siège » que l’acheteur donne généralement. Il est unique à un donné bidder_id, donc lors de la création d’une nouvelle transaction, code et bidder_id sont obligatoires.

L’objet buyer_seats contient les champs suivants :

Champ Type Description
bidder_id int ID du soumissionnaire du membre.
Obligatoire sur : POST
bidder_name string Nom du soumissionnaire.
code string Identificateur du siège de l’acheteur.
Obligatoire sur : POST
name string Nom de l’acheteur.

Exemple de l’objet buyer_seats

"buyer": null,
"buyer_seats": [
                {
                    "bidder_id": 2,
                    "bidder_name": "",
                    "code": "9155",
                    "name": "Hearts & Science (AT&T)"
                }
            ],

Type

L’objet type contient les champs suivants :

Champ Type (Longueur) Description
id int ID représentant le type de transaction. Valeurs possibles :
1 = Enchère ouverte
Dans un "Open Auction", les acheteurs ciblant les transactions et les acheteurs ciblant l’inventaire par d’autres moyens se font concurrence pour obtenir l’impression. Si un acheteur ciblant une transaction soumet l’offre la plus élevée et que l’offre efface le plancher de la transaction, cet acheteur gagne l’enchère, en payant soit la deuxième offre la plus élevée, soit le prix plancher de la transaction, selon la valeur la plus élevée. Si l’un des acheteurs hors transaction soumet l’offre la plus élevée, cet acheteur gagne l’enchère, en payant soit l’offre la deuxième plus élevée, soit l’OFFRE LA plus élevée, selon la valeur la plus élevée.

2 = Enchère privée
Dans un "Private Auction", les acheteurs ciblant les transactions privées sont en concurrence pour l’impression en premier. Ensuite, si aucun des acheteurs de la transaction ne gagne, la vente aux enchères est ouverte aux acheteurs ciblant l’inventaire par d’autres moyens. Si un acheteur ciblant une transaction soumet une offre supérieure au plancher de la transaction et supérieure à toute autre offre d’enchère privée, cet acheteur remporte l’enchère, en payant soit la deuxième offre la plus élevée de la vente privée, soit le prix plancher de la transaction, selon la valeur la plus élevée. Si aucune vente aux enchères privées n’efface ses planchers, l’offre la plus élevée dans l’enchère ouverte l’emporte, en payant soit la deuxième offre la plus élevée de l’enchère ouverte, soit l’OFFRE la plus élevée, selon la valeur la plus élevée.

4 = Garantie par programmation
Dans "Programmatic Guaranteed", les acheteurs ciblent les offres programmatiques garanties (PG). Les offres PG apportent les avantages du ciblage, de la messagerie et de la création de rapports de la publicité programmatique aux achats de médias garantis. Ils offrent une solution automatisée pour obtenir un accès garanti aux médias auprès des éditeurs et fournissent une approche efficace qui élimine un grand nombre des étapes supplémentaires requises lors de l’achat via un ordre d’insertion.

5 = Enchère organisée
Dans un "Curated Auction", les acheteurs ciblent la fourniture entre tous les membres vendeurs que le membre conservateur a empaquetés ensemble. Les acheteurs ciblant une transaction organisée sont soumis à la dynamique d’enchères définie par le vendeur sous-jacent dans la transaction organisée, qui peut être un type de vente aux enchères ouverte ou privée, selon la façon dont le curateur a configuré leur transaction.

Par défaut : 1
name string (255) En lecture seule. Nom du type de transaction. Valeurs possibles :
- "Open Auction"
- "Private Auction"
- "Curated"
- "Programmatic Guaranteed"

Par défaut : "Open Auction"

Type d’enchère

L’objet auction_type contient les champs suivants :

Champ Type (Longueur) Description
id int ID du type d’enchère :
1 = Premier prix
2 = Prix standard
3 = Prix fixe

Par défaut : 2
name chaîne En lecture seule. Nom du type d’enchère. Valeurs possibles :
- "first_price"
- "standard_price"
- "fixed_price"

Par défaut : "standard_price"

Marques

Chaque brands objet contient les champs suivants :

Champ Type Description
id int ID de la marque éligible à la transaction. Vous pouvez utiliser le service de marque pour récupérer les ID de marque.
name string Nom de la marque éligible à la transaction.
override valeur booléenne Définissez sur true pour permettre à une marque de servir pour une transaction même si le profil de qualité de l’annonce l’aurait bloquée.

Par défaut : false

Types de médias autorisés

Vous pouvez utiliser ce tableau pour limiter le type de média, le style d’affichage général des éléments créatifs, qui peuvent servir sur les placements qui font partie de cette offre.

Chaque allowed_media_types objet contient les champs suivants :

Champ Type Description
id int ID du type de média.
Obligatoire sur : PUT et POST
last_modified date Lorsque l’objet allowed_media_type a été mis à jour pour la dernière fois.
media_type_group_id int ID de groupe pour le type de média.
name string Nom du type de média autorisé, par exemple "Banner".
uses_sizes enum Indique si le type de média a des spécifications de taille. Valeurs possibles :
- always
- sometimes
- never

Sous-types de média autorisés

Vous pouvez utiliser ce tableau pour limiter le sous-type multimédia, le style d’affichage spécifique des créations, qui peut servir sur les placements qui font partie de cette offre.

Chaque allowed_media_subtypes objet contient les champs suivants :

Champ Type Description
id int ID du allowed_media_subtype. PUT et POST sur un fichier JSON
last_modified date Lorsque le tableau a été modifié pour la allowed_media_subtype dernière fois.
mediatype_id int ID du media_type.
media_type_group_id int ID du groupe pour le type de média.
media_type_name string Nom du media_type.
name string Nom du allowed_media_subtype.
native_assets tableau d’objets Tableau décrivant les contraintes sur les éléments d’annonces natives pour ce sous-type multimédia. Les éléments d’une publicité native peuvent inclure le titre, le contenu du corps, etc. Les contraintes du format peuvent être si le contenu du corps est requis ou recommandé, ou la durée du texte. Pour plus d’informations, consultez Ressources natives ci-dessous.
permitted_sizes tableau d’objets Tailles autorisées pour les créatifs du sous-type multimédia. Pour plus d’informations, consultez Tailles autorisées ci-dessous.

Remarque : Tous les sous-types de média n’ont pas de taille autorisée.

Obligatoire sur : PUT et POST

Tailles autorisées

Chaque permitted_sizes objet contient les champs suivants :

Champ Type Description
aspect_ratio_tolerance double Si validate_image_size et scaling_permitted sont à la fois true, l’image peut s’écarter des proportions de platform_width et platform_height de cette quantité. Par exemple, les proportions d’un platform_width et platform_height de 254 x 133 sont de 1,19 :1. Si est aspect_ratio_tolerance 0,03, un rapport d’aspect compris entre 1,16 :1 et 1,22 :1 serait acceptable.
max_image_height int Si validate_image_size est true, la hauteur d’image maximale acceptable, en pixels, pour les créatifs de ce sous-type multimédia.
max_image_width int Si validate_image_size est true, la largeur d’image maximale acceptable, en pixels, pour les créatifs de ce sous-type multimédia.
min_image_height int Si validate_image_size est true, la hauteur d’image minimale acceptable, en pixels, pour les créatifs de ce sous-type multimédia.
min_image_width int Si validate_image_size est true, la largeur d’image minimale acceptable, en pixels, pour les créatifs de ce sous-type multimédia.
platform_width int Largeur de rendu réelle, en pixels, pour les créatifs de ce sous-type multimédia. Il s’agit également de la largeur qui apparaît dans les rapports.
platform_height int Hauteur de rendu réelle, en pixels, pour les créatifs de ce sous-type multimédia. Il s’agit également de la hauteur qui apparaît dans les rapports.
scaling_permitted valeur booléenne Si la valeur est true, l’image pour les créatifs de ce sous-type multimédia doit avoir les mêmes proportions que/platform_widthplatform_height .
Si la valeur est false, l’image pour les créatifs de ce sous-type multimédia doit avoir une largeur et une hauteur correspondant exactement à platform_width et platform_height.
validate_image_size valeur booléenne Si truela valeur est , l’image pour les créatifs de ce sous-type multimédia est validée par rapport aux exigences définies par les champs suivants dans cet objet : scaling_permitted, aspect_ratio_tolerance, min_image_width, max_image_widthmin_image_height, et max_image_height.

Métadonnées externes

L’objet external_metadata s’applique aux transactions programmatiques garanties.

Chaque external_metadata objet contient les champs suivants :

Champ Type Description
impressions int Montant du budget d’impression pour les transactions programmatiques externes garanties. La valeur numérique de ce champ doit être supérieure à 0.

Remarque : ce champ est obligatoire pour les transactions programmatiques garanties.
Obligatoire sur : PUT et POST

Ressources natives

Chaque native_assets objet contient les champs suivants :

Champ Type Description
max_text_length int Longueur maximale du texte
min_text_length int Longueur minimale du texte
native_asset_name chaîne Titre de l’annonce
requirement enum Indique si cette ressource est requise par ce sous-type de média particulier. Ce champ peut contenir plusieurs niveaux de « obligatoire » :
- "required"
- "recommended"
- "optional"

Catégories

Chaque categories objet contient les champs suivants :

Champ Type Description
id int ID des catégories éligibles à la transaction. Vous pouvez utiliser le service de catégorie pour récupérer les ID de catégorie.
name string Nom de la catégorie éligible à la transaction.
override valeur booléenne Définissez sur true pour permettre à une catégorie de servir pour une transaction même si le profil de qualité de l’annonce l’aurait bloquée.

Par défaut : false

Langages

Chaque languages objet contient les champs suivants :

Champ Type Description
id int ID de la langue éligible à la transaction. Vous pouvez utiliser le service de langage pour récupérer les ID de langue.
name string Nom de la langue éligible pour la transaction.
override Valeur booléenne Définissez sur true pour permettre à une langue de servir pour une transaction même si le profil de qualité de l’annonce l’aurait bloquée.

Par défaut : false

Attributs techniques

Chaque technical_attribute objet contient les champs suivants :

Champ Type Description
id int ID de l’attribut technique éligible pour la transaction. Vous pouvez utiliser le service d’attributs techniques pour récupérer les ID d’attribut technique.
name chaîne Nom de l’attribut technique éligible pour la transaction.
override valeur booléenne Définissez sur true pour autoriser un attribut technique à servir pour une transaction même si le profil de qualité de l’annonce l’aurait bloqué.

Par défaut : false

Créatifs

Le creatives tableau est limité à 100 créations. Chaque creatives objet contient les champs suivants :

Champ Type Description
id int ID du créateur approuvé ou interdit pour la transaction. Vous pouvez utiliser creative service pour récupérer des ID créatifs.
status chaîne Spécifie la façon dont cette création sera gérée pour cette transaction.
- approved: ce créatif peut toujours servir dans cette offre, quels que soient les autres paramètres ou remplacements de la qualité des publicités.
- banned: cette créativité ne peut jamais servir dans cette offre, quels que soient les autres paramètres de qualité ou remplacements publicitaires.

Listes de serveurs publicitaires

Chaque adserver_lists objet contient les champs suivants.

Champ Type Description
id int ID de la liste de serveurs publicitaires qui sera appliquée à cette transaction.
Obligatoire sur : POST
name string Nom de la liste des serveurs publicitaires.
override valeur booléenne Si la valeur est true, appliquez cette liste de serveurs publicitaires à la transaction.

Ciblage restreint du vendeur

Une transaction peut spécifier les attributs qu’un acheteur Invest est autorisé à cibler tout en ciblant cette transaction. Les options disponibles sont les suivantes :

  • aucune restriction - Les acheteurs d’investissement peuvent cibler tous les attributs sur leur article de ligne tout en ciblant cette transaction.
  • certaines restrictions : les acheteurs d’investissement peuvent cibler certains attributs sur leur article de ligne.
  • toutes les restrictions - Les acheteurs d’investissement ne peuvent cibler aucun autre attribut tout en ciblant cette transaction.

Votre membre peut être configuré pour utiliser l’un de ces paramètres par défaut lors de la création de nouvelles transactions.

Champ Type (Longueur) Description
id int Les valeurs possibles sont les suivantes :
- 1 (aucune restriction)
- 2 (certaines restrictions)
- 3 (toutes les restrictions)
name chaîne En lecture seule. Nom des restrictions de ciblage configurées (voir id).

Si une transaction est configurée pour certaines restrictions, le profil de visibilité associé à la transaction (voir le visibility_profile_id champ dans la section Champs JSON ) détermine la sélection des attributs qu’un acheteur peut cibler. Les champs de profil de visibilité suivants peuvent être utilisés pour restreindre le ciblage autorisé d’un acheteur :

Champ Restrictions de ciblage pour les acheteurs Invest
expose_city_default Ville
expose_datetime_default Partie de jour
expose_device_type_default Type d’appareil
expose_dma_default DMA
expose_postal_code_default Code postal, listes de codes postaux, circonscriptions politiques
expose_segment_groups_default Segments
expose_state_default Région
expose_video_content_duration_default Durée du contenu vidéo (par exemple, forme longue ou courte)
expose_video_content_genres_default Genres de contenu vidéo
expose_video_content_networks_default Réseau de contenu vidéo
expose_video_content_ratings_default Évaluations du contenu vidéo
expose_video_context_default Contexte vidéo (par exemple, pré-roll, mid-roll, etc.)
expose_video_delivery_types_default Type de livraison de vidéo (par exemple, live, VOD)
expose_video_program_types_default Types de programmes vidéo

Remarque

  • Toutes les restrictions de ciblage définies avec les champs ci-dessus seront appliquées à tous les acheteurs de la transaction, indépendamment des remplacements au niveau du membre acheteur ou du soumissionnaire configurés sur le profil de visibilité.
  • En outre, les vendeurs ne peuvent pas activer simultanément la protection des données (voir le data_protected champ dans la section Champs JSON ) et les fonctionnalités de ciblage restreint du vendeur sur la même offre.

Exemples

Ajouter une vente aux enchères privée avec un plancher de 2,50 $

$ cat new_deal
 
{
    "deal": {
        "name": "Private deal for buyer 1234 with floor of $2.50",
        "active": false,
        "start_date": "2016-12-01 00:00:00",
        "end_date": "2016-12-31 23:59:59",
        "floor_price": 2.5,
        "currency": "USD",
        "use_deal_floor": true,
        "buyer": {
                "id": 1234
        },
        "type": {
                "id": 2
        },
        "brands": [
                {
                        "id": 1
                }
            ]
    }
}
 
$ curl -b cookies -c cookies -X POST -d @new_deal.json 'https://api.appnexus.com/deal'
 
{
    "response": {
        "status": "OK",
        "count": 1,
        "id": 63,
        "start_element": 0,
        "num_elements": 100,
        "deal": {
            "id": 63,
            "code": null,
            "name": "Private deal for buyer 1234 with floor of $2.50",
            "description": null,
            "active": false,
            "seller_member_id": 2345,
            "start_date": "2013-12-01 00:00:00",
            "end_date": "2013-12-31 23:59:59",
            "profile_id": null,
            "package_id": null,
            "floor_price": 2.5,
            "currency": "USD",
            "use_deal_floor": true,
            "last_modified": "2013-12-04 20:39:57",
            "seller": {
                "id": 1066,
                "name": "Seller 123"
            },
            "buyer": {
                "id": 1234,
                "bidder_id": 6,
                "name": "Buyer 456"
            },
            "type": {
                "id": 2,
                "name": "Private Auction"
            },
            "brands": [
                {
                    "id": 1,
                                        "name": "Example Brand"
                }
            ],
            "ask_price": 0,
            "size_preference": null
        }
    }
}

Ajouter une vente aux enchères privée sans plancher

$ cat new_deal_nofloor
 
{
    "deal": {
        "name": "Private deal for buyer 1234 with no floor",
        "active": false,
        "start_date": "2016-12-01 00:00:00",
        "end_date": "2016-12-31 23:59:59",
        "floor_price": 0,
        "use_deal_floor": false,
        "buyer": {
                "id": 1234
        },
        "type": {
                "id": 2
        },
        "brands": [
                {
                        "id": 1
                }
            ]
    }
}
 
$ curl -b cookies -c cookies -X POST -d @new_deal_nofloor.json 'https://api.appnexus.com/deal'
 
{
    "response": {
        "status": "OK",
        "count": 1,
        "id": 64,
        "start_element": 0,
        "num_elements": 100,
        "deal": {
            "id": 64,
            "code": null,
            "name": "Private deal for buyer 1234 with no floor",
            "description": null,
            "active": false,
            "start_date": "2013-12-01 00:00:00",
            "end_date": "2013-12-31 23:59:59",
            "profile_id": null,
            "package_id": null,
            "floor_price": 0,
            "currency": "USD",
            "use_deal_floor": false,
            "last_modified": "2013-12-04 20:43:44",
            "seller": {
                "id": 2345,
                "name": "Seller 123"
            },
            "buyer": {
                "id": 1234,
                "bidder_id": 6,
                "name": "Buyer 456"
            },
            "type": {
                "id": 2,
                "name": "Private Auction"
            },
            "brands": [
                {
                    "id": 1,
                    "name": "Example Brand"
                }
            ],
            "ask_price": 0,
            "size_preference": null
        }
    }
}

Modifier une transaction

Dans cet exemple, nous ajoutons une autre marque éligible à la transaction et nous étendons la date de fin.

$ cat deal_update
 
{
    "deal": {
        "end_date": "2017-01-31 23:59:59",
        "brands": [
                {
                        "id": 1
                },
            {
                "id": 5
            }
            ]
    }
}
 
$ curl -b cookies -c cookies -X PUT -d @deal_update.json 'https://api.appnexus.com/deal?id=64'
{
    "response": {
        "status": "OK",
        "count": 1,
        "id": "64",
        "start_element": 0,
        "num_elements": 100,
        "deal": {
            "id": 64,
            "code": null,
            "name": "Private deal for buyer 1234 with no floor",
            "description": null,
            "active": false,
            "start_date": "2016-12-01 00:00:00",
            "end_date": "2016-01-31 23:59:59",
            "profile_id": null,
            "package_id": null,
            "floor_price": 0,
            "currency": "USD",
            "use_deal_floor": false,
            "last_modified": "2016-12-04 20:51:35",
            "seller": {
                "id": 2345,
                "name": "Seller 123"
            },
            "buyer": {
                "id": 1234,
                "bidder_id": 6,
                "name": "Buyer 456"
            },
            "type": {
                "id": 2,
                "name": "Private Auction"
            },
            "brands": [
                {
                    "id": 1,
                    "name": "Example Brand"
                },
                {
                    "id": 5,
                    "name": "Another Brand"
                }
            ],
            "ask_price": 0,
            "size_preference": null
        }
    }
}

Modifier une transaction pour ajouter des remplacements et interdire certains contenus créatifs

Dans cet exemple, nous mettons à jour une offre pour permettre aux créations audio lancées automatiquement et par l’utilisateur de toujours servir, quels que soient les paramètres de qualité publicitaire. Nous interdrons également spécifiquement deux ID créatifs.

$ cat deal_override
 
{
    "deal": {
        "id": 201,
        "technical_attributes": [
            {
                "id": 7,
                "name": "Audio: user-initiated",
                "override": true
            },
            {
                "id": 8,
                "name": "Audio: auto-initiated",
                "override": true
            }
        ],
        "creatives": [
            {
                "id": 987654,
                "status": "banned"
            },
            {
                "id": 123456,
                "status": "banned"
            }
        ]
    }
}
 
$ curl -b cookies -c cookies -X PUT -d @deal_override.json 'https://api.appnexus.com/deal?id=64'
{
    "response": {
        "status": "OK",
        "count": 1,
        "id": "64",
        "start_element": 0,
        "num_elements": 100,
        "deal": {
            "id": 201,
            "code": null,
            "name": "Private deal for buyer 1085 with no floor",
            "description": null,
            "active": false,
            "start_date": "2016-12-01 00:00:00",
            "end_date": "2017-01-31 23:59:59",
            "profile_id": null,
            "package_id": null,
            "floor_price": 0,
            "currency": "USD",
            "use_deal_floor": false,
            "last_modified": "2016-12-04 20:51:35",
            "seller": {
                "id": 2345,
                "name": "Seller 123"
            },
            "buyer": {
                "id": 1234,
                "bidder_id": 6,
                "name": "Buyer 456"
            },
            "type": {
                "id": 2,
                "name": "Private Auction"
            },
            "technical_attributes": [
                {
                    "id": 7,
                    "name": "Audio: user-initiated",
                    "override": true
                },
                {
                    "id": 8,
                    "name": "Audio: auto-initiated",
                    "override": true
                }
            ],
            "creatives": [
                {
                    "id": 987654,
                    "status": "banned"
                },
                {
                    "id": 123456,
                    "status": "banned"
                }
            ],
            "ask_price": 0,
            "size_preference": null
        }
    }
}

Afficher toutes les offres que vous avez avec les acheteurs

$ curl -b cookies -c cookies 'https://api.appnexus.com/deal'
{
    "response": {
        "status": "OK",
        "count": 7,
        "start_element": 0,
        "num_elements": 100,
        "deals": [
            {
                "id": 63,
                "code": null,
                "name": "Private deal for buyer 1234 with floor of $2.50",
                "description": null,
                "active": false,
                "seller_member_id": 2345,
                "start_date": "2016-12-01 00:00:00",
                "end_date": "2016-12-31 23:59:59",
                "profile_id": null,
                "package_id": null,
                "floor_price": 2.5,
                "currency": "USD",
                "use_deal_floor": true,
                "last_modified": "2016-12-04 20:39:57",
                "seller": {
                    "id": 2345,
                    "name": "Seller 123"
                },
                "buyer": {
                    "id": 1234,
                    "bidder_id": 6,
                    "name": "Buyer 456"
                },
                "type": {
                    "id": 2,
                    "name": "Private Auction"
                },
                "brands": [
                    {
                        "id": 1,
                        "name": "Example Brand"
                    }
                ],
                "ask_price": 3,
                "size_preference": null
            },
            {
                "id": 64,
                "code": null,
                "name": "Private deal for buyer 1234 with no floor",
                "description": null,
                "active": false,
                "start_date": "2016-12-01 00:00:00",
                "end_date": "2016-12-31 23:59:59",
                "profile_id": null,
                "package_id": null,
                "floor_price": 1.2,
                "currency": "USD",
                "use_deal_floor": false,
                "last_modified": "2016-12-04 20:43:44",
                "seller": {
                    "id": 2345,
                    "name": "Seller 123"
                },
                "buyer": {
                    "id": 1234,
                    "bidder_id": 2,
                    "name": "Buyer ABC"
                },
                "type": {
                    "id": 2,
                    "name": "Private Auction"
                },
                "brands": [
                    {
                        "id": 1,
                        "name": "Example Brand"
                    }
                ],
                "ask_price": 0,
                "size_preference": null
            }
        ]
    }
}

Afficher une transaction spécifique

$ curl -b cookies -c cookies 'https://api.appnexus.com/deal?id=64'
{
    "response": {
        "status": "OK",
        "count": 1,
        "start_element": 0,
        "num_elements": 100,
        "deal": {
            "id": 64,
            "code": null,
            "name": "Private deal for buyer 1234 with no floor",
            "description": null,
            "active": false,
            "start_date": "2016-12-01 00:00:00",
            "end_date": "2017-01-31 23:59:59",
            "profile_id": null,
            "package_id": null,
            "floor_price": 1,
            "currency": "USD",
            "use_deal_floor": false,
            "last_modified": "2016-12-04 20:51:35",
            "seller": {
                "id": 2345,
                "name": "Seller 123"
            },
            "buyer": {
                "id": 1234,
                "bidder_id": 2,
                "name": "Buyer ABC"
            },
            "type": {
                "id": 2,
                "name": "Private Auction"
            },
            "brands": [
                {
                    "id": 1,
                    "name": "Example Brand"
                },
                {
                    "id": 5,
                    "name": "Another Brand"
                }
            ],
            "ask_price": 1.25,
            "size_preference": null
        }
    }
}

Supprimer une transaction

$ curl -b cookies -c cookies -X DELETE 'https://api.appnexus.com/deal?id=61'
{
    "response": {
        "status": "OK",
        "count": 1,
        "start_element": null,
        "num_elements": null
    }
}