Отслеживайте события буферизации рекламы
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
SDK для интерактивной медиарекламы (IMA) для iOS.
В этом руководстве объясняется, как предпринимать действия в зависимости от состояния буферизации рекламы.
Использование событий буфера в вашем приложении
Вы можете использовать следующие методы делегирования в IMAAdsManagerDelegate
, чтобы добавить в приложение индикатор активности, когда реклама приостанавливается для буферизации:
-
- (void)adsManagerAdDidStartBuffering(IMAAdsManager *)adsManager
: вызывается, когда воспроизведение рекламы останавливается для буферизации. -
- (void)adsManager:(IMAAdsManager *)adsManager adDidBufferToMediaTime:(NSTimeInterval)mediaTime
: Вызывается во время буферизации рекламы. Этот метод вызывается многократно, пока реклама находится в буфере. -
- (void)adsManagerAdPlaybackReady:(IMAAdsManager *)adsManager
: вызывается, когда текущая реклама достаточно буферизована, так что воспроизведение рекламы вряд ли превысит буфер.
Пример
Все дополнения основаны на расширенном образце IMA SDK (для iOS и tvOS):
@interface VideoViewController () <IMAAdsManagerDelegate,...>
...
@end
@implementation VideoViewController
...
- (void)adsManagerAdDidStartBuffering:(IMAAdsManager *)adsManager {
// Show your activity indicator above the video player - ad playback has
// stopped to buffer.
}
- (void)adsManagerAdPlaybackReady:(IMAAdsManager *)adsManager {
// Hide your activity indicator - as playback resumes.
}
Часто задаваемые вопросы
Могу ли я показывать индикатор активности перед началом воспроизведения моей рекламы?
Да, но мы рекомендуем использовать другие методы делегирования для этого случая. Вы можете отображать индикатор активности при вызове [adsManager start]
и скрывать его при перехвате события kIMAAdEvent_STARTED
в - (void)adsManager:(IMAAdsManager *)adsManager didReceiveAdEvent:(IMAAdEvent *)event
.
Если не указано иное, контент на этой странице предоставляется по лицензии Creative Commons "С указанием авторства 4.0", а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-08-29 UTC.
[null,null,["Последнее обновление: 2025-08-29 UTC."],[[["\u003cp\u003eThis guide explains how to utilize ad buffer events to implement an activity indicator in your app, enhancing user experience during ad playback.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can use the \u003ccode\u003eIMAAdsManagerDelegate\u003c/code\u003e methods to trigger actions like showing and hiding an activity indicator based on the ad's buffering state.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eadsManagerAdDidStartBuffering\u003c/code\u003e, \u003ccode\u003eadsManagerAdPlaybackReady\u003c/code\u003e, and \u003ccode\u003eadsManager:(IMAAdsManager *)adsManager adDidBufferToMediaTime:(NSTimeInterval)mediaTime\u003c/code\u003e methods provide signals for managing the activity indicator during buffering.\u003c/p\u003e\n"],["\u003cp\u003eWhile you can show an activity indicator before ad playback, using delegate methods specific to ad start events is recommended for that scenario.\u003c/p\u003e\n"]]],[],null,["# Monitor ad buffering events\n\nInteractive Media Ads (IMA) SDK for iOS.\n\nThis guide explains how to take action based on ad buffering state.\n\nUsing buffer events in your app\n-------------------------------\n\nYou can use the following delegate methods on `IMAAdsManagerDelegate` to add an\nactivity indicator to your app when ads pause to buffer:\n\n- `- (void)adsManagerAdDidStartBuffering(IMAAdsManager *)adsManager`: Called when an ad that already started playing has stopped to buffer.\n- `- (void)adsManager:(IMAAdsManager *)adsManager adDidBufferToMediaTime:(NSTimeInterval)mediaTime`: Called as an ad buffers. This method is called repeatedly as long as an ad is buffering.\n- `- (void)adsManagerAdPlaybackReady:(IMAAdsManager *)adsManager`: Called when the current ad is sufficiently buffered such that ad playback is not likely to outrun the buffer.\n\n### Example\n\nAll additions are based on the\n[IMA SDK Advanced Sample](//github.com/googleads/googleads-ima-ios/tree/master/Objective-C/AdvancedExample)\n(for both iOS and tvOS): \n\n```objective-c\n @interface VideoViewController () \u003cIMAAdsManagerDelegate,...\u003e\n\n ...\n\n @end\n\n @implementation VideoViewController\n\n ...\n\n - (void)adsManagerAdDidStartBuffering:(IMAAdsManager *)adsManager {\n // Show your activity indicator above the video player - ad playback has\n // stopped to buffer.\n }\n\n - (void)adsManagerAdPlaybackReady:(IMAAdsManager *)adsManager {\n // Hide your activity indicator - as playback resumes.\n }\n```\n\nFAQ\n---\n\n### Can I show an activity indicator before my ad starts playing?\n\nYes, but we recommend relying on different delegate methods for that\nuse case. You can show the activity indicator when you call `[adsManager start]`,\nand hide the activity indicator when you catch `kIMAAdEvent_STARTED` in\n`- (void)adsManager:(IMAAdsManager *)adsManager didReceiveAdEvent:(IMAAdEvent *)event`."]]