Blog Analityczny. Narzędzia. Techniki. Rozwiązania Analityczne.

Google Tag Manager Server-Side. Implementacja via Cloud Run

04.2024 | GTM Server-Side | Cloud Run | Tag Manager

Od pewnego momentu, kiedy przygotowujemy kontener serwerowy GTM i wybieramy automatyczną implementację, to następuje ona poprzez usługę Googe Cloud Run. A nie tak jak kiedyś poprzez AppEngine.

Zobaczmy zatem jak wygląda implementacja kontenera serwerowego z wykorzystaniem Cloud Run.

Spis zawartości


1. Założenia początkowe

Zakładam, że nasz kontener serwerowy jest gotowy tzn. jest utworzony jako konto i widok, jaki mamy przed sobą, wygląda następująco: 

2. Konfiguracja startowa kontenera sGTM

⇒ Klikamy zatem na ID naszego kontenera, widoczne tutaj:

⇒ Zobaczymy widok z możliwościami konfiguracyjnymi:

Widoczne możliwości wyboru to:

  1. Automatically provision tagging server - automatyczne założenie kontenera

  2. Manually provision tagging server - manualne założenie kontenera

Uwaga: aby automatyczne założenie kontenera zadziałało, to należy wpierw spełnić poniższe warunki:

  • mieć aktywne konto Google Cloud Platform
  • posiadać tam podpięty biling (jest dodana karta kredytowa)

Te warunki są również konieczne dla wdrożenia kontenera manualnego.

Uwaga: Warto pamiętać, że GCP, w bilingu nie przyjmuje kart przedpłaconych czy kart jednorazowych.
 

⇒ Wybieramy zatem opcję “Automatically provision tagging server” i klikamy niebieski przycisk o tej samej nazwie.

⇒ Pojawi nam się okno, w którym należy wybrać konto bilingowe. Wybieramy takie konto i klikamy niebieski przycisk “Select billing account and create server”.

⇒ W efekcie zobaczymy okno oczekiwania, które potwierdza, że proces jest w trakcie.

⇒ Należy odczekać około 3-4 minut, po których pojawi się ekran z podsumowaniem naszej konfiguracji.

Dane widoczne w poniższym oknie - spisujemy i trzymamy np. jako notatka w programie 1password.

Najważniejsze dane tutaj to:

  • Container Configuration
  • Google Cloud Platform Project ID

A zatem nasz kontenera jest ustawiony.

3. Własna domena. Konfiguracja

Wymagana jest jednak akcja, związana z podpięciem kastomowej subdomeny, czyli zamiast domyślnej domeny wpinamy naszą subdomenę typu ss.nazwa_naszej_domeny.pl lub sgtm.nazwa_naszej_domeny.pl (lub inna nazwa, nie ma to większego znaczenia może być to być nawet reksio.nazwa_naszej_domeny.pl).

3.1. Dlaczego warto przygotować własną domenę?

  • Zwiększona wydajność: Używanie własnej domeny może również poprawić wydajność śledzenia, ponieważ zmniejsza obciążenie serwerów Twojej strony internetowej.
  • Spersonalizowane adresy URL: Możesz używać spersonalizowanych adresów URL dla swoich kontenerów Tag Manager, co może ułatwić ich identyfikację i zarządzanie.
  • Zmniejszenie ryzyka blokowania przez strony trzecie: Niektóre przeglądarki i rozszerzenia blokujące mogą blokować skrypty z domen zewnętrznych. Używanie własnej domeny może zmniejszyć ryzyko zablokowania Twoich tagów.

3.2. Konfiguracja własnej domeny w GCP

⇒ Przejdźmy zatem do Google Cloud Platform.

W interfejsie GCP odszukujemy nasz projekt:

⇒ Po zatwierdzeniu przejdziemy do karty projektu.

Sprawdźmy czy instancja Cloud Run rzeczywiście działa i czy jest tam faktycznie nasz serwer:

Widzimy zarówno kontener serwerowy w wersji testowej, jak i produkcyjnej. Obie wersje działają, jeżeli jest przy nich zielona ikona.

⇒ Kliknijmy zatem w server-side-tagging i zobaczymy jak to wygląda od środka:

3.3. Automatyczne tworzenie kontenera. Strefa i elementy opcjonalne

Możemy tutaj zauważyć jedną rzecz, z powodu której nie jestem zwolennikiem automatycznego tworzenia kontenerów. A mianowicie jako region mamy niestety podane USA.

W przypadku samego Tag Managera, raczej nie możemy mówić o przekazywaniu danych osobowych, niemniej z uwagi na kwestie wydajności wolałbym mieć możliwość wyboru strefy Europejskiej.

Elementy opcjonalne

Nim przejdziemy do zagadnień związanych z dodaniem indywidualnej domeny pod nasz kontener serwerowy, to jeszcze Warto zaznaczyć opcjonalne elementy które my możemy wykorzystać w naszej implementacji:

  1. Wdrożenie w wielu regionach. Ma znaczenie jeżeli nasza witryna działa na szerszym geograficznie obszarze na przykład nasze usługi są dostępne w Kanadzie w Europie i Azji
  2. Wyłączenie logowania. Domyślnie każde żądanie do naszego kontenera jest logowane. W przypadku serwisów o dużym wolumenie ruchu takie logowanie może wpłynąć na koszty utrzymania kontenera

3.4. Koszty kontenera sGTM via Cloud Run

Sprawdźmy również koszty związane z wykorzystaniem Cloud Run. Google podaje nam następujące dane:

  • Każda instancja Cloud Run, wyposażona w 1 vCPU i 0,5 GB pamięci RAM, kosztuje około 45 dolarów miesięcznie (USD).
  • Zalecana konfiguracja dla zapewnienia ciągłości działania - uruchomienie przynajmniej dwóch instancji.
  • Cloud Run oferuje możliwość automatycznego skalowania, co pozwala na efektywne zarządzanie od 2 do 10 serwerami, które mogą obsłużyć od 35 do 350 żądań na sekundę. Wydajność systemu będzie jednak różnić się w zależności od liczby użytych tagów oraz ich specyfiki.
  • Parametr max-instances w Cloud Run służy do określenia maksymalnej liczby serwerów, jakie mogą być uruchomione w najbardziej obciążających scenariuszach. Jest to swoisty "najgorszy przypadek", który pozwala użytkownikom przewidzieć maksymalne możliwe koszty. System nie będzie przydzielał więcej instancji, niż jest to konieczne, co pozwala na optymalizację kosztów bez ryzyka utraty wydajności.

A zatem ⇒ zawsze ustawmy parametr max-instances.

Wróćmy teraz do kwestii dodania własnej domeny.

3.5. Dodanie własnej domeny. Kolejne kroki

Dodajemy domenę typu gtm.nazwa_domeny_glownej.pl (lub inną dowolną).

* Pełny proces dodawania własnej domeny jest opisany na stronie pomocy Google: https://cloud.google.com/run/docs/integrate/custom-domain-load-balancer

Sumarycznie, w celu dodania domeny wykonujemy kolejne kroki:

3.5.1. Przygotowanie uprawnień dla konta

Przechodzimy do IAM, czyli finkcjonalności zarządzania użytkownikami i uprawnieniami w GCP. W ramach naszego projektu powinniśmy zobaczyć ekran podobny do poniższego:

Widać tutaj dwa konta:

  • konto osobiste (nasze)
  • konto typu service account, domyślnie utworzone przez GCP podczas konfiguracji usługi Cloud Run

Aby przejść dalej, musimy zweryfikować uprawnienia obu kont.

Nasze osobiste konto powinno posiadać uprawnienia takie jak:

Natomiast domyślnie utworzone konto typu service account musi posiadać uprawnienia jak poniżej:

W przypadku service account uprawnienia powinny być dopisane. Natomiast odwrotna sytuacja jest z naszym kontem osobistym - tam należy wymagane uprawnienia dodać ręcznie.

Uprawnienia dopisujemy korzystając z interfejsu Assign roles - po uprzednim kliknięciu w nazwę naszego użytkownika:

3.5.2. Cloud Run. Integrations 

Po nadaniu uprawnień, przechodzimy do strony głównej Cloud Run, dla naszego uruchomionego kontenera:

W widocznym interfejsie, klikamy w zakładkę Integrations.

Odnajdujemy przycisk/link o nazwie ADD INTEGRATION. Klikamy go.

Zobaczymy listę dostępnych integracji.

Wybieramy tutaj integrację o nazwie ⇒ Custom domains - Google Cloud Load Balancing

W oknie dodania integracji (domeny) mamy trzy opcje:

  • Routes - tutaj definiujemy naszą domenę dla server-side GTM. Podajemy zatem gtm.nazwa_domeny_glownej.pl np. gtm.surowiecki.org
  • W sekcji permissions klikamy GRANT ALL
  • W sekcji Required APIs klikamy ENABLE

Po zatwierdzeniu wszystkich w/w opcji powinniśmy zobaczyć poniższy widok:

Klikamy zatem przycisk SUBMIT.

Musimy chwilę odczekać zanim nasze ustawienia zostaną wprowadzone - w moim przypadku było to około 30 minut. Także, bądźmy cierpliwi :)

Jeżeli nie dodaliśmy poprawnie uprawnień, to zobaczymy błąd np. jak na poniższym zrzucie ekranu:

Jeżeli natomiast dodaliśmy wszystko poprawnie, to otrzymamy widok jak poniżej w którym będą dane dla naszej subdomeny:

Dane te wpisujemy do rekordów DNS u naszego providera. Po wpisaniu i propagacji rekordów zostanie zakończony proces przypisania certyfikatu SSL.


4. Podsumowanie

Niniejszy artykuł omawia implementację Google Tag Manager Server-Side z wykorzystaniem usługi Cloud Run, dostępnej w ramach Google Cloud Platform. Implementacja via Cloud Run zastapiła poprzednią implementację, oparta o AppEngine. 

W artykule omówiliśmy pełny proces utworzenia kontenera serwerowego dla sGTM, przygotowania odpowiednich uprawnień w GCP oraz podpięcia customowej domeny do hostowania naszego kontenera.