W przeciwieństwie do implementacji wideo po stronie klienta, gdzie żądania strumienia wideo i reklam są wysyłane niezależnie od siebie, implementacja po stronie serwera z wykorzystaniem dynamicznego wstawiania reklam (DAI) żąda tylko 1 strumienia, a reklamy są dynamicznie dołączane do treści wideo. Jeśli wystąpi błąd serwera, strumień może zostać zablokowany, co nie tylko negatywnie wpływa na wygodę użytkowników, ale też oznacza utratę przychodów.
Funkcja DAI w usłudze Ad Manager umożliwia wykrywanie błędów HTTP przy tworzeniu strumienia i w czasie transmisji. Pozwala też skonfigurować strumień zapasowy, na wypadek gdyby serwer nie zwrócił prawidłowej odpowiedzi.
Postępowanie w przypadku błędów HTTP wykrytych podczas tworzenia strumienia
Typ błędu | Rekomendacja |
---|---|
Błędy 4XX (oprócz 429) |
Jeśli pojawią się błędy HTTP 4XX, nie korzystaj z surowych strumieni, bo w takich przypadkach błędy wystąpiły prawdopodobnie po stronie klienta. Upewnij się, że żądanie, które wysyłasz do serwera, jest poprawne i zawiera wszystkie wymagane parametry. |
Błąd 429 lub błędy 5XX | Jeśli pojawią się błędy HTTP 429 lub HTTP 5XX, skorzystaj z surowego strumienia zapasowego, bez zarabiania. W pakiecie IMA SDK moduł obsługi błędów może rozpoznać te błędy i przełączyć strumień domyślny na strumień zapasowy. |
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];
}
Uzyskiwanie adresu URL strumienia zapasowego w przypadku transmisji wideo na żądanie (VOD) i transmisji na żywo
Twoja aplikacja powinna być wyposażona w mechanizm uzyskiwania zapasowego adresu URL na potrzeby VOD i linearnych transmisji na żywo. W przypadku VOD jako strumienia zapasowego użyj parametru ingestURL określonego w kanale MRSS. W linearnej transmisji na żywo strumieniem zapasowym powinien być strumień treści określony w interfejsie Ad Managera.
Postępowanie w przypadku błędów HTTP w trakcie transmisji
Jeśli błąd wystąpi podczas transmisji, nie zalecamy korzystania z surowego strumienia. Ad Manager automatycznie próbuje naprawić większość napotkanych błędów. Jeśli jednak serwer nie jest w stanie rozwiązać problemu, odtwarzanie strumienia zostaje przerwane. Po zatrzymaniu strumienia aplikacja powinna zainicjować nowy strumień. Jeśli błąd będzie się powtarzać, użyj surowego strumienia.
Sprawdzanie poprawności implementacji kreacji zastępczej
Implementację kreacji zastępczej możesz zweryfikować za pomocą tych przykładowych strumieni:
Format strumienia | Klucz pliku |
---|---|
HLS | MSQJlB9VSgqJkGNv1mB0FA |
DASH | TrhaCde0R_uKzG_psucTww |
Strumienie mają charakter testowy i zawsze zwracają błąd HTTP 429.
Automatyczne przełączanie awaryjne strumieni linearnej transmisji z funkcją DAI
W rzadkich sytuacjach, gdy następuje nieoczekiwane zwiększenie liczby wyświetleń w naszym systemie, możemy u niektórych użytkowników użyć strumienia bez reklam. Jeśli tak się stanie, widz zobaczy emitowaną treść.
W sytuacji, gdy nie można użyć strumieni zastępczych (ponieważ określono uwierzytelnianie lub przekazywanie źródła albo w przypadku danego strumienia wykluczono korzystanie z danej wersji), zostanie wyświetlony kod odpowiedzi HTTP 429, a aplikacja powinna wrócić lokalnie do transmisji surowego strumienia.