Śledzenie konwersji

Implementacja

Podsumowanie

Implementacja śledzenia konwersji składa się z 3 elementów:

  • Pobieram parametry rwg_token i merchant_id ze strony docelowej lub punktu wejścia do aplikacji.
  • Zachowywanie pól rwg_token i merchant_id dla odpowiedniego okna atrybucji.
  • Porównaj wartości merchant_id i merchant_id w momencie konwersji (rezerwacja ukończona).
  • Wysyłanie zdarzenia konwersji w momencie konwersji (rezerwacja ukończona).

Ta implementacja śledzenia konwersji nie wymaga korzystania z Google Analytics ani żadnego innego kodu JavaScriptu innej firmy.

Przed rozpoczęciem pracy nad implementacją śledzenia konwersji zdecyduj, czy chcesz śledzić konwersje na poziomie urządzenia czy na poziomie użytkownika:

  • Na poziomie urządzenia można korzystać z plików cookie przeglądarki, pamięci lokalnej, pamięci lokalnej aplikacji lub dowolnej innej metody, która może zachować token przez 30-dniowe okno atrybucji. Token jest zapisywany lokalnie na urządzeniu użytkownika, dlatego jeśli zmieni urządzenie, wyczyści pamięć lokalną lub pliki cookie albo korzysta z trybu przeglądania prywatnego lub incognito, zdarzenie konwersji może nie zostać prawidłowo przypisane. Jeśli korzystasz ze śledzenia konwersji na poziomie urządzenia, musisz wdrożyć je ponownie na wszystkich obsługiwanych platformach (w tym na urządzeniach mobilnych).
  • Na poziomie użytkownika można przechowywać je w bazie danych aplikacji za pomocą systemu analitycznego po stronie serwera lub innych systemów po stronie serwera. Token jest przechowywany po stronie serwera, więc jeśli użytkownik zmieni używane urządzenie, wyczyści pamięć lokalną lub pliki cookie albo korzysta z przeglądania prywatnego lub trybu incognito, zdarzenie konwersji zostanie przypisane po ponownym zalogowaniu. Gdy korzystasz ze śledzenia konwersji na poziomie użytkownika, w zależności od architektury Twojego systemu możesz wdrożyć to rozwiązanie po stronie serwera i korzystać z niego na wszystkich obsługiwanych platformach.

Zbieranie: rwg_token

Za każdym razem, gdy Google wyświetla link action_link podany przez Ciebie w plikach danych, adres URL jest modyfikowany, by uwzględnić w nim unikalny parametr zapytania: rwg_token. Wartość rwg_token to zakodowany ciąg znaków zawierający metadane dotyczące linku, który kliknął użytkownik, ale brak danych użytkownika. Należy zapisać ten token i przekazać go z powrotem w ramach zdarzenia konwersji.

Na każdej stronie docelowej lub w każdym punkcie wejścia do aplikacji musisz przeanalizować wartość ustawioną w parametrze zapytania rwg_token i ją zapisać. Wymagania dotyczące przechowywania tego parametru opisano w kroku z zachowaniem właściwości rwg_token.

Poniżej znajdziesz przykład analizy tego tokena na potrzeby śledzenia na poziomie urządzenia w przeglądarce. Możesz też zbierać ten token po stronie serwera, odpowiadając na żądanie:

var query = location.search.substring(1);
var params = query.split('&');
var rwgToken = undefined;
for (var i = 0; i < params.length; ++i) {
  var pair = params[i].split('=');
  if (pair[0] == 'rwg_token') {
    rwgToken = decodeURIComponent(pair[1]);
    break;
  }
}

Zbieranie: merchant_id

Jeśli implementujesz logikę śledzenia konwersji z poziomu frontendu, na stronie docelowej musisz zaimplementować niestandardowy skrypt, który znajdzie i przechwytuje parametr merchant_id. Zwykle tag merchant_id może już znajdować się na stronie docelowej lub w adresie URL, aby można go było potem przechwycić. W przeciwnym razie musisz znaleźć sposób na umieszczenie jej w odpowiednim miejscu, co prawdopodobnie skutkuje zmianami zaplecza.

Jeśli wdrożysz logikę śledzenia konwersji w backendzie, obok danych, które wysyłają zapytania do systemu wewnętrznego w celu wygenerowania strony frontendowej, możesz znaleźć logikę merchant_id.

Ta wartość merchant_id musi być taka sama jak ta, którą udostępniasz Google w pliku danych.

Zachowuję te zasady: rwg_token i merchant_id

Musisz zachować parametr adresu URL rwg_token, który będzie dołączany do wszystkich podanych przez Ciebie linków do działań przez łącznie 30 dni. Wartość rwg_token powinna być przechowywana i zwracana bez żadnych zmian.

Oprócz rwg_token musisz zapisać także merchant_id powiązane z linkiem do działania.

Jeśli podczas poprzedniej wizyty zachowywał się istniejący token, należy zastąpić wcześniejsze tokeny rwg_token i merchant_id oraz zresetować 30-dniowy okres przechowywania.

Jeśli utrwalasz powyższą parę, możesz zapisać wartości na poziomie urządzenia lub użytkownika:

  • Na poziomie urządzenia można korzystać z plików cookie przeglądarki, pamięci lokalnej, pamięci lokalnej aplikacji lub dowolnej innej metody, która może zachować token przez 30-dniowe okno atrybucji.
  • Na poziomie użytkownika można przechowywać je w bazie danych aplikacji za pomocą systemu analitycznego po stronie serwera lub innych systemów po stronie serwera.

Poniżej znajdziesz przykład śledzenia konwersji na poziomie urządzenia z zapisywaniem tych wartości w przeglądarce za pomocą własnego pliku cookie. W tym przykładzie zakładamy, że wartość tokena została przekształcona w zmienną jak w przykładzie powyżej. Aby skorzystać z tego przykładu, musisz zaktualizować rootdomain.com w swojej domenie.

if (typeof rwg_token !== 'undefined') {
  document.cookie =
  "_rwg_token=" + rwg_token + ";_merchant_id=" + merchantid + ";max-age=2592000;domain=rootdomain.com;path=/";
}

Jeśli używasz śledzenia konwersji na poziomie użytkownika, kod rwg_token + merchant_id powinien być przechowywany na serwerze i powiązany z użytkownikiem.

Wysyłanie danych o konwersjach

Gdy użytkownik zrealizuje transakcję, która można przypisać linkowi do działania w miejscu Google, musisz wysłać żądanie HTTP POST do punktu końcowego konwersji. Istnieją 2 punkty końcowe – jeden dla środowiska produkcyjnego, a drugi dla środowiska piaskownicy.

  • produkcyjne: https://www.google.com/maps/conversion/collect
  • Piaskownica: https://www.google.com/maps/conversion/debug/collect

Treść posta powinna być obiektem zakodowanym w formacie JSON:

{
  "conversion_partner_id": <partnerId>,
  "rwg_token": <rwg_token_val>,
  "merchant_changed": 1|2
}

Przykład (niezmieniony sprzedawca z tokenem testowym dla partnera 20123456):

{
  "conversion_partner_id": 20123456,
  "rwg_token": "AJKvS9WeONmWKEwjG0--HdpzMq0yAVNL8KMxbb44QtbcxMhSx_NUud5b8PLUBFehAIxOBO-iYRIJOknEFkIJmdsofdVJ6uOweQ==",
  "merchant_changed": 2
}

Wartość merchant_changed jest używana do określenia, czy sprzedawca został zmieniony niż sprzedawca wstępnie przekierowywany. Istnieją dwie wartości, które można przekazywać

Wartość zmiany sprzedawcy Co musisz zrobić
1 Tej wartości należy użyć, gdy użytkownik opuścił pierwotną witrynę sprzedawcy i dokonał zakupu na Twojej platformie u innego sprzedawcy
2 Tej wartości należy użyć, gdy klient zrealizował transakcję za pośrednictwem oryginalnego podmiotu (sprzedawcy).

Zarówno w środowisku piaskownicy, jak i w środowisku produkcyjnym podczas wysyłania zdarzenia konwersji musisz podać prawidłowy atrybut rwg_token. Do testowania używaj w obu środowiskach tego tokena testowego, dopóki go nie uruchomisz:

AJKvS9WeONmWKEwjG0--HdpzMq0yAVNL8KMxbb44QtbcxMhSx_NUud5b8PLUBFehAIxOBO-iYRIJOknEFkIJmdsofdVJ6uOweQ==

Aby przeprowadzić testy w trybie piaskownicy, musisz ręcznie dołączyć do linków w tym trybie ten parametr adresu URL:

rwg_token=AJKvS9WeONmWKEwjG0--HdpzMq0yAVNL8KMxbb44QtbcxMhSx_NUud5b8PLUBFehAIxOBO-iYRIJOknEFkIJmdsofdVJ6uOweQ%3D%3D

Poniżej znajdziesz pełny przykład śledzenia konwersji na poziomie urządzenia (za pomocą pliku cookie na urządzeniu użytkownika) w JavaScripcie, który pokazuje, jak utworzyć takie żądanie:

const partnerId = XXXXXXXXXX;

const endpoint = `https://www.google.com/maps/conversion/collect`;

const rwgTokenCookie = document.cookie
  .split('; ')
  .find(row => row.startsWith('_rwg_token='));

if (typeof rwgTokenCookie !== 'undefined') {
  const rwgTokenVal = rwgTokenCookie.split('=')[1];
  fetch(endpoint, {
    method: "POST",
    body: JSON.stringify({
      conversion_partner_id: partnerId,
      rwg_token: rwgTokenVal,
      merchant_changed: merchantChanged
    })
  });
}

Jeśli korzystasz ze śledzenia konwersji na poziomie użytkownika, musisz pobrać token powiązany z użytkownikiem (niezależnie od platformy, na której się znajduje) z mechanizmu przechowywania danych po stronie serwera i wysłać token za pomocą tych samych punktów końcowych w środowisku produkcyjnym lub piaskownicy.

Wymagania dotyczące atrybucji konwersji

Wymaganym przez Google standardem atrybucji konwersji jest 30-dniowe okno atrybucji w przypadku każdej interakcji z linkiem do miejsca w dowolnym sklepie.

To okno atrybucji oznacza, że Google spodziewa się wysłania zdarzenia konwersji w każdym z tych scenariuszy:

  • Użytkownik klika link do działania związanego z miejscem i w ramach tej samej sesji składa zamówienie dla tego samego sprzedawcy. (Wartość zmiany sprzedawcy = 2 )
  • Użytkownik klika link do działania związanego z miejscem, a potem w ciągu 30 dni wraca z innego kanału, aby złożyć zamówienie na tego samego sprzedawcę. (Wartość zmiany sprzedawcy = 2 )
  • Użytkownik klika link do działania związanego z miejscem, a potem w ciągu 30 dni składa zamówienie w innym sklepie (w ramach tej samej sesji lub podczas innej sesji). ( Wartość zmiany sprzedawcy = 1 )

Poza tym Google oczekuje, że zdarzenia konwersji będą wysyłane ze wszystkich miejsc, na które użytkownik może wejść po kliknięciu linku do działania związanego z miejscem. W tym:

  • Aplikacje internetowe na komputer lub urządzenia mobilne
  • w aplikacjach mobilnych za pomocą precyzyjnego linku lub zarejestrowanej intencji w Twojej domenie,

Jeśli token jest przechowywany na poziomie użytkownika (patrz zapamiętywanie tokena), należy podać atrybucję na różnych urządzeniach. Oznacza to, że użytkownik, który kliknie link działania na komputerze, a potem zrealizuje transakcję na urządzeniu mobilnym (przy użyciu tego samego konta użytkownika), powinien wywołać zdarzenie konwersji.

Jeśli token jest przechowywany tylko na poziomie urządzenia, np. w plikach cookie w przeglądarce, nie należy określać atrybucji na różnych urządzeniach. W takim przypadku każde urządzenie miałoby osobny token, gdyby użytkownik kliknął na nim link do działania, a każde urządzenie z osobna przestrzegało reguł atrybucji.