Śledzenie filmów YouTube w GA4 działa na dwa sposoby. Pomiary zaawansowane wysyłają video_start, video_progress (przy 10%, 25%, 50% i 75%) oraz video_complete dla osadzonych odtwarzaczy YouTube z włączonym JavaScript API. Reguła Film w YouTube (YouTube Video) w Google Tag Managerze daje Ci te same sygnały z Twoimi progami, Twoimi nazwami zdarzeń i poprawką dla osadzeń, które API nie mają.
Jeśli filmy siedzą w zwykłym iframe ładowanym razem ze stroną, pomiary zaawansowane mogą wystarczyć. Jeśli ładują się później, chowają się za banerem cookies albo za miniaturą "kliknij, żeby odtworzyć", po cichu nie zaraportują niczego. A "nic" wygląda dokładnie tak samo jak "nikt nie oglądał".
- Pomiary zaawansowane śledzą tylko osadzenia YouTube z obsługą JS API, czyli z
enablejsapi=1w adresie iframe. Kreatory stron domyślnie tego nie dodają. - Reguła Film w YouTube w GTM potrafi dodać ten parametr za Ciebie. Działa tylko wtedy, gdy w chwili ładowania GTM na stronie jest film YouTube albo skrypt IFrame API.
- Fasady "kliknij, żeby odtworzyć" i placeholdery z CMP tworzą iframe później. Właśnie tam obie metody gubią odtworzenia.
video_startivideo_progressto zarezerwowane nazwy zdarzeń GA4. W GTM wybierz własne nazwy i wyłącz przełącznik w pomiarach zaawansowanych, żeby nie liczyć podwójnie.youtube-nocookie.comogranicza cookies przed odtworzeniem. Nie sprawia, że osadzenie przestaje wymagać zgody.
Co GA4 śledzi samo
Pomiary zaawansowane znajdziesz w Administracja > Strumienie danych > Twój strumień internetowy > Pomiary zaawansowane. Przełącznik Zaangażowanie w filmy wysyła trzy zdarzenia:
video_start, gdy zaczyna się odtwarzanievideo_progress, gdy film przekroczy 10%, 25%, 50% i 75% długościvideo_complete, gdy się skończy
Każde niesie video_current_time, video_duration, video_percent, video_provider, video_title, video_url i visible. Dostawca filmu, Tytuł filmu i URL filmu są w GA4 gotowymi wymiarami. Reszta wymaga definicji niestandardowych, o tym niżej.
Haczyk to jedno zdanie w dokumentacji Google: te zdarzenia uruchamiają się "dla osadzonych filmów YouTube z włączoną obsługą JS API". Po ludzku: src iframe musi zawierać enablejsapi=1.
Standardowy kod z menu YouTube Udostępnij > Umieść go nie zawiera. WordPress oEmbed go nie dodaje. Większość kreatorów stron też nie.
Czyli domyślny scenariusz na typowej stronie wygląda tak: przełącznik włączony, śledzenie wyłączone.
Pomiary zaawansowane a reguła Film w YouTube w GTM
| Pomiary zaawansowane | Reguła Film w YouTube w GTM | |
|---|---|---|
| Konfiguracja | Jeden przełącznik | Reguła + tag, 30-45 minut |
Wymaga enablejsapi=1 |
Tak, dodajesz sam | Może dodać za Ciebie (pole wyboru) |
| Progi postępu | Stałe: 10, 25, 50, 75% | Twój wybór: procenty albo sekundy |
| Pauza, przewijanie, buforowanie | Nie | Tak, opcjonalnie |
| Nazwy zdarzeń | video_start, video_progress, video_complete |
Własne, np. yt_start |
| Filmy dodane po załadowaniu strony | Zawodne | Działa, jeśli film albo IFrame API są na stronie przy ładowaniu GTM |
| Wybór filmów do śledzenia | Nie | Tak, Niektóre filmy z warunkami |
| Historia zmian | Brak | Wersje kontenera |
Moje zdanie: na blogu z dwoma osadzonymi wystąpieniami wystarczy przełącznik plus enablejsapi=1. Na platformie kursowej, stronie produktu z filmami demo albo wszędzie tam, gdzie obejrzenie to sygnał leada, buduję to w GTM.
Dlaczego liczby zniknęły: historia z fasadą
Ola prowadzi marketing szkoły językowej w Gdańsku. Każda strona kursu ma 90-sekundowy film zapowiadający, w sumie 18 stron.
Zeszłej wiosny strona przeszła na nowy motyw, a zdarzenia video_start w GA4 spadły z około 600 miesięcznie do zera. Zespół uznał, że nowe filmy są gorsze. Przez dwa tygodnie kręcili jeden z nich od nowa.
YouTube Studio mówiło co innego. Raport miejsc odtwarzania (umieszczone na zewnętrznych stronach) pokazywał przez te same trzy miesiące mniej więcej 2300 wyświetleń, bez spadku.
Nowy motyw używał fasady "kliknij, żeby odtworzyć": statycznej miniatury z przyciskiem play. Dopóki nikt nie kliknie, iframe nie istnieje.
Kiedy ktoś kliknie, motyw wstrzykuje iframe z autoplay=1 i bez enablejsapi. Pomiary zaawansowane nigdy nie miały odtwarzacza, z którym mogłyby rozmawiać. Reguła w GTM też by nie pomogła, bo w chwili ładowania GTM na stronie nie było ani filmu, ani skryptu IFrame API.
Poprawka zajęła godzinę. Wyłączyłem w motywie opcję "ładuj film po kliknięciu", więc strony używają zwykłego iframe z loading="lazy", i zaznaczyłem w regule GTM pole obsługi API.
CMP Oli i tak przeładowuje stronę po udzieleniu zgody, więc iframe jest na miejscu, kiedy GTM się ładuje. Na tych 18 stronach oddała trochę szybkości ładowania. Dla niej warto.
W kolejnym miesiącu GA4 pokazało 2140 zdarzeń yt_start wobec około 2280 wyświetleń z osadzeń w YouTube Studio. Wystarczająco blisko. Nowe nagranie nie było potrzebne.
Jak skonfigurować śledzenie filmów YouTube w GA4 przez GTM
Krok 1: Włącz wbudowane zmienne filmów
Zmienne > Zmienne wbudowane > Konfiguruj i zaznacz wszystko w sekcji Filmy: Video Current Time, Video Duration, Video Percent, Video Provider, Video Status, Video Title, Video URL, Video Visible. Czytają klucze w rodzaju gtm.videoPercent, które wypycha reguła. Bez reguły są puste. (Dlaczego, wyjaśniam w poradniku o zmiennych GTM.)
Krok 2: Utwórz regułę Film w YouTube
Reguły > Nowa > Konfiguracja reguły > Film w YouTube. Potem:
-
Przechwytuj: zaznacz Rozpoczęcie, Zakończenie i Postęp. "Wstrzymanie, przewijanie i buforowanie" zostaw wyłączone, chyba że ktoś naprawdę będzie te dane czytał. Robią szum.
-
Postęp: wybierz Procenty i wpisz
10, 25, 50, 75, 90. Dodaję 90, bo sporo osób zamyka film na ekranie końcowym i nigdy nie wywołuje Zakończenia. -
Zaawansowane: zaznacz Dodaj obsługę JavaScript API do wszystkich filmów w YouTube. GTM dopisuje
enablejsapi=1do adresu odtwarzacza. Google ostrzega, że film, który już gra w chwili ładowania GTM, zostanie przeładowany, więc uważaj na filmy w tle z autoodtwarzaniem. -
Włącz tę regułę w momencie: domyślnie Wczytanie okna. Notatki do wydania Google z marca 2019 zalecają dla reguł YouTube DOM Ready, a wskazówka na stronie pomocy (ewidentnie skopiowana z reguły przewijania) mówi Wczytanie okna. Ja używam DOM Ready.
-
Ta reguła uruchamia się przy: Wszystkie filmy albo Niektóre filmy z warunkiem, np. Video URL zawiera identyfikatory filmów z Twojego kanału.
Jeden szczegół z dokumentacji, który warto znać: progi uruchamiają się tylko za pierwszym razem. Jeśli ktoś przeciągnie pasek z 5% na 80%, zdarzenia 10, 25, 50 i 75% się nie uruchomią.
Krok 3: Utwórz tag zdarzenia GA4
Tagi > Nowy > Google Analytics: zdarzenie GA4. Nazwa zdarzenia: yt_{{Video Status}}. Video Status zawiera akcję, która uruchomiła regułę, więc dostajesz yt_start, yt_progress i yt_complete. Zanim zbudujesz na tym raporty, sprawdź dokładne wartości w podglądzie.
Parametry:
video_title={{Video Title}}video_url={{Video URL}}video_percent={{Video Percent}}video_current_time={{Video Current Time}}video_duration={{Video Duration}}video_provider={{Video Provider}}visible={{Video Visible}}
Celowo używam nazw parametrów Google, żeby wbudowane wymiary Tytuł filmu i URL filmu mogły je podchwycić. Zanim temu zaufasz, potwierdź to w Eksploracji.
Dlaczego nie nazwać zdarzenia po prostu video_start? Bo zasady nazewnictwa zdarzeń Google wymieniają video_start i video_progress jako nazwy zarezerwowane dla strumieni internetowych. Jeśli czytałeś mój tekst o śledzeniu kliknięć w linki w GA4 przez GTM, to ta sama lekcja co z click.
Krok 4: Wyłącz przełącznik w pomiarach zaawansowanych
Jeśli śledzenie filmów należy do GTM, wyłącz Zaangażowanie w filmy w pomiarach zaawansowanych. Inaczej to samo odtworzenie pojawi się dwa razy, jako video_start i jako yt_start.
Duplikaty: raport, który pokazywał więcej startów niż odwiedzających
Sebastian pracuje u producenta pomp przemysłowych w Bielsku-Białej. Strony produktów mają 3-minutowe filmy demo, a sprzedaż chciała wiedzieć, kto je ogląda. Agencja ustawiła regułę w GTM. Przełącznika w pomiarach zaawansowanych nikt nie ruszył.
Trzy miesiące później raport Sebastiana w Looker Studio pokazywał 1412 startów filmów miesięcznie na stronach produktów, które miały 690 sesji. Filtr brzmiał "nazwa zdarzenia zawiera start". Sumował video_start z pomiarów zaawansowanych i yt_start z GTM.
Do tego każda strona produktu miała na górze wyciszony klip w tle z autoodtwarzaniem. Liczył się jako start przy każdym odwiedzającym, a pole obsługi API w GTM go przeładowywało, co dawało drugi start.
Poprawka: przełącznik wyłączony, klip w tle wykluczony warunkiem Niektóre filmy na jego Video URL, a filtr w raporcie zmieniony na dokładną nazwę zdarzenia. Starty spadły do 655 miesięcznie. Mniej, ale wreszcie wiarygodnie.
Powiem wprost: jeśli startów filmów masz więcej niż sesji na tych samych stronach, nie świętuj. Coś strzela dwa razy.
Kiedy śledzenie zawodzi i problem zgód w UE
Najczęstsze awarie, które widzę, w jednym miejscu:
| Objaw | Prawdopodobna przyczyna | Poprawka |
|---|---|---|
| Zero zdarzeń wideo, od zawsze | Brak enablejsapi=1 w iframe |
Zaznacz pole API w regule GTM albo dodaj parametr w kodzie osadzenia |
| Zero zdarzeń na stronach z miniaturami | Fasada tworzy iframe za późno | Wyłącz fasadę albo wstrzykuj iframe z enablejsapi=1 i użyj własnego nasłuchu IFrame API |
| Zdarzenia dopiero po przeładowaniu | CMP blokuje iframe i wstrzykuje go po zgodzie | Przeładuj stronę po zgodzie albo użyj własnego nasłuchu IFrame API |
| Starty bez postępu | Transmisja na żywo albo widzowie wychodzą w pierwszych sekundach | Transmisje na żywo nie mają stałej długości, więc procenty nic nie znaczą. Sprawdź Video Duration w podglądzie |
| Podwójne starty | Włączone i przełącznik, i GTM | Wybierz jednego właściciela |
Teraz zgody, bo w UE to waży więcej niż samo śledzenie.
Osadzony YouTube nie jest neutralny. W chwili, gdy iframe się ładuje, przeglądarka odwiedzającego łączy się z serwerami Google.
Dlatego większość CMP, łącznie z Cookiebotem i podobnymi narzędziami, blokuje iframe YouTube, dopóki odwiedzający nie zaakceptuje kategorii marketingowej albo mediów zewnętrznych. Podmieniają iframe na placeholder i wstrzykują prawdziwy po zgodzie. Dla śledzenia to ten sam problem co z fasadą: iframe pojawia się, gdy GTM już się załadował.
A co z youtube-nocookie.com? YouTube nazywa to trybem prywatności rozszerzonej. Ogranicza cookies przed odtworzeniem i to dobrze. Nie sprawia jednak, że osadzenie przestaje wymagać zgody. Przeglądarka i tak łączy się z Google przy ładowaniu strony, a po odtworzeniu filmu YouTube może zapisać dane w przeglądarce. W CMP traktuję osadzenia nocookie dokładnie tak jak zwykłe. Czy Twoja reguła wyłapuje osadzenia nocookie, sprawdź w podglądzie na własnej stronie, zamiast zakładać.
Strona GA4 to osobna sprawa. Twoje zdarzenia yt_ nadal respektują Consent Mode. Przy analytics_storage ustawionym na denied tryb podstawowy nie wysyła nic, a tryb zaawansowany wysyła pingi bez cookies. Różnicę opisuje mój poradnik o Consent Mode v2.
Testowanie i rejestrowanie parametrów
Otwórz podgląd i odtwórz film. Na liście zdarzeń w Tag Assistancie zobaczysz zdarzenia YouTube Video (w warstwie danych gtm.video). Sprawdź trzy: start, jeden próg postępu, zakończenie.
W zakładce Zmienne Video Status, Video Percent i Video Title powinny być wypełnione. Pusty Video Title zwykle oznacza, że API jeszcze nie jest podłączone.
Potem w GA4 Administracja > DebugView. Twoje yt_start powinno dotrzeć ze wszystkimi siedmioma parametrami. Jeśli jest w podglądzie, a nie ma go w DebugView, pierwszym podejrzanym są zgody. Poradnik o trybie debugowania GA4 przechodzi przez pozostałe typowe przyczyny.
Na koniec zarejestruj to, na czym będziesz raportować. Administracja > Wyświetlanie danych > Definicje niestandardowe:
video_percentjako wymiar niestandardowy o zakresie zdarzenia, żeby zbudować tabelę odpadania 10/25/50/75/90video_durationivideo_current_timejako dane niestandardowe z jednostką Sekundy, jeśli chcesz średni czas oglądania- Nic więcej, dopóki ktoś nie poprosi. Standardowa usługa ma 50 wymiarów niestandardowych o zakresie zdarzenia i one się kończą.
Dane pojawiają się od momentu rejestracji. Nie wstecz.
Najczęstsze pytania
Czy GA4 śledzi filmy YouTube automatycznie?
Tylko jeśli w pomiarach zaawansowanych włączone jest Zaangażowanie w filmy, a osadzenie ma obsługę JS API, czyli enablejsapi=1 w adresie iframe. Wtedy GA4 wysyła video_start, video_progress przy 10/25/50/75% i video_complete. Bez tego parametru nic nie jest śledzone.
Dlaczego video_start nie pokazuje się w GA4?
Trzy typowe przyczyny: brak enablejsapi=1 w osadzeniu, iframe tworzony po załadowaniu strony (fasady, placeholdery CMP) albo zgody blokujące tag GA4. Najpierw sprawdź src iframe, potem podgląd, potem zgody.
Czy da się śledzić filmy YouTube ładowane po załadowaniu strony? Przez GTM tak, pod warunkiem że w chwili ładowania GTM na stronie jest przynajmniej jeden film YouTube albo skrypt YouTube IFrame API. Jeśli nie ma żadnego z nich, późne filmy przepadają. Rozwiązuje to przeładowanie strony po zgodzie albo własny nasłuch IFrame API.
Pomiary zaawansowane czy GTM do śledzenia filmów? GTM, jeśli obejrzenia mają znaczenie dla Twojego biznesu. Sam wybierasz progi, nazwy zdarzeń i filmy do śledzenia, a każda zmiana jest wersjonowana. Pomiarów zaawansowanych używaj tylko na prostych stronach i nigdy obu naraz dla tych samych filmów.
Czy youtube-nocookie.com jest zgodne z RODO bez zgody? Nie polegałbym na tym. Tryb prywatności rozszerzonej ogranicza cookies przed odtworzeniem, ale przeglądarka i tak łączy się z serwerami Google przy ładowaniu, a po odtworzeniu dane mogą zostać zapisane. W CMP traktuj to jak zwykłe osadzenie YouTube.
Czy tą samą regułą śledzę filmy z Vimeo? Nie. Reguła Film w YouTube w GTM obsługuje tylko YouTube. Vimeo potrzebuje własnego nasłuchu API odtwarzacza, zwykle z szablonu społeczności w Galerii szablonów.
Co dalej
Otwórz jedną ze swoich stron z filmem i zajrzyj do iframe. Nie ma enablejsapi=1 w src? To pomiary zaawansowane raportują dla tego osadzenia zero odtworzeń od dnia, w którym trafiło na stronę, niezależnie od tego, co mówi przełącznik.
Potem zdecyduj, kto jest właścicielem śledzenia filmów, GTM czy przełącznik, i wyłącz to drugie. Zbuduj regułę, przetestuj w podglądzie start, postęp i zakończenie, i zarejestruj video_percent jeszcze dziś, żeby raport w przyszłym miesiącu miał krzywą odpadania.
Jeśli chcesz, żeby ktoś za jednym podejściem sprawdził Twoje filmy, zgody i pomiary zaawansowane, zrób darmowy audyt GTM. A jeśli zależy Ci na stałych kontrolach GA4, które zauważą, kiedy aktualizacja motywu zabije zdarzenia wideo, zobacz monitoring GA4.
Źródła i dalsza lektura - Enhanced measurement events (Pomoc Google Analytics) - YouTube video trigger (Pomoc Menedżera tagów) - YouTube embedded player parameters: enablejsapi (YouTube for Developers) - Event naming rules (Pomoc Google Analytics)
Czy odtworzenia Twoich filmów w ogóle docierają do GA4?
Darmowy audyt GTM sprawdza reguły YouTube, ustawienia pomiarów zaawansowanych i konfigurację zgód, i mówi, których osadzeń GA4 nigdy nie widzi.
Zacznij darmowy audyt GTM