L'insertion d'annonces guidée par le serveur (SGAI) fournit un fichier manifeste de série d'annonces prêt à être assemblé sur les appareils clients. Si vous avez activé l'insertion dynamique d'annonces avec diffusion de séries d'annonces dans votre réseau Google Ad Manager, vous pouvez utiliser la SGAI. Si l'insertion dynamique d'annonces avec diffusion de séries d'annonces n'est pas activée, contactez votre responsable de compte.
Avec la SGAI, vous utilisez les points de terminaison de l'API de diffusion de séries d'annonces pour créer un flux, récupérer les métadonnées des annonces et les fichiers manifestes des séries d'annonces.
Si vous disposez d'un serveur de manipulation de fichiers manifestes, vous pouvez générer les URL des fichiers manifestes des séries d'annonces et insérer des repères d'annonces contenant les informations des fichiers manifestes des séries d'annonces dans votre flux de contenu, conformément à la spécification de votre choix.
Vous pouvez également planifier une coupure publicitaire à l'aide d'un autre mécanisme que les repères d'annonces dans le fichier manifeste du flux. Dans ce cas, votre application peut écouter d'autres événements, par exemple l'interaction de l'utilisateur avec le flux, l'application elle-même ou une notification push. Après ces événements, l'application peut générer les URL des fichiers manifestes des séries d'annonces et indiquer au lecteur de commencer à charger le fichier manifeste de la série d'annonces.
Prérequis
Avant de continuer, assurez-vous que vous disposez des éléments suivants :
- L'insertion dynamique d'annonces avec diffusion de séries d'annonces est activée sur votre réseau Google Ad Manager.
- Un événement de diffusion en direct de type Fichier manifeste de la diffusion de séries d'annonces. Pour créer l'événement, consultez Configurer une diffusion en direct pour l'insertion dynamique d'annonces.
Suivre les recommandations
Avant de générer l'URL du fichier manifeste de la série d'annonces, nous vous recommandons d'appeler l' API EABN (Early Ad Break Notification) pour spécifier la durée prévue, les informations de ciblage et d'autres paramètres de chaque coupure publicitaire.
Pour les flux de production et de test, appelez l'API EABN, en particulier si votre réseau publicitaire comporte des campagnes programmatiques. Pour en savoir plus, consultez Fonctionnalités et consignes concernant le programmatique direct.
Envoyer une demande d'enregistrement de flux
Lorsqu'un utilisateur démarre un flux de contenu dans votre application de lecteur vidéo, vous envoyez une demande d'enregistrement de flux avec des paramètres de ciblage pour créer une session de streaming sur Ad Manager. Pour en savoir plus sur l'envoi d'une demande d'enregistrement de flux, consultez Méthode : stream. Vous recevez ensuite les données de réponse de la requête.
Les exemples suivants envoient une demande d'enregistrement de flux :
HTTP en texte brut
- Requête :
authority: dai.google.com
method: POST
path: /ssai/pods/api/v1/network/51636543/custom_asset/hls-podserving-manifest/stream
scheme: https
content-type: application/x-www-form-urlencoded
cust_params=customID%253D1543216789%2526anotherKey%253Dvalue1%252Cvalue2
- Response:
{
"manifest_format": "hls",
"media_verification_url": "https://dai.google.com/view/p/service/linear/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/loc/TUL/network/51636543/event/TFyZF0IoSpqvCLtLv8JdCw/media/",
"metadata_url": "https://dai.google.com/linear/pods/hls/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/metadata",
"polling_frequency": 10,
"session_update_url": "https://dai.google.com/linear/v1/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/session",
"stream_id": "24fd4e7c-95a0-42be-8874-00625139b9db:TUL"
}
Coquille Rose
- Ligne de commande :
curl \
-H "Host: dai.google.com" \
-H "content-type: application/x-www-form-urlencoded" \
--data-binary "cust_params=channelID%253D1543216789%2526anotherKey%253Dvalue1%252Cvalue2" \
--compressed "https://dai.google.com/ssai/pods/api/v1/network/51636543/custom_asset/hls-podserving-manifest/stream"
- Résultat :
{
"manifest_format": "hls",
"media_verification_url": "https://dai.google.com/view/p/service/linear/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/loc/TUL/network/51636543/event/TFyZF0IoSpqvCLtLv8JdCw/media/",
"metadata_url": "https://dai.google.com/linear/pods/hls/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/metadata",
"pod_manifest_url": "https://dai.google.com/linear/pods/v1/hls/event/TFyZF0IoSpqvCLtLv8JdCw/pod/$pod-id$.m3u8?stream_id=24fd4e7c-95a0-42be-8874-00625139b9db%3ATUL",
"polling_frequency": 10,
"session_update_url": "https://dai.google.com/linear/v1/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/session",
"stream_id": "24fd4e7c-95a0-42be-8874-00625139b9db:TUL"
}
JavaScript
- Utiliser l'API Fetch :
const response = await fetch("https://dai.google.com/ssai/pods/api/v1/network/51636543/custom_asset/hls-podserving-manifest/stream", {
"headers": {
"content-type": "application/x-www-form-urlencoded",
},
"body": "cust_params=channelID%3D1543216789%26anotherKey%3Dvalue1%2Cvalue2",
"method": "POST",
});
const stream = await response.json();
console.log(stream);
- Journal de la console :
{
"stream_id": "24fd4e7c-95a0-42be-8874-00625139b9db:TUL",
"media_verification_url": "https://dai.google.com/view/p/service/linear/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/loc/TUL/network/51636543/event/TFyZF0IoSpqvCLtLv8JdCw/media/",
"metadata_url": "https://dai.google.com/linear/pods/hls/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/metadata",
"session_update_url": "https://dai.google.com/linear/v1/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/session",
"polling_frequency": 10,
"pod_manifest_url": "https://dai.google.com/linear/pods/v1/hls/event/TFyZF0IoSpqvCLtLv8JdCw/pod/$pod-id$.m3u8?stream_id=24fd4e7c-95a0-42be-8874-00625139b9db%3ATUL",
"manifest_format": "hls"
}
Interroger les métadonnées des coupures publicitaires
Une fois que vous avez envoyé une demande d'enregistrement de flux, interrogez les métadonnées des annonces. Pour
interroger, vous définissez un minuteur à l'aide de polling_frequence dans la réponse du flux à
l'étape d'enregistrement afin d'appeler les
métadonnées des annonces.
Pour chaque interrogation, vous pouvez recevoir une liste partielle d'annonces avec des métadonnées à mesure qu'elles deviennent disponibles.
Générer l'URL du fichier manifeste de la série d'annonces
Créez une URL pour la ressource de série d'annonces de l'API de diffusion de séries d'annonces. Ensuite, transmettez l'URL à un lecteur vidéo pour commencer à charger la série d'annonces.
L'exemple suivant illustre la structure de l'URL du fichier manifeste de la série d'annonces :
https://dai.google.com/linear/pods/v1/hls/network/51636543/custom_asset/pod_serving_hls_manifest_mp4/ad_break_id/ab101.m3u8?stream_id=24fd4e7c-95a0-42be-8874-00625139b9db:TUL&pd=120000
Vous pouvez calculer les paramètres de l'URL du fichier manifeste de la série d'annonces en fonction des informations de coupure publicitaire récupérées à partir du lecteur vidéo ou d'une notification du serveur. Pour connaître les exigences de ces paramètres, consultez Méthode : fichier manifeste de la série d'annonces.
Lire le fichier manifeste de la série d'annonces
Dans l'application de lecteur vidéo client, commencez la lecture du flux de contenu avec un lecteur vidéo principal et suivez la documentation de votre lecteur vidéo pour observer la lecture et le calendrier des annonces, le cas échéant.
Si vous générez les URL des fichiers manifestes des séries d'annonces et que vous les insérez dans le fichier manifeste côté serveur, observez les événements de coupure publicitaire à venir du lecteur vidéo et assurez-vous de vous abonner aux événements id3 lors de la lecture de chaque coupure publicitaire. Si vous planifiez les événements de coupure publicitaire côté client, abonnez-vous aux événements id3 lors de la création.
Signaler les impressions et les événements d'annonces
Lorsqu'un lecteur vidéo lit la série d'annonces et rencontre des métadonnées temporelles id3, écoutez les événements d'annonces déclenchés par le lecteur vidéo et traitez-les pour envoyer des pings de validation des médias.