Pour discuter de nos produits et nous faire part de vos commentaires, rejoignez le canal Discord officiel Ad Manager sur le serveur de la communauté Google Advertising and Measurement.
Le SDK peut fonctionner dans un ou plusieurs modes, en fonction de la réponse publicitaire qu'il reçoit de l'ad server.
Annonce unique
Annonce pouvant être lue à tout moment lorsque le message start est envoyé au IMAAdsManager. Aucune initialisation spéciale n'est nécessaire pour lire une seule annonce.
Série d'annonces
Plusieurs annonces diffusées les unes après les autres lorsque le message start est envoyé à IMAAdsManager. Aucune initialisation spéciale n'est nécessaire pour lire un seul bloc d'annonces.
Règles relatives aux annonces
Playlist de coupures publicitaires programmées à certaines heures pour des contenus spécifiques. Le message start est ignoré en mode règles publicitaires. Plusieurs coupures publicitaires peuvent être programmées dans une même playlist (par exemple, pré-roll, mid-roll et post-roll). Pour en savoir plus sur l'implémentation, consultez la section Règles relatives aux annonces ci-dessous.
Règles relatives aux annonces
Le SDK IMA pour tvOS est compatible avec les playlists d'annonces entièrement automatisées. Cette fonctionnalité insère des pauses publicitaires dans le contenu, comme spécifié dans Google Ad Manager lors du trafficking de vos annonces. Il simplifie également considérablement le code du lecteur vidéo nécessaire pour prendre en charge les coupures publicitaires, y compris les annonces pré-roll, mid-roll et post-roll.
Lorsque vous diffusez des annonces dans Ad Manager, vous pouvez spécifier différentes règles publicitaires, comme "toujours diffuser une coupure publicitaire au début du contenu" ou "diffuser une coupure publicitaire d'une minute toutes les 30 minutes de contenu".
Lorsque des annonces sont demandées, l'ad server peut renvoyer une playlist d'annonces. Le SDK traite la playlist et planifie automatiquement les pauses publicitaires spécifiées.
Lors de l'initialisation de AdsManager, un objet IMAContentPlayhead est transmis via l'appel initializeWithContentPlayhead:adsRenderingSettings:. Si vous utilisez un AVPlayer pour afficher votre contenu, vous transmettez une instance de IMAAVPlayerContentPlayhead au SDK lorsque vous créez votre adDisplayContainer. Cet objet permet de suivre la progression de la lecture du contenu afin que les coupures publicitaires soient automatiquement insérées aux moments spécifiés dans Ad Manager.
Implémentez currentTime pour renvoyer l'heure actuelle de votre lecteur vidéo.
Modifiez l'appel d'initialisation IMAAdsManager pour utiliser initializeWithContentPlayhead:self.
Le IMAAdsManagerDelegate est utilisé pour mettre en pause et reprendre le contenu lors de la diffusion des coupures publicitaires.
Remarque : Une fois le contenu lu ou lorsque l'utilisateur a arrêté la lecture, veillez à appeler contentComplete sur IMAAdsLoader pour indiquer au SDK que le contenu a été lu. Le SDK lit ensuite l'emplacement publicitaire post-roll, s'il a été planifié.
L'événement ALL_ADS_COMPLETED est déclenché lorsque toutes les coupures publicitaires ont été diffusées. De plus, notez que le suivi du contenu commence lorsque la méthode initializeWithContentPlayhead:adsRenderingSettings de IMAAdsManager est appelée. Vous devez toujours appeler initializeWithContentPlayhead:adsRenderingSettings avant de lire du contenu.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/06 (UTC).
[null,null,["Dernière mise à jour le 2025/09/06 (UTC)."],[[["\u003cp\u003eThe tvOS SDK utilizes a WebView for ad requests, parsing responses, tracking, and rendering the ad UI.\u003c/p\u003e\n"],["\u003cp\u003eIt supports various ad formats including single ads, ad pods, and ad rules (playlists of ad breaks).\u003c/p\u003e\n"],["\u003cp\u003eAd rules, managed through Google Ad Manager, allow for automated ad insertion at designated times within the content.\u003c/p\u003e\n"],["\u003cp\u003eThe SDK uses \u003ccode\u003eIMAContentPlayhead\u003c/code\u003e, which integrates with AVPlayer or a custom implementation, to synchronize ad breaks with content playback.\u003c/p\u003e\n"],["\u003cp\u003eUpon content completion, calling \u003ccode\u003econtentComplete\u003c/code\u003e on \u003ccode\u003eIMAAdsLoader\u003c/code\u003e triggers any scheduled post-roll ads and signals the completion of all ads.\u003c/p\u003e\n"]]],[],null,["Select platform: [HTML5](/interactive-media-ads/docs/sdks/html5/client-side/ad-rules \"View this page for the HTML5 platform docs.\") [Android](/interactive-media-ads/docs/sdks/android/client-side/ad-rules \"View this page for the Android platform docs.\") [iOS](/interactive-media-ads/docs/sdks/ios/client-side/ad-rules \"View this page for the iOS platform docs.\") [tvOS](/interactive-media-ads/docs/sdks/tvos/client-side/ad-rules \"View this page for the tvOS platform docs.\")\n| **Note:** The tvOS SDK uses a WebView to load a JavaScript back end. This WebView is used to make ad requests, parse responses, ping tracking URLs, and render the ad UI.\n\nSDK operation modes\n\nThe SDK can operate in one or more modes, depending on the ad response it receives from the ad\nserver.\n\nSingle ad\n: An ad that can be played at any time when the `start`\n message is sent to the `IMAAdsManager`. No special initialization\n is necessary to play a single ad.\n:\n\nAd pod\n: Several ads that play back to back when the `start` message is sent to\n the `IMAAdsManager`. No special initialization is necessary to\n play a single ad pod.\n\nAd rules\n: A playlist of ad breaks scheduled at certain times against particular\n content. The `start` message is ignored in ad rules mode. There can\n be several ad breaks scheduled within a single playlist (e.g., pre-roll,\n mid-roll, post-roll). For further implementation details, see the\n [Ad Rules](#ad-rules) section below.\n\nAd rules\n\nIMA\ntvOS SDK supports fully automated ad playlists. This feature\ninserts ad breaks into the content as specified in\n[Google Ad Manager](//admanager.google.com/)\nwhen trafficking your ads. It also greatly simplifies the video player code\nnecessary to support ad breaks, including pre-rolls, mid-rolls, and post-rolls.\n\n- When trafficking ads in Ad Manager, it is possible to specify various ad rules like \"always play ad break at the beginning of the content\" or \"play a one-minute ad break every 30 minutes of content\".\n- When ads are requested, the ad server can return an ad playlist. The SDK processes the playlist and automatically schedules the ad breaks that have been specified.\n- When initializing the `AdsManager`, an `IMAContentPlayhead` object is passed in via the `initializeWithContentPlayhead:adsRenderingSettings:` call. If you are using an AVPlayer to display your content, you pass an instance of `IMAAVPlayerContentPlayhead` to the SDK when you create your `adDisplayContainer`. This object is used to track the progress of the content playback so ad breaks are automatically inserted at the times specified in Ad Manager. \n\n **With AVPlayer:** \n\n ```objective-c\n IMAContentPlayhead *contentPlayhead =\n [[IMAAVPlayerContentPlayhead alloc] initWithAVPlayer:self.contentAVPlayer];\n IMAAdsRequest *request = [[IMAAdsRequest alloc] initWithAdTagUrl:adTagUrl\n adDisplayContainer:adDisplayContainer\n contentPlayhead:contentPlayhead\n userContext:nil];\n ```\n\n **Without AVPlayer:**\n 1. Implement the `IMAContentPlayhead` interface.\n 2. Implement `currentTime` to return the current time of your video player.\n 3. Change the `IMAAdsManager` initialization call to use `initializeWithContentPlayhead:self`.\n- The [IMAAdsManagerDelegate](/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAAdsManagerDelegate) is used to pause and resume the content as ad breaks are played.\n\n**Note:** When the content has finished playing or\nthe user has stopped playback, be sure to call `contentComplete`\non the `IMAAdsLoader` in order to signal to the SDK that the content\nhas finished playing. The SDK then plays the post-roll ad break, if one has been scheduled.\nThe `ALL_ADS_COMPLETED` event is raised when all ad breaks have\nbeen played. In addition, note that content tracking begins when\n`IMAAdsManager`'s `initializeWithContentPlayhead:adsRenderingSettings`\nmethod is called and you should always call `initializeWithContentPlayhead:adsRenderingSettings`\nbefore playing content."]]