Wstawianie reklam z metadanymi czasu trwania bloku reklamowego

Z tego przewodnika dowiesz się, jak wstawiać przerwy na reklamę za pomocą metody metadanych czasu trwania bloku reklamowego (ATM), aby pobierać dokładny czas i czas trwania przerw na reklamę, w tym reklam przed filmem.

Aby wstawiać reklamy przed filmem i zarządzać powrotem do treści po przerwach na reklamy w trakcie filmu, zalecamy wywoływanie tych interfejsów API:

Opcjonalnie, w przypadku transmisji na żywo o dużej liczbie jednoczesnych wyświetleń zalecamy wywoływanie interfejsu API Early Ad Break Notification (EABN), aby zaplanować decyzje dotyczące reklam przed rozpoczęciem przerwy na reklamę.

Wymagania wstępne

Na początek musisz skonfigurować zdarzenie transmisji na żywo dla typu dynamicznego wstawiania reklam (DAI) Wyświetlanie bloku reklamowego przekierowanie. Wybierz jedną z tych metod:

Pobieranie strumienia treści

Gdy użytkownik wybierze wydarzenie z transmisją na żywo, aplikacja kliencka wyśle do Google Ad Managera żądanie transmisji. W odpowiedzi strumieniowej aplikacja wyodrębnia identyfikator sesji Google DAI i metadane, aby uwzględnić je w żądaniu pliku manifestu strumienia.

W tym przykładzie identyfikator sesji Google DAI jest przekazywany do manipulatora pliku manifestu:

https://MANIFEST_MANIPULATOR_URL/manifest.m3u8?DAI_stream_ID=SESSION_ID&network_code=NETWORK_CODE&DAI_custom_asset_key=CUSTOM_ASSET_KEY

Podczas przetwarzania żądania odtwarzania treści wideo zapisz identyfikator sesji DAI Google i CUSTOM_ASSET_KEY z żądania, aby przygotować się do łączenia reklam.

Pobieranie metadanych dotyczących czasu trwania bloku reklamowego

Aby pobrać czas trwania bloku reklamowego:

  1. Wygeneruj token HMAC.
  2. Wywołaj interfejs API bankomatu za pomocą tokena HMAC.

Wysyłanie prośby o metadane dotyczące czasu wyświetlania reklam przed filmem

Sprawdź ustawienia reklam przed filmem w przypadku wydarzenia na żywo, korzystając z tych opcji:

Aby pobrać wyniki decyzji dotyczącej reklamy przed filmem, wyślij żądanie do interfejsu ATM API.

Ten przykład wysyła żądanie ATM dotyczące reklam przed filmem:

curl "https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/pod.json?stream_id=SESSION_ID&ad_break_id=preroll&auth-token=your_signed_HMAC_token"

Wysyłanie prośby o metadane dotyczące czasu wyświetlania reklam w trakcie filmu

Aby pobrać metadane bloku reklamowego w przypadku reklam wstawianych w trakcie filmu, wykonaj te czynności:

  1. Przeanalizuj manifest transmisji na żywo, aby znaleźć znaczniki reklam zawierające czas i czas trwania każdej przerwy na reklamę w trakcie filmu.
  2. Wywołaj punkt końcowy interfejsu ATM API, aby poprosić o dokładny czas trwania bloku reklamowego i planszy. Interfejs API zwraca obiekt JSON z wynikami decyzji dotyczących bloku reklamowego.

Ten przykład wysyła żądanie ATM dotyczące reklam w trakcie filmu:

curl "https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/pod.json?stream_id=SESSION_ID&ad_break_id=AD_BREAK_ID&pd=AD_BREAK_DURATION&auth-token=your_signed_HMAC_token"

Jeśli operacja się powiedzie, zobaczysz dane wyjściowe podobne do tego obiektu JSON:

{
  "status": "final",
  "ads": [
    {
      "duration_ms": 5046,
      "variants": {
        "devrel1428000": {
          "segment_extension": "ts",
          "segment_durations": {
            "timescale": 1000,
            "values": [
              5045
            ]
          }
        },
        "devrel1928000": {
          "segment_extension": "ts",
          "segment_durations": {
            "timescale": 1000,
            "values": [
              5045
            ]
          }
        }
      }
    }
  ],
  "slate": {
    "duration_ms": 0,
    "variants": {
      "devrel1428000": {
        "segment_extension": "ts",
        "segment_durations": {
          "timescale": 1000,
          "values": [
            5005,
            ...
            5046
          ]
        }
      },
      "devrel1928000": {
        "segment_extension": "ts",
        "segment_durations": {
          "timescale": 1000,
          "values": [
            5005,
            ...
            5046
          ]
        }
      }
    }
  }
}

Wstawianie reklam do manifestu treści

W sekcjach poniżej znajdziesz instrukcje modyfikowania manifestu transmisji na żywo i dodawania segmentów reklam.

Określanie segmentów przerw na reklamy i wstawianie nieciągłości

Podczas przetwarzania każdego pliku manifestu odmiany zidentyfikuj w strumieniu tagi EXT-X-CUE-INEXT-X-CUE-OUT, które wskazują początek i koniec bloku reklamowego.

Zastąp tagi EXT-X-CUE-INEXT-X-CUE-OUT elementami EXT-X-DISCONTINUITY, aby odtwarzacz wideo klienta mógł przełączać się między treściami a reklamami.

W przykładzie poniżej plik manifestu zastępuje tagi EXT-X-CUE-INEXT-X-CUE-OUT:

#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0

#EXTINF:5.000,
contentorigin.com/1.ts
#EXTINF:5.000,
contentorigin.com/2.ts
#EXT-X-CUE-OUT:15.000
#EXTINF:5.000,
contentorigin.com/3.ts
#EXTINF:5.000,
contentorigin.com/4.ts
#EXTINF:5.000,
contentorigin.com/5.ts
#EXT-X-CUE-IN
#EXTINF:5.000,
contentorigin.com/6.ts
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4

Poniższy przykład przedstawia zastąpiony plik manifestu:

#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0

#EXTINF:5.000,
contentorigin.com/1.ts
#EXTINF:5.000,
contentorigin.com/2.ts
#EXTINF:5.000,
#EXT-X-DISCONTINUITY
{... Insert ad segments here ...}
#EXT-X-DISCONTINUITY
#EXTINF:5.000,
contentorigin.com/6.mp4
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4

Segmenty reklam DAI w Google nie są szyfrowane. Jeśli Twoje treści są zaszyfrowane, usuń szyfrowanie, wstawiając element EXT-X-KEY:METHOD=NONE przed pierwszym segmentem reklamy w każdej przerwie na reklamę. Po zakończeniu przerwy na reklamę dodaj ponownie szyfrowanie, wstawiając odpowiedni tag EXT-X-KEY.

Śledź czas rozpoczęcia, czas trwania i indeks nadchodzącej przerwy na reklamę.

Tworzenie adresów URL segmentów reklam

Zastąp segmenty treści między tagami EXT-X-DISCONTINUITY adresami URL w przypadku każdego segmentu reklamy. Aby określić, ile segmentów reklam wstawić, użyj wartości ads.segment_durations.values podanej w odpowiedzi JSON z interfejsu ATM API.

Aby wcześniej zakończyć blok reklamowy po wykryciu tagu EXT-X-CUE-IN, dodaj parametr d= do adresu URL ostatniego segmentu reklamy. Ten parametr skraca segment, aby nie wpływać na oś czasu odtwarzacza wideo klienta.

W tym przykładzie do manifestu dodawany jest adres URL segmentu reklamy przed filmem. Uwaga: segmenty reklam używają indeksu opartego na zerze:

https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/preroll/ad/0/profile/ENCODING_PROFILE/0.ts?stream_id=SESSION_ID

W przykładzie poniżej pokazujemy, jak dodać do manifestu adres URL segmentu reklamy w trakcie filmu:

https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/0.ts?stream_id=SESSION_ID

Poniższy przykład pokazuje, jak wstawić segmenty reklam do pliku manifestu:

#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0

#EXTINF:5.00,
contentorigin.com/1.ts
#EXTINF:5.00,
contentorigin.com/2.ts
#EXT-X-DISCONTINUITY
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/0.ts?stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/1.ts?stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/2.ts?stream_id=SESSION_ID
#EXT-X-DISCONTINUITY
#EXTINF:5.00,
contentorigin.com/6.mp4
#EXTINF:5.00,
contentorigin.com/7.mp4
#EXTINF:5.00,
contentorigin.com/8.mp4

Tworzenie segmentów planszy

Aby wypełnić lukę między reklamą a treścią, wstaw segmenty planszy. Użyj tablicy slates.segment_durations.values z odpowiedzi JSON interfejsu ATM API, aby określić czas trwania każdego segmentu planszy. W razie potrzeby powtarzaj sekwencję czasów trwania segmentów, aby wypełnić całą przerwę na reklamę.

W przykładzie poniżej pokazujemy, jak utworzyć segment planszy:

https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/slate/0/profile/ENCODING_PROFILE/0.ts?stream_id=SESSION_ID

Symbol slate/0 w przykładzie oznacza numer iteracji planszy. Sprawdź zgodność i możliwości buforowania odtwarzacza wideo klienta, aby określić, czy zacząć od 0 i zwiększać tę liczbę w przypadku każdej pętli planszy, czy pozostawić ją na poziomie 0 we wszystkich iteracjach.

Zarządzanie powrotem do treści

Po wstawieniu wszystkich segmentów z bloku reklamowego wybierz jedną z tych metod, aby wrócić do strumienia treści:

Metoda Opis Wpływ na odtwarzacz wideo klienta
Wypełnij segmentami planszy Wstawia segmenty planszy i zapętla planszę. Wypełnia czas trwania i wstawia elementy EXT-X-DISCONTINUITY między poszczególnymi iteracjami planszy. Brak efektów.
Odtwarzacz wideo wraca do treści bez zmienionej osi czasu.
Ponowne wyrównanie z użyciem pojedynczego segmentu planszy Wstawia pojedynczy segment planszy. Używa parametru d=, aby wypełnić czas do rozpoczęcia treści. Brak efektów.
Odtwarzacz wideo wraca do treści bez zmienionej osi czasu.
Natychmiastowy zwrot wstawiać segmenty treści, Oś czasu odtwarzacza wideo zostanie zmieniona.
Odtwarzacz wideo klienta musi obsługiwać zmienioną oś czasu.

Opcjonalnie: zaplanuj przerwę na reklamę

Aby zwiększyć współczynnik wypełnienia, wyślij powiadomienie o wczesnej przerwie na reklamę (EABN) z czasem trwania bloku reklamowego, parametrami kierowania niestandardowego i danymi sygnału SCTE-35. Więcej informacji znajdziesz w artykule Wysyłanie powiadomień o wcześniejszej przerwie na reklamy.