Реализация на стороне клиента подразумевает, что видеопоток и объявления запрашиваются отдельно. В отличие от нее, при реализации на стороне сервера с динамической вставкой запрашивается только видеопоток, а объявления динамически вставляются в контент. В случае ошибки сервера видеопоток может быть заблокирован. Это причиняет не только неудобства пользователям, но и убытки издателям.
Алгоритмы динамической вставки в Менеджере рекламы сообщают коды ошибок HTTP, возникающих в процессе создания и передачи видеопотока, и позволяют указать резервный поток на случай ошибки в ответе сервера.
Обработка ошибок HTTP, обнаруженных при создании потока
Тип ошибки | Рекомендация |
---|---|
Ошибки 4xx (включая 429) |
В случае возникновения ошибок HTTP 4xx не следует задействовать необработанные потоки, поскольку сбой с наибольшей вероятностью произошел на уровне клиента. Убедитесь, что в запросе, который отправляется на сервер, нет ошибок и указаны все необходимые параметры. |
Ошибки 429 или 5xx | При возникновении ошибок HTTP 429 или HTTP 5xx следует задействовать необработанный резервный поток без рекламы. IMA SDK позволяет выявлять эти ошибки с помощью обработчика, а вы можете переключиться с потока по умолчанию на резервный. |
TVOS
static NSString *const kBackupContentPath =
@"http://googleimadev‑vh.akamaihd.net/i/big_buck_bunny/bbb‑,480p,720p,1080p,.mov.csmil/"
@"master.m3u8";
- (void)streamManager:(IMAStreamManager *)streamManager
didReceiveError:(NSError *)error {
NSLog(@"Error: %@", error);
[self playBackupStream];
}
- (void)playBackupStream {
NSURL *contentURL = [NSURL URLWithString:kBackupContentPath];
self.playerViewController.player = [[AVPlayer alloc] initWithURL:contentURL];
[self.playerViewController.player play];
}
URL резервного потока для видео по запросу или прямой трансляции
В вашем приложении должен быть предусмотрен алгоритм получения URL резервного потока для видео по запросу и линейных прямых трансляций. В первом случае для резервного потока используется ingestURL, который указывается в фиде MRSS. Для линейной трансляции в качестве резервного следует использовать поток контента, указанный в интерфейсе Менеджера рекламы.
Обработка ошибок HTTP при передаче потока
Если ошибка возникла при передаче потока, рекомендуется задействовать необработанный поток. В Менеджере рекламы реализовано автоматическое исправление ошибок. Однако если сервер не может обработать ошибку, то воспроизведение потока прекращается. В таких случаях приложение должно запускать новый поток. Если ошибку устранить не удается, нужно задействовать необработанный поток.
Как проверить резервную реализацию
Для проверки резервной реализации можно использовать следующие образцы потоков:
Формат потока | Ключ объекта |
---|---|
HLS | MSQJlB9VSgqJkGNv1mB0FA |
DASH | TrhaCde0R_uKzG_psucTww |
Эти потоки предназначены для выполнения проверок и будут всегда возвращать ошибку HTTP 429.
Автоматическое переключение линейных потоков при динамической вставке объявлений
Если наша система окажется перегруженной (это бывает редко), для некоторых пользователей может быть выполнено переключение на поток без рекламы. В таком случае пользователь увидит основной контент.
Если резервную трансляцию передать невозможно (например, когда требуется аутентификация либо переадресация к источнику или для трансляции запрашивается исключение ее варианта), будет показан код ответа HTTP 429. В этом случае приложение должно самостоятельно начать показ основного контента на устройстве пользователя.