Les configurations publicitaires définissent divers aspects de la lecture SSAI, y compris les appels publicitaires, les balises et d'autres options de configuration. Un compte peut avoir plusieurs configurations et actuellement les configurations ne peuvent pas être partagées entre les comptes.
Informations générales
Les informations suivantes concernent toutes les demandes d'API SSAI.
URL de base
L'URL de base de l'API SSAI est :
https://ssai.api.brightcove.com/v1
Chemin du compte
Dans tous les cas, des demandes seront faites pour un Nuage vidéo Compte. Par conséquent, vous allez toujours ajouter le terme accounts
suivi de votre identifiant de compte à l'URL de base :
https://ssai.api.brightcove.com/v1/accounts/your account id
Authentification
L'authentification des demandes nécessite un en-tête d'autorisation :
Authorization: Bearer your access token
Le access_token
est un jeton d'accès OAuth2 temporaire qui doit être obtenu à partir du service Brightcove OAuth. Pour plus de détails sur la façon d'obtenir les informations d'identification client et de les utiliser pour récupérer des jetons d'accès, consultez le Authentification pour les demandes d'API Brightcove.
Opérations
Lorsque vous demandez des informations d'identification du client, vous devez spécifier le type d'accès au compte ou d'opérations que vous souhaitez. Voici une liste des opérations actuellement prises en charge pour l'API SSAI :
- Données SSAI :
video-cloud/ssai/read
video-cloud/ssai/all
Gérer les configurations d'annonces
L'API prend en charge les requêtes GET et PUT suivantes :
- Répertorier les configurations d'annonces
- Créer une configuration d'annonce
- Obtenir les détails de la configuration des annonces
- Mettre à jour une configuration d'annonce
Répertorier les configurations d'annonces
Répertoriez les configurations d'annonces définies pour un compte.
Méthode | AVOIR |
---|---|
URL | https://ssai.api.brightcove.com/v1/accounts/votre identifiant de compte/ssai_configs |
Headers | Authorization: Porteur votre jeton d'accès |
Type de contenu : application/json |
Réponse de l'échantillon :
[
{
"name": "VMAP Ad Server",
"vmap_response_namespace": "bc",
"config_id": "2ecc6beb-d6a4-4deb-a78e-37ac27e0f883",
"account_id": "57838016001",
"created_timestamp": "2017-07-24T19:28:34.976878586Z",
"updated_timestamp": "2017-07-24T19:28:34.976878586Z",
"ad_config": {
"expected_ad_response": "dfp_ad_rules",
"disable_server_beacons": false,
"template_url": {
"template": "https://solutions.brightcove.com/bcls/ads/simple-ad-rules?ip={{ system.ip_address }}&vid={{ metadata.video_id }}&ppid={{ system.unique_user_id }}&p_vmap={{ url.p_vmap }}"
}
}
}
]
Pour les définitions des champs, voir la section Détails des champs de configuration .
Créer une configuration d'annonce
Créez une configuration d'annonce pour un compte.
Méthode | POST |
---|---|
URL | https://ssai.api.brightcove.com/v1/accounts/votre identifiant de compte/ssai_configs |
Headers | Authorization: Porteur votre jeton d'accès |
Type de contenu : application/json |
Exemple de corps :
{
"name": "VMAP Ad Server",
"vmap_response_namespace": "bc",
"ad_tracking_sample_percentage": 100,
"ad_config": {
"expected_ad_response": "vast_3_0",
"disable_server_beacons": false,
"round_up_cue_points": false,
"template_url": {
"template": "https://solutions.brightcove.com/bcls/ads/simple-ad-rules?ip={{ system.ip_address }}&vid={{ metadata.video_id }}&ppid={{ system.unique_user_id }}&p_vmap={{ url.p_vmap }}"
}
},
"discontinuities": {
"hls": [ "*" ]
}
}
Pour les définitions des champs, voir la section Détails des champs de configuration .
Remarques
-
ad_tracking_sample_percentage
détermine le pourcentage de sessions qui seront enregistrées. Il peut prendre une valeur comprise entre 0 (désactivation de l'enregistrement) et 100 (enregistrement de toutes les sessions).
Obtenir les détails de la configuration des annonces
Pour un compte, obtenez les détails de configuration de l'annonce par Id de configuration.
Méthode | AVOIR |
---|---|
URL | https://ssai.api.brightcove.com/v1/accounts/votre identifiant de compte/ssai_configs/votre identifiant de configuration d'annonce |
Headers | Authorization: Porteur votre jeton d'accès |
Type de contenu : application/json |
Réponse de l'échantillon :
{
"name": "VMAP Ad Server",
"vmap_response_namespace": "bc",
"config_id": "2ecc6beb-d6a4-4deb-a78e-37ac27e0f883",
"account_id": "57838016001",
"created_timestamp": "2017-07-24T19:28:34.976878586Z",
"updated_timestamp": "2017-07-24T19:28:34.976878586Z",
"ad_tracking_sample_percentage": 100,
"ad_config": {
"expected_ad_response": "dfp_ad_rules",
"disable_server_beacons": false,
"template_url": {
"template": "https://solutions.brightcove.com/bcls/ads/simple-ad-rules?ip={{ system.ip_address }}&vid={{ metadata.video_id }}&ppid={{ system.unique_user_id }}&p_vmap={{ url.p_vmap }}"
}
},
"beacon_templates": [
{
"type": "content_start",
"template_url": {
"template": "https://myserver.com/beaconRX/{{metadata.video_id}}/load?position=load&sid={{system.xfp.unique_user_id}}&jid={{metadata.video_id}}&rnd32={{sytem.random_number_32}}&bid={{system.uuid}}&t={{system.timestamp_utc}}&ua={{system.user_agent}}&ip={{system.ip_address}}&ref={{system.referer}}"
}
},
{
"type": "content_midpoint",
"template_url": {
"template": "https://myserver.com/beaconRX/{{metadata.video_id}}/load?position=load&sid={{system.xfp.unique_user_id}}&jid={{metadata.video_id}}&rnd32={{sytem.random_number_32}}&bid={{system.uuid}}&t={{system.timestamp_utc}}&ua={{system.user_agent}}&ip={{system.ip_address}}&ref={{system.referer}}"
}
},
{
"type": "ad_start",
"template_url": {
"template": "https://myserver.com/beaconRX/{{metadata.video_id}}/load?position=load&sid={{system.xfp.unique_user_id}}&jid={{metadata.video_id}}&rnd32={{sytem.random_number_32}}&bid={{system.uuid}}&t={{system.timestamp_utc}}&ua={{system.user_agent}}&ip={{system.ip_address}}&ref={{system.referer}}"
}
},
{
"type": "content_complete",
"template_url": {
"template": "https://myserver.com/beaconRX/{{metadata.video_id}}/load?position=load&sid={{system.xfp.unique_user_id}}&jid={{metadata.video_id}}&rnd32={{sytem.random_number_32}}&bid={{system.uuid}}&t={{system.timestamp_utc}}&ua={{system.user_agent}}&ip={{system.ip_address}}&ref={{system.referer}}"
}
}
],
"discontinuities": {
"dash": [
"*"
],
"hls": [
"*"
]
},
"extend_beacon_guard_ttl": true
}
}
Pour les définitions des champs, voir la section Détails des champs de configuration .
Mettre à jour une configuration d'annonce
Mettre à jour une configuration d'annonce par l'ID de configuration.
Méthode | METTRE |
---|---|
URL | https://ssai.api.brightcove.com/v1/accounts/votre identifiant de compte/ssai_configs/votre identifiant de configuration d'annonce |
Headers | Authorization: Porteur votre jeton d'accès |
Type de contenu : application/json | |
Corps de l'échantillon |
|
Réponse de l'échantillon :
{
"name": "VMAP Ad Server - updated",
"vmap_response_namespace": "bc",
"config_id": "2ecc6beb-d6a4-4deb-a78e-37ac27e0f883",
"account_id": "57838016001",
"created_timestamp": "2017-07-24T19:28:34.976878586Z",
"updated_timestamp": "2017-07-24T19:28:34.976878586Z",
"ad_config": {
"expected_ad_response": "dfp_ad_rules",
"disable_server_beacons": false,
"template_url": {
"template": "https://solutions.brightcove.com/bcls/ads/simple-ad-rules?ip={{ system.ip_address }}&vid={{ metadata.video_id }}&ppid={{ system.unique_user_id }}&p_vmap={{ url.p_vmap }}"
}
}
}
Pour les définitions des champs, voir la section Détails des champs de configuration .
Détails du champ de configuration
Ce tableau définit les champs de configuration d'annonce utilisés dans la section corps d'une demande.
Champ | Type | Description |
---|---|---|
name |
Chaîne | Nom lisible par l'homme |
vmap_response_namespace |
Chaîne | Ajuste la sortie VMAP pour utiliser l'ancien format d'espace de noms Unicorn Once ou pour utiliser le nouveau format d'espace de noms Brightcove. Valeurs : uo , bc Par défaut : bc |
description |
Chaîne | Description lisible par l'homme |
ad_config.expected_ad_response |
Chaîne | Quelle technologie utiliser pour analyser la réponse. [ 1] Valeurs :
|
ad_config.disable_server_beacons |
Booléen | Indique si le déclenchement côté serveur des impressions/balises publicitaires doit être désactivé. Lorsqu'il est défini sur true , SSAI ne déclenche pas de balises côté serveur et inclura toutes les balises dans la sortie VMAPLorsqu'il est défini sur false , SSAI déclenche les balises qu'il est capable de côté serveur et inclut tout ce qu'il n'est pas en mesure de faire dans la sortie VMAP |
ad_config.round_up_cue_points |
Booléen | Indique s'il faut arrondir à l'image clé suivante lors du choix d'une position à proximité pour l'insertion d'annonces. Par défaut : false , qui choisit l'image-clé la plus proche de la position d'annonce souhaitée. |
ad_config.template_url.template |
Chaîne | Modèle de tag d'emplacement publicitaire. Variables disponibles décrites dans une section ultérieure. |
ad_config.template_url.defaults |
Objet | Mappage de String à String définissant la valeur par défaut à utiliser dans le cas où un paramètre d'URL n'est pas fourni. Peut être un littéral { "url.foo": "SomeString" } Ou référencer une autre variable { "url.foo": "{{ metadata.title_id }}" } |
ad_tracking_sample_percentage |
entier | Cette valeur détermine le pourcentage de sessions qui seront enregistrées. Il peut avoir une valeur comprise entre 0 (désactiver la journalisation) et 100 (enregistrer toutes les sessions). La valeur 0 désactive complètement les journaux.Par défaut : 0 Valeurs : [ 0 .. 100 ] |
beacon_templates |
baie | Un tableau de balises à tirer (exemple : balises tierces) |
beacon_templates[].type |
Chaîne |
Type de balise à tirer. Valeurs:
|
beacon_templates[].template_url.template |
Chaîne | Modèle d'URL de balise |
discontinuities.dash [ 2] |
[]Chaîne de caractères | Contrôle les versions de Dash pour fournir des manifestes Multi Period Dash. Définie ["*"] sur pour fournir un tiret multipériode pour toutes les versions Listevide pour jamais Exemple : ["live-timeline"] à livrer pour live timeline mais pas pour hbbtv |
discontinuities.hls [ 2] |
[]Chaîne de caractères | Contrôle les versions de hls à livrer avec des discontinuités.["*"] Définir sur livraison avec discontinuités dans toutes les versions de HLS Listevide pour jamais Exemple : ["v4","v5"] à livrer pour v4 et v5 mais pas pour v3 |
extend_beacon_guard_ttl |
Booléen | Définit la durée de la durée de vie de Beacon Guard TTL (Time to live) à la durée de la session TTL du contenu. Sinon, la valeur par défaut est 1 minute. |
Types de réponses publicitaires
Voici quelques informations supplémentaires sur l'utilisation des ad_config.expected_ad_response
types figurant dans le tableau ci-dessus. Valeurs:
vast_3_0
- Modèle de diffusion d'annonces vidéo numériques (VAST)dfp_vmap
- Liste de lecture vidéo comportant plusieurs publicités (VMAP)dfp_ad_rules
- Format propriétaire pour Google DFP, qui a été renommé Google Ad Manager (GAM)smart_xml
- Format propriétaire pour FreeWheel
Flux de processus
Lorsque vous créez des configurations publicitaires SSAI, gardez à l'esprit les remarques suivantes :
VMAP
Si le type de réponse publicitaire de SSAI Config est DFP VMAP :
- Tous les marqueurs configurés avec une vidéo seront ignorés.
- Le SSAI analyse le fichier XML VMAP du fournisseur de publicité qui contient toutes les publicités avec leurs positions définies.
VASTE
Si le type de réponse publicitaire de SSAI Config est VAST 3.0 :
- Définissez des points de repère dans votre vidéo. Le SSAI fera des demandes pour chaque point de repère dans la vidéo afin de construire des pauses publicitaires.
- Si aucun marqueur temporel n'est configuré pour une vidéo, une publicité de type preroll est insérée par défaut.
Variables publicitaires
Les variables de l'URL du modèle sont identifiées par des accolades doubles ({{ … }}
) avec des espaces blancs optionnels avant et après le chemin d'accès à la variable. Toutes les variables sont préfixées par l'un des trois espaces de noms :
Variables système
Les variables système sont fournies par le système SSAI et peuvent être des informations sur l'utilisateur final ou des variables auxiliaires pour générer des valeurs aléatoires. Les valeurs doivent être codées en URI avant d'être insérées dans les modèles d'URL.
Les variables système sont identifiées comme : {{system.*}}
Champ | Description |
---|---|
ad.position_time |
Le temps en secondes du Cue Point qui a déclenché la demande d'annonce ; Uniquement disponible pour le type de réponse d'annonce VAST |
ip_address |
Adresse IP de l'utilisateur final |
random_number_32 |
Entier aléatoire de 32 bits |
random_number_<min>_<max> |
Génère un nombre aléatoire entre deux nombres. La plage acceptée va de 0 à la valeur maximale de UInt32 . Seuls les nombres positifs sont autorisés, et le min doit être inférieur au max |
random_guid |
UUID aléatoire |
referer |
Valeur de l'en-tête Référent de l'utilisateur final |
timestamp_utc |
Heure actuelle sous forme d'horodatage Unix |
unique_user_id |
MD5 (adresse_ip + agent_utilisateur) |
unix_timestamp |
Heure actuelle sous forme d'horodatage Unix (secondes) |
user_agent |
Valeur d'en-tête User-Agent de l'utilisateur final |
uuid |
Uuid aléatoire |
x_forwarded_for |
Valeur d'en-tête X-Forwarded-For de l'utilisateur final |
xfp.correlator |
Entier aléatoire 64 bits |
xfp.ip_address |
Adresse IP de l'utilisateur final |
xfp.unique_user_id |
MD5 (adresse_ip + agent_utilisateur) |
xfp.scor |
Entier aléatoire 64 bits |
Variables d'URL
Les paramètres de requête fournis sur le point d'entrée VMAP/Manifest sont disponibles sous le url
espace de noms. Contrairement aux variables sous d'autres espaces de noms, ces paramètres ne sont pas codés en URL lors de l'insertion dans le modèle. Si les valeurs des variables doivent être encodées en URL pour aller au fournisseur de publicité, elles devront être encodées en double sur l'url du point d'entrée.
Les variables d'URL sont identifiées comme : {{url.*}}
Les variables URL doivent être remplacées à l'aide d'une intégration personnalisée comme suit :
- Écrire du code pour faire une demande à l'API de lecture.
- Intercepte les données renvoyées par la requête API.
- Remplacez tous
{{url.*}}
les jetons dans les URL sources - Chargement des données/sources dans le lecteur (Brightcove Player for web ou les SDK natifs)
Variables de métadonnées
Les variables de métadonnées sont celles qui décrivent le contenu vidéo, dérivées des sources de données Video Cloud et Dynamic Delivery. Les valeurs (à l'exception de ad_keys
) sont codées en URL avant d'être insérées dans les modèles d'URL.
Les variables de métadonnées sont identifiées comme : {{metadata.*}}
Champ | Description |
---|---|
ad_keys |
Chaîne de texte libre qui peut être ajoutée et modifiée dans le module médias de Video Cloud Studio à l'aide de l'un des deux champs ci-dessous, en fonction du type de réponse à votre publicité
|
custom_fields.{field_name} |
Champs personnalisés de Video Cloud |
long_description |
Description longue de Video Cloud |
name |
Nom de la vidéo Video Cloud |
reference_id |
Identifiant de référence Video Cloud |
tags |
Liste séparée par des virgules des balises Video Cloud pour la vidéo |
title.duration |
Durée du contenu en secondes |
title.id |
Identifiant du titre de la diffusion dynamique |
title.name |
Nom du titre de la diffusion dynamique |
video_id |
Identifiant vidéo Video Cloud |
D' autres paires clé/valeur Video Cloud seraient également là |
Paramètres d'URL du point d'entrée
Il existe une poignée de paramètres de requête qui peuvent être ajoutés à l'URL du point d'entrée SSAI (VMAP ou manifeste) afin de modifier certains comportements :
Paramètre | Description |
---|---|
?rule=sd-only |
Filtre tout rendu vidéo dont la hauteur est inférieure au seuil défini dans la configuration du compte |
?rule=discos-enabled |
Activez la lecture avec discontinuités dans HLS et multipériodes dans Dash. A la priorité sur le réglage des discontinuités dans la configuration de lecture |
?rule=discos-disabled |
Désactivez la lecture avec discontinuités dans HLS et multipériodes dans Dash. A la priorité sur le réglage des discontinuités dans la configuration de lecture |
Notes de configuration
- Le préchargement des annonces ne doit pas être effectué avec SSAI. La raison en est que si vous préchargez, le lecteur signalera une impression publicitaire et probablement les balises du premier quartile avant la lecture de la vidéo. Cela pourrait conduire à des analyses publicitaires inexactes. Si vous configurez SSAI dans Studio, cela se fera automatiquement, mais si vous configurez SSAI manuellement, vous devez être conscient de ce problème.
- Si le lecteur Web utilise SSAI et que l'une de vos motivations est de contourner les bloqueurs de publicités, vous devez utiliser des balises côté serveur. Les balises côté client ne doivent pas être utilisées car elles seront bloquées.
Macros côté client
Utilisez le page
préfixe lorsque vous souhaitez utiliser des macros publicitaires côté client. Ces macros vous permettent d'utiliser des variables dans les URL de VMAP et de serveur. Pour plus de détails sur les macros publicitaires, reportez-vous à la section Macros Ad et ServerURL du document Advertising with the IMA3 Plugin.
Les macros côté client sont préfixées par : {{page.*}}
Par exemple, pour ajouter le document.referrer
et un pageVariable
variable de fenêtre DOM, vous les préfixeriez avec page
dans le modèle d'annonce comme suit :
https://adserver.com/{{page.document.referrer}}/{{page.pageVariable.whateverIwant}}
L'API de lecture revient document.referrer
et pageVariable.whateverIwant
ajouté aux URL VMAP et SRC. Le lecteur Brightcove exécute ensuite sa logique de remplacement de macro côté client pour remplacer les valeurs appropriées, avant d'envoyer la demande :
https://bolt-prefix/blah.vmap?document.referrer={document.referrer}&pageVariable.whateverIwant={pageVariable.whateverIwant}
Balises d'erreur publicitaire
Les balises d'erreur publicitaire VAST lors de l'utilisation de SSAI peuvent être utiles pour rechercher et résoudre de manière proactive les problèmes liés à votre flux de travail publicitaire. Pour plus de détails, consultez le Balises d'erreur publicitaire avec SSAI document.