Untuk mendiskusikan dan memberikan masukan tentang produk kami, bergabunglah ke channel Discord Ad Manager resmi di server Komunitas Iklan dan Pengukuran Google.
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Mode operasi SDK
SDK dapat beroperasi dalam satu atau beberapa mode, bergantung pada respons iklan yang diterimanya dari iklan
server tertentu.
Iklan tunggal
Iklan yang dapat diputar kapan saja ketika start
pesan dikirim ke IMAAdsManager. Tidak ada inisialisasi khusus
untuk memutar satu iklan.
Pod iklan
Beberapa iklan yang diputar secara beruntun saat pesan start dikirim ke
IMAAdsManager. Tidak diperlukan inisialisasi khusus untuk
memainkan satu pod iklan.
Aturan iklan
Playlist jeda iklan yang dijadwalkan pada waktu tertentu terhadap
saat ini. Pesan start diabaikan dalam mode aturan iklan. Ada dapat
ada beberapa jeda iklan yang dijadwalkan dalam satu playlist (misalnya, pre-roll,
mid-roll, post-roll). Untuk detail penerapan lebih lanjut, lihat
Aturan Iklan di bawah.
Aturan iklan
IMA
SDK tvOS mendukung playlist iklan yang sepenuhnya otomatis. Fitur ini
menyisipkan jeda iklan ke dalam konten seperti yang ditentukan dalam
Google Ad Manager
saat memproses iklan. Hal ini juga sangat menyederhanakan kode pemutar video
untuk mendukung jeda iklan, termasuk pre-roll, mid-roll, dan post-roll.
Saat memproses iklan di Ad Manager, Anda dapat menentukan berbagai aturan iklan
seperti "selalu putar jeda iklan di awal konten" atau "putar jeda iklan satu menit
setiap 30 menit konten".
Saat iklan diminta, server iklan dapat menampilkan playlist iklan. SDK
memproses playlist dan secara otomatis menjadwalkan
jeda iklan yang telah
yang ditentukan.
Saat melakukan inisialisasi AdsManager, IMAContentPlayhead
objek diteruskan melalui initializeWithContentPlayhead:adsRenderingSettings:
panggilan telepon. Jika Anda menggunakan AVPlayer untuk menampilkan konten, Anda meneruskan
instance IMAAVPlayerContentPlayhead ke SDK saat Anda membuat
adDisplayContainer. Objek ini digunakan untuk melacak kemajuan
pemutaran konten sehingga
jeda iklan akan otomatis disisipkan pada waktu yang ditentukan dalam Ad Manager.
Terapkan currentTime untuk menampilkan waktu saat ini dari
pemutar video.
Ubah panggilan inisialisasi IMAAdsManager menjadi
gunakan initializeWithContentPlayhead:self.
IMAAdsManagerDelegate
digunakan untuk menjeda dan melanjutkan konten saat jeda iklan diputar.
Catatan: Saat konten telah selesai diputar atau
pengguna telah menghentikan pemutaran, pastikan untuk memanggil contentComplete
di IMAAdsLoader untuk memberi tahu SDK bahwa konten
yang telah selesai diputar. Kemudian, SDK akan memutar jeda iklan post-roll, jika sudah dijadwalkan.
Peristiwa ALL_ADS_COMPLETED dipicu saat semua jeda iklan memiliki
yang pernah dimainkan. Selain itu, perhatikan bahwa pelacakan konten dimulai saat
initializeWithContentPlayhead:adsRenderingSettings milik IMAAdsManager
metode dipanggil dan Anda harus selalu memanggil initializeWithContentPlayhead:adsRenderingSettings
sebelum memutar konten.
[null,null,["Terakhir diperbarui pada 2025-08-31 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,["# Automate ad playlists\n\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-------------------\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--------\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."]]