تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
أوضاع تشغيل حِزم تطوير البرامج (SDK)
يمكن أن تعمل حزمة SDK في وضع واحد أو أكثر، اعتمادًا على استجابة الإعلان التي تتلقّاها من الإعلان.
الخادم.
إعلان واحد
إعلان يمكن تشغيله في أي وقت عند استخدام start
إلى IMAAdsManager. بدون إعداد خاص
ضروريًا لتشغيل إعلان واحد.
مجموعة الإعلانات المتسلسلة
العديد من الإعلانات التي يتم تشغيلها مرة أخرى عند إرسال رسالة start إلى
IMAAdsManager. لا يلزم إجراء تهيئة خاصة
تشغيل مجموعة إعلانات متسلسلة واحدة
قواعد الإعلانات
قائمة تشغيل تضم فواصل إعلانية تمت جدولتها في أوقات معيّنة مقابل
المحتوى. يتم تجاهل رسالة start في وضع قواعد الإعلانات. هناك
عبارة عن عدة فواصل إعلانية مجدولة ضمن قائمة تشغيل واحدة (على سبيل المثال، إعلان ما قبل التشغيل،
إعلان أثناء التشغيل أو ما بعد التشغيل). لمزيد من التفاصيل حول عملية التنفيذ، يمكنك الاطّلاع على
قسم قواعد الإعلان أدناه.
قواعد الإعلانات
IMA
تتوافق حزمة tvOS SDK مع قوائم تشغيل الإعلانات المبرمَجة بالكامل. هذه الميزة
يعمل على إدراج فواصل إعلانية في المحتوى كما هو محدَّد في
مدير إعلانات Google
عند عرض الإعلانات كما أنه يبسط بشكل كبير رمز مشغّل الفيديو
اللازمة لدعم الفواصل الإعلانية، بما في ذلك إعلانات ما قبل التشغيل وأثناء التشغيل وما بعد التشغيل.
عند عرض الإعلانات في "مدير الإعلانات"، من الممكن تحديد قواعد إعلان مختلفة
مثل "تشغيل الفواصل الإعلانية دائمًا في بداية المحتوى" أو "تشغيل فاصل إعلاني لمدة دقيقة واحدة
كل 30 دقيقة من المحتوى".
عند طلب الإعلانات، يمكن لخادم الإعلانات عرض قائمة تشغيل تضم إعلانات. حزمة SDK
تعالج قائمة التشغيل وتحدد تلقائيًا الفواصل الإعلانية التي تم حذفها
المحددة.
عند إعداد AdsManager، تُستخدم علامة IMAContentPlayhead
يتم تمرير كائن عبر initializeWithContentPlayhead:adsRenderingSettings:
الاتصال. إذا كنت تستخدم AVPlayer لعرض المحتوى،
مثيلاً من IMAAVPlayerContentPlayhead في حزمة تطوير البرامج (SDK) عند إنشاء
adDisplayContainer ويُستخدم هذا الكائن لتتبع تقدم تشغيل المحتوى حتى
يتم إدراج الفواصل تلقائيًا في الأوقات المحدّدة في "مدير إعلانات Google".
تنفيذ currentTime لعرض الوقت الحالي من
مشغّل الفيديو.
تغيير طلب إعداد IMAAdsManager إلى
استخدام initializeWithContentPlayhead:self.
IMAAdsManagerDelegate
تُستخدم لإيقاف المحتوى مؤقتًا واستئناف تشغيله أثناء تشغيل الفواصل الإعلانية.
ملاحظة: عند انتهاء تشغيل المحتوى أو
توقف المستخدم عن التشغيل، احرص على الاتصال بـ contentComplete
على IMAAdsLoader لإرسال إشارة إلى حزمة تطوير البرامج (SDK) بأنّ المحتوى
انتهى التشغيل. بعد ذلك، تعرِض حزمة تطوير البرامج (SDK) فاصل الإعلانات بعد التشغيل، في حال تمّت جدولة أحد الفواصل الإعلانية.
يزيد الحدث "ALL_ADS_COMPLETED" عند ضبط قيمة كل الفواصل الإعلانية.
التي تم لعبها. بالإضافة إلى ذلك، لاحظ أن تتبع المحتوى يبدأ عند
جهاز initializeWithContentPlayhead:adsRenderingSettings الخاص بـ "IMAAdsManager"
وينبغي عليك دائمًا استدعاء الدالة initializeWithContentPlayhead:adsRenderingSettings
قبل تشغيل المحتوى.
تاريخ التعديل الأخير: 2025-08-31 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-08-31 (حسب التوقيت العالمي المتفَّق عليه)"],[[["\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."]]