Partager via


Service vidéo long

Les clients SSP peuvent intégrer leur application ou leur inventaire vidéo de pod publicitaire web long avec Prebid Server Premium (PSP) à l’aide du point de /prebid/lfv terminaison. Les durées de vidéo de longue durée sont d’au moins 30 minutes avec des positions potentielles avant, milieu et post-rouleau.

Les clients Microsoft Monetize Ad Server n’ont pas besoin de modifier leur intégration actuelle à Xandr, peuvent ignorer le service vidéo long et peuvent suivre les étapes de configuration psp.

Processus de demande et de réponse

Les étapes suivantes décrivent le processus de demande et de réponse vidéo long :

  1. Les éditeurs envoient une demande de vidéo longue à Xandr’s Impression Bus (ImpBus) via le point de /prebid/lfv terminaison. Cette demande contient des POST valeurs pour le pod publicitaire, telles que la durée de l’annonce, la largeur et la hauteur de la vidéo, et des propriétés facultatives telles que la catégorie de marque pour la séparation concurrentielle.
  2. ImpBus décompresse la demande et détermine le nombre d’emplacements publicitaires à remplir dans le pod publicitaire.
  3. Les configurations de Monetize sont récupérées et une requête OpenRTB avec le nombre d’emplacements publicitaires demandé est créée par ImpBus.
  4. ImpBus soumet la demande OpenRTB à tous les soumissionnaires Xandr, y compris les partenaires à la demande PSP et Microsoft Invest
    1. Les partenaires prebid demandent des offres, chacun avec une sous-catégorie IAB unique.
    2. Microsoft Invest et les soumissionnaires externes ont une catégorie de marque Xandr unique associée à chaque offre qui est convertie en sous-catégorie IAB. Pour plus d’informations, consultez Adserver Category Mapping Service.
  5. ImpBus organise la vente aux enchères pour la Place de marché Xandr afin de déterminer l’offre Xandr gagnante.
  6. En fonction de la configuration du serveur de publication et du serveur publicitaire récupérée à l’étape 3, ImpBus traduit les sous-catégories IAB en catégories de serveurs publicitaires principales (Freewheel ou Google Ad Manager). Pour plus d’informations, consultez Adserver Category Mapping Service.
    1. Pour les enchères Xandr, ImpBus se traduit de la catégorie Xandr à la sous-catégorie IAB et enfin à la catégorie de serveur publicitaire principal.
  7. Les enchères sont dédupliquées en fonction des valeurs de tuple pour le compartiment de prix, la catégorie de serveur publicitaire principal et la durée.
  8. Pour chaque enchère unique, ImpBus met en cache le XML VAST unique.
  9. Des paires de ciblage clé-valeur sont générées pour chaque enchère pour hb_pb, hb_pb_cat_dur, et hb_cache_id.
  10. ImpBus retourne une réponse JSON avec Prebid ciblant les paires clé-valeur et l’ID de cache.

Diagramme illustrant le processus de demande et de réponse.

API REST

Le tableau suivant répertorie les paramètres obligatoires et facultatifs pour l’envoi d’une demande d’offre vidéo longue.

Paramètre Portée Type Description
app Obligatoire Objet Objet conteneur décrivant l’application qui affichera le ou les pods publicitaires. Si l’application n’est pas incluse dans la demande, le paramètre de site doit l’être.
auction_timeout_ms Facultatif Entier Durée maximale en millisecondes d’attente de la fin de la vente aux enchères. La valeur par défaut est zéro si elle n’est pas donnée, ce qui utilise le paramètre de délai d’expiration des paramètres globaux Prébid Server Premium du membre.
bcat Facultatif Tableau de chaînes Catégories d’annonceurs bloquées à l’aide des catégories de contenu IAB.
badv Facultatif Tableau de chaînes Liste bloquée des annonceurs par domaine (par exemple, « ford.com »).
cacheconfig Facultatif Objet Contrôles facultatifs pour avoir les informations de cache du serveur prébid.
content Facultatif Objet Objet conteneur décrivant diverses métadonnées de contenu qui peuvent être utilisées pour cibler le adPod(s).
cur Facultatif Chaîne Valeur par défaut : USD. Devise autorisée pour le ciblage des clés sur cette demande d’enchère à l’aide de codes alpha ISO-4217.
device Facultatif Objet Objet conteneur décrivant l’appareil utilisé pour le rendu vidéo.
eids Facultatif Objet Liste des ID d’utilisateur unifiés.
gpid Facultatif Chaîne ID de placement global. Identificateur unique de l’emplacement publicitaire sur plusieurs plateformes. Pour plus d’informations sur l’emplacement d’annonce prebid et gpID, consultez la documentation prebid.
includebrandcategory Facultatif Objet Objet conteneur décrivant les entrées de catégorie de marque.
memberid Facultatif (obligatoire si vous utilisez des codes d’inventaire) Entier ID de membre du vendeur.
podconfig Obligatoire Objet Objet conteneur pour décrire toutes les configurations de pod. Pour plus d’informations sur l’objet pod , consultez la section Configuration du pod ci-dessous.
pricegranularity Facultatif (recommandé) Objet Pour plus d’informations sur l’objet pricegranualrity , consultez la section Granularité des prix ci-dessous. Pour obtenir une explication plus large sur la définition pricegranularityde , consultez la documentation Prebid.
site Obligatoire Objet Objet conteneur décrivant la page qui envoie le adpodrequest. Si site n’est pas inclus, le app paramètre doit être .
user Facultatif Objet Objet conteneur décrivant l’utilisateur de l’appareil.
video Facultatif Objet Objet conteneur décrivant le lecteur vidéo.
xdyn_params Facultatif Objet Cet objet contient des paramètres spécifiques au soumissionnaire, de sorte que chaque clé est un nom de soumissionnaire et que la valeur est un objet JSON contenant des paramètres pour ce soumissionnaire. Voir exemple.

xdyn_params Exemple

{
  "xdyn_params": {
    "appnexus": {
      "keywords": "key1=val1,key2=val2"
    }
  }
}

Application

L’objet app prend en charge les paramètres de requête suivants.

Paramètre Portée Type Description
domain Obligatoire Chaîne Domaine de l’application.
name Facultatif Chaîne Nom de l’application.
bundle Facultatif Chaîne Identificateur d’application spécifique à la plateforme destiné à être unique à l’application et indépendant de l’échange. Il doit s’agir d’un nom d’offre groupée ou de package (par exemple, com.foo.mygame).
keywords Facultatif Chaîne Liste de mots clés séparés par des virgules.
storeurl Facultatif Chaîne URL de l’App Store pour une application installée.

Configuration du cache

L’objet cache config prend en charge les paramètres de requête suivants.

Paramètre Portée Type Description
ttl Facultatif Entier Durée de vie d’une entrée de cache spécifiée en secondes.
disablecache Facultatif Valeur booléenne Le paramètre par défaut est false. Si cet indicateur est défini, le cache PBS est désactivé et la responsabilité de la mise en cache incombe au serveur de publication ou au fournisseur de l’éditeur.

Contenu

L’objet content prend en charge les paramètres de requête suivants.

Paramètre Portée Type Description
album Facultatif Chaîne Album auquel appartient le contenu ; généralement pour l’audio.
artist Facultatif Chaîne Artiste crédité du contenu.
airtime Facultatif Entier Date et heure auxquelles le contenu a été diffusé pour la première fois.
cat Facultatif Tableau de chaînes Tableau de catégories de contenu IAB qui décrivent le producteur de contenu. Reportez-vous aux spécifications IAB.
channel Facultatif Chaîne Nom du canal sur lequel le contenu est diffusé.
contentrating Facultatif Chaîne Évaluation du contenu (par exemple, MPAA).
context Facultatif Entier Type de contenu (jeu, vidéo, texte, etc.). Reportez-vous aux spécifications IAB.
data Facultatif Tableau d’objets Données de contenu supplémentaires. Chaque objet Data représente une source de données différente. Reportez-vous aux spécifications IAB.
embeddable Facultatif Valeur booléenne Indicateur indiquant si le contenu est incorporable ou non (par exemple, un lecteur vidéo incorporable), où false = non, true = oui.
episode Facultatif Entier Numéro d’épisode.
ext Facultatif Objet Espace réservé pour les extensions spécifiques à l’échange pour OpenRTB.
genre Facultatif Chaîne Genre qui décrit le mieux le contenu (par exemple, rock, pop, etc.).
id Facultatif Chaîne ID identifiant de manière unique le contenu.
isrc Facultatif Chaîne Code d’enregistrement standard international conforme à la norme ISO-3901.
keywords Facultatif Chaîne Liste de mots clés séparés par des virgules décrivant le contenu.
language Facultatif Chaîne Langage de contenu utilisant ISO-639-1-alpha-2.
len Facultatif Entier Longueur du contenu en secondes ; approprié pour la vidéo ou l’audio.
livestream Facultatif Valeur booléenne true = en direct, false = non en direct (par exemple, flux, journal en direct).
network Facultatif Chaîne La société mère de niveau supérieur ou, le cas échéant, une sous-marque qui possède plusieurs chaînes de type TV, des marques de contenu d2c ou des propriétés numériques sur lesquelles le contenu est affiché.
prodq Facultatif Entier Qualité de la production. Reportez-vous aux spécifications IAB.
producer Facultatif Objet Détails sur le contenu producer. Reportez-vous aux spécifications IAB.
qagmediarating Facultatif Entier Évaluation des médias selon les recommandations iqg. Reportez-vous aux spécifications IAB.
season Facultatif Chaîne Saison de contenu (par exemple, « Saison 3 »).
series Facultatif Chaîne Exemples vidéo : « The Office » (télévision), « Star Wars » (film), ou « Arby 'N' The Chief » (fait pour le web).
Exemple non vidéo : « Ecocentric » (blog Time Magazine).
sourcerelationship Facultatif Entier 0 = indirect, 1 = direct.
title Facultatif Chaîne Titre du contenu.
Exemples vidéo : « Search Committee » (télévision), « A New Hope » (film), ou « Endgame » (fait pour le web).
Exemple non vidéo : « Pourquoi un glacier antarctique fond si rapidement » (article du magazine Time).
url Facultatif Chaîne URL du contenu, pour la contextualisation ou la révision côté achat.
userrating Facultatif Chaîne Évaluation par l’utilisateur du contenu (par exemple, nombre d’étoiles, mentions J’aime, etc.).
videoquality Facultatif Entier; DÉCONSEILLÉE Remarque :Déconseillé en faveur de prodq. Qualité vidéo. Reportez-vous aux spécifications IAB.
program_type Facultatif Chaîne Type de programme.

Appareil

L’objet device prend en charge les paramètres de requête suivants.

Paramètre Portée Type Description
ua Facultatif Chaîne Agent utilisateur du navigateur.
dnt Facultatif Entier Indicateur standard « Ne pas suivre » tel que défini dans l’en-tête par le navigateur. Les valeurs acceptées sont les suivantes :
- 0. Le suivi est illimité.
- 1. Ne pas suivre.
lmt Facultatif Entier Signal « Limiter le suivi publicitaire » pour les appareils mobiles (par exemple, iOS, Android). Les valeurs acceptées sont les suivantes :
- 0. Le suivi est illimité.
- 1. Le suivi doit être limité par les directives commerciales.
ip Facultatif Chaîne Adresse IP de l’appareil qui effectue la demande d’annonce.
os Facultatif Chaîne Système d’exploitation de l’appareil. Exemple "iOS".
h Facultatif Entier Hauteur physique de l’écran en pixels.
w Facultatif Entier Largeur physique de l’écran en pixels.
devicetype Facultatif Entier Type général d’appareil. Les valeurs acceptées sont les suivantes :
- Mobile/Tablet
- Personal Computer
- Connected TV
- Phone
- Tablet
- Connected Device
- Set Top Box
ifa Facultatif Chaîne ID approuvé pour l’utilisation de l’annonceur en clair (c’est-à-dire non haché).
didsha1 Facultatif Chaîne L’ID de l’appareil matériel (par exemple, IMEI) ; haché via SHA1.
didmd5 Facultatif Chaîne L’ID de l’appareil matériel (par exemple, IMEI) ; hachage via MD5.
dpidsha1 Facultatif Chaîne ID d’appareil de plateforme (par exemple, ID Android) ; haché via SHA1.
dpidmd5 Facultatif Chaîne ID d’appareil de plateforme (par exemple, ID Android) ; hachage via MD5.
macsha1 Facultatif Chaîne Adresse MAC de l’appareil ; haché via SHA1.
macmd5 Facultatif Chaîne Adresse MAC de l’appareil ; hachage via MD5.

Aïds

L’objet eid prend en charge les paramètres de requête suivants.

Paramètre Portée Type Description
source Obligatoire Chaîne Fournisseur de technologie ou source.
id Obligatoire Chaîne ID utilisateur unique.
rti_partner Obligatoire Chaîne ID de partenaire.

Inclure la catégorie de marque

L’objet includebrandcategory prend en charge les paramètres de requête suivants.

Paramètre Portée Type Description
primaryadserver Facultatif Entier Entier dont la valeur représente le serveur publicitaire utilisé par l’éditeur. Les valeurs acceptées sont les suivantes :
- Freewheel
- Google Ad Manager

Site

L’objet site prend en charge les paramètres de requête suivants.

Paramètre Portée Type Description
page Obligatoire Chaîne URL de la page dans laquelle l’impression sera affichée.
keywords Facultatif Chaîne Liste de mots clés séparés par des virgules.

Utilisateur

L’objet user prend en charge les paramètres de requête suivants.

Paramètre Portée Type Description
buyeruid Facultatif Entier ID utilisateur Xandr, s’il est connu.
yob Facultatif Entier Année de naissance de l’utilisateur sous la forme d’un entier à quatre chiffres.
gender Facultatif Entier Le sexe de l’utilisateur. Les valeurs acceptées sont les suivantes :
- M:Mâle
- F:Femelle
- O: connu pour être autre.
keywords Facultatif Chaîne Liste de mots clés représentant des intérêts ou des intentions.
gdpr Facultatif Objet Objet conteneur décrivant les paramètres RGPD de l’utilisateur. Pour plus d’informations, consultez la section RGPD ci-dessous.
privacy Facultatif Chaîne Chaîne de confidentialité utilisateur CCPA.

Vidéo

L’objet video prend en charge les paramètres de requête suivants.

Paramètre Portée Type Description
context Facultatif Entier Contexte dans lequel l’annonce vidéo sera affichée.
- 0:Inconnu
- 1: Pré-inscription
- 2: Midroll
- 3: Postroll
- 4: Outstream
- 5: Dans la bannière
w Facultatif Entier Largeur du lecteur vidéo en pixels indépendants de l’appareil.
h Facultatif Entier Hauteur du lecteur vidéo en pixels indépendants de l’appareil.
mimes Facultatif Tableau de chaînes Tableau de types mime pris en charge par le lecteur vidéo. Exemple : ["video/mp4"]
protocols Facultatif Tableau de chaînes Tableau de protocoles vidéo pris en charge par le lecteur vidéo. Les protocoles vidéo acceptés sont les suivants :
- VAST 1.0
- VAST 2.0
- VAST 3.0
- VAST 1.0 Wrapper
- VAST 2.0 Wrapper
- VAST 3.0 Wrapper
- VAST 4.0
- VAST 4.0 Wrapper
- DAAST 1.0
- DAAST 1.0 Wrapper

Gousses

L’objet pod prend en charge les paramètres de requête suivants.

Paraméter Portée Type Description
podid Obligatoire Entier ID unique du pod dans une requête particulière. Il est recommandé de les ordonner séquentiellement avec un incrément d’un.
adpoddurationsec Obligatoire Entier Durée de .adPod
placementid Obligatoire Entier ID de placement auquel un pod est lié. Si placementid est omis, et request.memberidinvcode sont obligatoires.
invcode Facultatif Chaîne Code d’inventaire auquel un pod est lié. Si est invcode transmis, le vendeur doit également transmettre son ID de membre dans request.memberid.
Si invcode est omis, est placementid obligatoire.

Configuration du pod

L’objet pod config prend en charge les paramètres de requête suivants.

Paramètre Portée Type Description
adomaindedupe Facultatif Valeur booléenne Indicateur qui indique s’il faut ou non dédupliquer en fonction du domaine de l’annonceur (adomain valeur dans les réponses d’enchère OpenRTB). Lorsqu’elle est activée, deux enchères sélectionnées peuvent avoir le même domaine d’annonceur.
perpodkeys Facultatif Valeur booléenne Indicateur indiquant si clé-valeur en réponse doit être configuré pour la séparation concurrentielle par pod. La valeur par défaut est false. Lorsque cet indicateur est activé, un _podX identificateur est ajouté aux noms de clé retournés, où X commence à 1 et augmente de 1 pour chaque pod suivant.
Chaque pod a une valeur différente hb_cache_id avec laquelle ses enchères sont mises en cache, ce qui permet de retourner des valeurs identiques hb_pb_cat_dur tant qu’elles se produisent dans des pods différents. Ajoute instance ID à la valeur pour permettre le retour d’enchères similaires même dans les mêmes pods. Les ID d’instance sur les valeurs sont un postfixe où _pX X commence à 0 et augmente de 1 pour chaque enchère identique ultérieure. Par exemple, avec perpodkeys l’indicateur activé, une clé et une hb_pb_cat_dur valeur qui ressemblent normalement à : "hb_pb_cat_dur""15.00_airlines_30s"
Au lieu de cela, se présente comme suit :
"hb_pb_cat_dur_pod1": "15.00_airlines_30s_p0"
pods Obligatoire Objet Objet conteneur pour décrire le adPod(s) à demander.
durationrangesec Obligatoire Entier Plage de durées d’annonces autorisées dans la réponse. Pour plus d’informations sur la plage de durée, consultez la section Plage de durée ci-dessous.
requireexactduration Facultatif Valeur booléenne Indicateur indiquant si les annonces envoyées doivent répondre à l’exigence de durée exacte. Le paramètre par défaut est false.

Plage de durée

est podconfig.durationrangesec un tableau d’entiers représentant les durées d’emplacement publicitaire dans le pod d’annonce :

podconfig.durationrangesec = [15, 30];

Remarque

Si requireexactduration a la falsevaleur , la durée de l’annonce est arrondie à la valeur la plus proche du durationrangesec tableau. La durée minimale de l’offre est égale à zéro. En utilisant le paramètre ci-dessus, une offre de 10 secondes est arrondie à quinze secondes et une offre de 18 secondes arrondie à trente.

Si requireexactduration a la valeur true, seules les publicités correspondant exactement à la durée du durationrangesec tableau sont autorisées. Là encore, à l’aide de l’exemple ci-dessus, une annonce soumise d’une durée de quinze secondes serait autorisée, tandis qu’une annonce soumise avec une durée de 18 secondes serait rejetée.

Règlement général sur la protection des données (RGPD)

Le RGPD est une loi sur la confidentialité des données promulguée par l’Union européenne. L’objectif du RGPD est de fournir des mesures de confidentialité et de sécurité des données plus strictes, ainsi que des divulgations et des rapports plus conviviaux sur les pratiques de protection des données.

Paramètre Portée Type Description
user.gdpr Facultatif Objet Objet conteneur décrivant les paramètres DU RGPD.
gdpr.consentrequired Facultatif Valeur booléenne Indicateur indiquant si le RGPD est en vigueur.
gdpr.consentstring Facultatif Chaîne Chaîne, composée d’une série de nombres, qui identifie le consentement status d’un fournisseur de technologies publicitaires.

Granularité des prix

Paramètre Portée Type Description
precision Facultatif Entier Si la précision est omise, la valeur par défaut est . Consultez la documentation Prebid.
ranges Facultatif Objet Objet conteneur décrivant la plage de granularité des prix.

Plages de granularité des prix

Patameter Portée Type Description
max Facultatif Flottant Longueur maximale de la plage.
increment Facultatif Flottant Quantité à incrémenter au sein de la plage.

Réponse

Les partenaires de demande retournent une réponse à la demande d’offre de pod publicitaire au format JSON.

Pod d’annonces

Paramètre Type Description
adpods Objet Objet conteneur décrivant les réponses du partenaire de demande Prebid pour chaque ad pod envoi dans la demande d’origine.
adpods[...].podid Entier ID du correspondant ad pod.
adpods[...].targeting Objet Objet conteneur décrivant les enchères de partenaire de demande prébaites pour ce pod traduites en clés de ciblage. Pour plus d’informations sur l’objet adpods.targeting , consultez le tableau ci-dessous.

Ciblage des pods publicitaires

Paramètre Type Description
hb_deal Chaîne Code de transaction ou ID de transaction externe de l’enchère associée. Omis si cette offre n’est pas associée à une transaction.
hb_pb Chaîne Clé de ciblage du compartiment de prix. Le modèle de compartimentage de prix est défini par le pricegranularity de la demande et de la configuration. Le compartiment de prix ciblant clé-valeur représente le prix de l’offre arrondie.
hb_pb_cat_dur Chaîne La valeur de cette clé représente la concaténation de trois valeurs, le compartiment de prix (), le code de catégorie créative et la durée de la création vidéo.
Par exemple :
adpods[...]targeting.hb_pb

Cela indiquerait un compartiment de prix de 12,00 $ (si la devise était en dollars américains), un code de catégorie de 135 (dans le domaine du serveur publicitaire principal, tel que Freewheel ou Google Ad Manager) et une durée de trente secondes.

Note: Cette clé-valeur doit être unique pour toutes les enchères correspondant à son pod publicitaire correspondant. S’il existe deux valeurs identiques hb_pb_cat_dur , ImpBus élimine l’une des enchères.
hb_cache_id Chaîne ID de cache prébid. Cette valeur correspond au contenu vidéo rendu.

Remarque :
Cette clé-valeur doit être unique pour toutes les enchères de tous les pods dans une seule requête. La clé de cache créative réelle sera une concaténation de cette valeur et hb_pb_cat_dur. Étant donné hb_pb_cat_dur que doit être unique dans toutes les enchères, cela garantit que la clé de cache créative réelle sera unique. La clé de cache réelle sera créée à l’aide de macros, comme illustré ci-dessous :
${ hb_pb_cat_dur }_${ hb_cache_id }

La hb_cache_id valeur sera la même pour chaque entrée dans targeting[...] une seule réponse.
hb_cache_host Chaîne Nom d’hôte du cache dans lequel le créatif associé à cette enchère est stocké.

Exemple

Exemple de code

curl -X "POST" -H "Content-Type: application/json" -d 

{
   "podconfig":{
      "durationrangesec":[
         30
      ],
      "requireexactduration":false,
      "pods":[
         {
            "podid":1,
            "adpoddurationsec":60,
            "placementid":14997137
         }
      ]
   },
   "site":{
      "page":"https://www.foobar.com/1234.md"
   },
   "user":{
      "yob":1982,
      "gender":"M"
   },
   "device":{
      "ua":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.13 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2",
      "ip":"123.145.167.10",
      "devicetype":1,
      "ifa":"AA000DFE74168477C70D291f574D344790E0BB11"
   },
   "includebrandcategory":{
      "primaryadserver":1
   },
   "video":{
      "w":640,
      "h":480,
      "mimes":[
         "video/mp4"
      ],
      "protocols":[
         2,
         3
      ]
   },
   "content":{
      "episode":6,
      "title":"episodeName",
      "series":"TvName",
      "season":"season3",
      "len":900,
      "livestream":false,
      "genre":"comedy",
      "program_type":"series",
      "contentrating":"GA",
      "id":"ABCDEF12345678",
      "language":"EN",
      "network":"XTV",
      "channel":"XandrTV",
      "airtime":1657827359,
      "album":"showads",
      "cat":[
         "IAB1-7",
         "IAB19-18"
      ],
      "context":1,
      "embeddable":false,
      "isrc":"USXND2100112",
      "keywords":"prizeworth=5000,gameshow,edu=true",
      "prodq":"prosumer",
      "qagmediarating":1,
      "sourcerelationship":true,
      "url":"https://tvname.xandrtv.com/overview",
      "userrating":"4/5 recommended",
      "producer":{
         "id":"xndtv5401",
         "name":"XandrTV",
         "cat":[
            "IAB1-7",
            "IAB19-18"
         ],
         "domain":"xandrtv.com"
      },
      "data":[
         {
            "id":"xandr",
            "name":"xndtv",
            "segment":[
               {
                  "id":"11854",
                  "name":"repeat viewers",
                  "value":"973"
               }
            ]
         }
      ]
   },
   "pricegranularity":{
      "precision":2,
      "ranges":[
         {
            "max":30.00,
            "increment":1.00
         }
      ]
   }
}

Formats et chemins d’intégration pris en charge par PSP