Ulepszone e-commerce

Wtyczka Ulepszonego e-commerce do analytics.js umożliwia pomiar interakcji użytkowników z produktami w witrynach e-commerce w całym ich doświadczeniach zakupowych, w tym: wyświetleń produktów, kliknięć produktów, wyświetlania szczegółów produktu, dodania produktu do koszyka, inicjowania procesu płatności, transakcji i zwrotów środków.

Migracja i zgodność z wtyczką e-commerce (ecommerce.js)

Jeśli masz już wdrożony pomiar e-commerce i chcesz zacząć korzystać z Ulepszonego e-commerce, masz 2 główne opcje:

Użyj nowej usługi

Możesz dodać kolejny moduł do śledzenia dla nowo utworzonej usługi i włączyć w niej Ulepszone e-commerce. Szczegółowe informacje o wysyłaniu danych do wielu usług z jednej strony znajdziesz w artykule Praca z wieloma obiektami śledzenia.

Migracja istniejącej usługi

Aby przeprowadzić migrację z wtyczki e-commerce do wtyczki Ulepszone e-commerce, obecni użytkownicy tagu analytics.js powinni usunąć odniesienia i zastąpić je kodem ulepszonego e-commerce.

Jeśli korzystasz obecnie z kodu ga.js, przed skorzystaniem z wtyczki Ulepszone e-commerce musisz przejść na analytics.js.

Migracja nie będzie miała wpływu na dane o transakcjach i produktach zebrane wcześniej za pomocą wtyczki ecommerce.js. Będą one nadal dostępne w usługach i profilach, do których zostały pierwotnie przesłane.

Typy danych i działania Ulepszonego e-commerce

Istnieje wiele typów danych e-commerce, które możesz wysyłać:

Dane o wyświetleniach

Reprezentuje informacje o produkcie, który został wyświetlony. Jest to tzw. impressionFieldObject i zawiera te wartości:

Klucz Typ wartości Wymagane Opis
id plik tekstowy, *Tak

Identyfikator produktu lub kod SKU (np. P67890).

* Należy ustawić jedną z wartości id lub name.

name plik tekstowy, *Tak

Nazwa produktu (np. Android T-Shirt).

* Należy ustawić jedną z wartości id lub name.

list plik tekstowy, Nie Lista lub kolekcja, do których należy produkt (np. wyniki wyszukiwania)
list_name plik tekstowy, Nie Lista lub kolekcja, do których należy produkt (np. wyniki wyszukiwania)
brand plik tekstowy, Nie Marka powiązana z produktem (np. Google).
category plik tekstowy, Nie Kategoria, do której należy produkt (np. odzież). Jako separatora użyj / jako separatora, który pozwala określić maksymalnie 5 poziomów hierarchii (np. Odzież/Męska/T-shirty).
variant plik tekstowy, Nie Wersja produktu (np. czarna).
position Liczba całkowita Nie Pozycja produktu na liście lub w kolekcji (np. 2).
list_position Liczba całkowita Nie Pozycja produktu na liście lub w kolekcji (np. 2).
price Liczba Nie Cena produktu (np. 29,20).

Dane produktu

Dane produktów reprezentują poszczególne produkty, które zostały wyświetlone, dodane do koszyka itd. Są one nazywane productFieldObject i zawierają następujące wartości:

Klucz Typ wartości Wymagane Opis
id plik tekstowy, *Tak

Identyfikator produktu lub kod SKU (np. P67890).

* Należy ustawić jeden identyfikator lub element name.

name plik tekstowy, *Tak

Nazwa produktu (np. Android T-Shirt).

* Należy ustawić jeden identyfikator lub element name.

brand plik tekstowy, Nie Marka powiązana z produktem (np. Google).
category plik tekstowy, Nie Kategoria, do której należy produkt (np. odzież). Używaj / jako separatora, aby określić do 5 poziomów hierarchii (np. Odzież/Męska/T-shirty).
variant plik tekstowy, Nie Wersja produktu (np. czarna).
price Liczba Nie Cena produktu (np. 29,20).
quantity Liczba całkowita Nie Liczba sztuk produktu (np. 2).
coupon plik tekstowy, Nie Kod kuponu powiązany z produktem (np. LATO_WYPRZEDAŻ13).
position Liczba całkowita Nie Pozycja produktu na liście lub w kolekcji (np. 2).
list_position Liczba całkowita Nie Pozycja produktu na liście lub w kolekcji (np. 2).

Dane promocji

Reprezentuje informacje o wyświetlonej promocji. Odnosi się do elementu promoFieldObject i zawiera te wartości:

Klucz Typ wartości Wymagane Opis
id plik tekstowy, *Tak

Identyfikator promocji (np. PROMO_1234).

* Należy ustawić jedną z wartości id lub name.

name plik tekstowy, *Tak

Nazwa promocji (np. Letnia wyprzedaż).

* Należy ustawić jedną z wartości id lub name.

creative plik tekstowy, Nie Kreacja powiązana z promocją (np. baner_lato_baner2).
creative_name plik tekstowy, Nie Nazwa kreacji (np. baner_letnia2).
position plik tekstowy, Nie Pozycja kreacji (np. baner_slot_1).
creative_slot plik tekstowy, Nie Nazwa boksu kreacji (np. baner_slot_1).

Dane działania

Reprezentuje informacje o wykonanym działaniu związanym z e-commerce. Jest to tzw. actionFieldObject i zawiera te wartości:

Klucz Typ wartości Wymagane Opis
id plik tekstowy, *Tak

Identyfikator transakcji (np. T1234).

* Wymagany, jeśli typem działania jest purchase lub refund

affiliation plik tekstowy, Nie Sklep lub podmiot stowarzyszony, w którym miała miejsce transakcja (np. Google Store).
revenue Liczba Nie

Określa całkowite przychody lub całkowitą kwotę transakcji (np. 11,99). Ta wartość może obejmować dostawę, podatki i inne korekty łącznych przychodów, które chcesz uwzględnić przy obliczaniu przychodów.

value Liczba Nie Wartość (tj. przychody) powiązana ze zdarzeniem.
tax Liczba Nie Łączny podatek z transakcją.
shipping Liczba Nie Koszt dostawy powiązany z transakcją.
coupon plik tekstowy, Nie Kupon na transakcję wykorzystany w ramach transakcji.
list plik tekstowy, Nie Lista, do której należą powiązane produkty. Opcjonalnie.
items tablica Nie Tablica zawierająca powiązane produkty.
step Liczba całkowita Nie Liczba reprezentująca krok w procesie płatności. Opcjonalny w przypadku działań „checkout”.
checkout_step Liczba całkowita Nie Liczba reprezentująca krok w procesie płatności.
option plik tekstowy, Nie Dodatkowe pole na działania checkout i checkout_option, które może opisać informacje dotyczące opcji na stronie płatności, np. wybranej formy płatności.
checkout_option plik tekstowy, Nie Opcja płatności (tj. wybrana forma płatności).

Działania związane z produktem i promocją

Działania określają sposób interpretowania danych o produktach i promocjach, które wysyłasz do Google Analytics.

Działanie Zdarzenie Opis
click Kliknięcie produktu lub linku do co najmniej jednego produktu.
detail Widok szczegółów produktu.
add Dodanie co najmniej jednego produktu do koszyka.
remove Usuń co najmniej jeden produkt z koszyka.
checkout Rozpoczęcie procesu płatności dla co najmniej jednego produktu.
checkout_option Wysyłanie wartości opcji dla danego etapu płatności.
purchase Sprzedaż co najmniej jednego produktu.
refund Zwrot środków za co najmniej 1 produkt.
promo_click Kliknięcie promocji wewnętrznej.
add_to_cart Użytkownik dodaje co najmniej jeden produkt do koszyka.
begin_checkout Użytkownik inicjuje proces płatności co najmniej jednego produktu.
checkout_progress Użytkownik realizuje kroki płatności po pierwszym etapie procesu płatności.
purchase Użytkownik finalizuje zakup.
refund Użytkownik otrzyma zwrot środków za co najmniej 1 produkt.
remove_from_cart Użytkownik usuwa co najmniej jeden produkt z koszyka.
select_content Użytkownik klika link do produktu.
set_checkout_option Etap realizacji transakcji przez użytkownika.
view_item Użytkownik wyświetla szczegóły produktu.
view_item_list Użytkownik wyświetla listę co najmniej 1 produktu.
view_promotion Użytkownik klika promocję wewnętrzną.
view_refund Użytkownik wyświetla zwrot środków za co najmniej 1 produkt.

Implementacja

W kolejnych sekcjach opisano, jak wdrożyć wtyczkę Ulepszonego e-commerce do pomiaru aktywności e-commerce w witrynie z biblioteką analytics.js.

Wczytywanie wtyczki e-commerce

Aby zmniejszyć rozmiar biblioteki analytics.js, Ulepszone e-commerce nie jest dostępne w bibliotece domyślnej. Jest używany jako moduł wtyczki, który musi zostać wczytany przed użyciem.

Aby wczytać wtyczkę Ulepszonego e-commerce, użyj tego polecenia:

ga('require', 'ec');

Polecenie to musi zostać wykonane po utworzeniu obiektu śledzenia, a przed użyciem funkcji związanych z Ulepszonym e-commerce.

Wysyłanie danych Ulepszonego e-commerce

Po wczytaniu pojawi się kilka nowych poleceń związanych z Ulepszonym e-commerce w domyślnym module śledzenia i będziesz mieć możliwość wysyłania danych e-commerce.

Pomiar działań e-commerce

Typowa implementacja Ulepszonego e-commerce będzie mierzyć wyświetlenia produktów i dowolne z tych działań:

  • kliknie link do produktu;
  • Wyświetlanie szczegółów produktu
  • Wyświetlenia i kliknięcia promocji wewnętrznych.
  • dodanie produktu do koszyka lub usunięcie go z koszyka,
  • Inicjowanie procesu płatności za produkt.
  • Zakupy i zwroty środków.

Pomiar wyświetleń

Wyświetlenia produktów mierzy się za pomocą polecenia ec:addImpression. Szczegółowe informacje o produkcie są dodawane w elemencie impressionFieldObject.

Na przykład ten kod służy do pomiaru wyświetleń produktu na liście wyników wyszukiwania:

ga('ec:addImpression', {            // Provide product details in an impressionFieldObject.
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel/T-Shirts',   // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'Black',               // Product variant (string).
  'list': 'Search Results',         // Product list (string).
  'position': 1,                    // Product position (number).
  'dimension1': 'Member'            // Custom dimension (string).
});

Element impressionFieldObject musi mieć wartość name lub id. Pozostałe wartości są opcjonalne i nie trzeba ich ustawiać.

Pomiary działań

Działania mierzy się za pomocą polecenia ec:addProduct z productFieldObject w celu dodania szczegółów produktu oraz polecenia ec:setAction do określenia wykonywanego działania.

Na przykład ten kod zlicza kliknięcie linku do produktu wyświetlanego na liście wyników wyszukiwania:

ga('ec:addProduct', {               // Provide product details in a productFieldObject.
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel',            // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'Black',               // Product variant (string).
  'position': 1,                    // Product position (number).
  'dimension1': 'Member'            // Custom dimension (string).
});

ga('ec:setAction', 'click', {       // click action.
  'list': 'Search Results'          // Product list (string).
});

Element productFieldObject musi mieć wartość name lub id. Pozostałe wartości są opcjonalne i nie trzeba ich ustawiać.

Łączenie wyświetleń i działań

Jeśli masz zarówno wyświetlenia produktu, jak i działanie, możesz to połączyć i zmierzyć w jednym działaniu.

Poniższy przykład pokazuje, jak mierzyć widok szczegółów produktu z sekcją produktów powiązanych:

// The impression from a Related Products section.
ga('ec:addImpression', {            // Provide product details in an impressionFieldObject.
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel/T-Shirts',   // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'Black',               // Product variant (string).
  'list': 'Related Products',       // Product list (string).
  'position': 1                     // Product position (number).
});

// The product being viewed.
ga('ec:addProduct', {                 // Provide product details in an productFieldObject.
  'id': 'P67890',                     // Product ID (string).
  'name': 'YouTube Organic T-Shirt',  // Product name (string).
  'category': 'Apparel/T-Shirts',     // Product category (string).
  'brand': 'YouTube',                 // Product brand (string).
  'variant': 'gray',                  // Product variant (string).
  'position': 2                       // Product position (number).
});

ga('ec:setAction', 'detail');       // Detail action.

Pomiary transakcji

Aby mierzyć transakcję, użyj polecenia ec:setAction i ustaw typ działania na purchase. Szczegóły na poziomie transakcji, takie jak łączne przychody, podatek i dostawa, są podane w actionFieldObject:

ga('ec:addProduct', {               // Provide product details in an productFieldObject.
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel',            // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'black',               // Product variant (string).
  'price': '29.20',                 // Product price (number).
  'coupon': 'APPARELSALE',          // Product coupon (string).
  'quantity': 1                     // Product quantity (number).
});

ga('ec:setAction', 'purchase', {          // Transaction details are provided in an actionFieldObject.
  'id': 'T12345',                         // (Required) Transaction id (string).
  'affiliation': 'Google Store - Online', // Affiliation (string).
  'revenue': '37.39',                     // Revenue (number).
  'tax': '2.85',                          // Tax (number).
  'shipping': '5.34',                     // Shipping (number).
  'coupon': 'SUMMER2013'                  // Transaction coupon (string).
});

actionFieldObject musi mieć wartość id, jeśli typem działania jest purchase lub refund. Pozostałe wartości są opcjonalne i nie trzeba ich ustawiać.

Pomiar zwrotów

Aby zwrócić środki za całą transakcję, ustaw działanie refund i podaj identyfikator transakcji:

// Refund an entire transaction.
ga('ec:setAction', 'refund', {
  // Transaction ID is only required field for full refund.
  'id': 'T12345'
});

Jeśli pasująca transakcja nie zostanie znaleziona, działanie refund nie zostanie przetworzone.

Aby mierzyć częściowy zwrot środków, ustaw działanie refund i określ identyfikator transakcji, identyfikatory produktów oraz liczbę produktów, za które chcesz otrzymać zwrot środków:

// Refund a single product.
ga('ec:addProduct', {
  'id': 'P12345',       // Product ID is required for partial refund.
  'quantity': 1         // Quantity is required for partial refund.
});

ga('ec:setAction', 'refund', {
  'id': 'T12345',       // Transaction ID is required for partial refund.
});

Używanie zdarzeń niezwiązanych z interakcjami przy zwrotach środków

Jeśli chcesz wysyłać dane o zwrotach środków za pomocą zdarzenia, które nie jest częścią normalnie mierzonego zachowania w witrynie (tj. nie jest inicjowane przez użytkownika), zalecamy wysyłanie zdarzenia bez interakcji. Dzięki temu zdarzenie nie będzie miało wpływu na dane takie jak współczynnik odrzuceń, czas spędzony w witrynie itp. Przykład:

ga('send', 'event', 'Ecommerce', 'Refund', {'nonInteraction': 1});

Pomiary procesu płatności

Aby mierzyć każdy etap procesu płatności:

  • Dodaj kod, aby mierzyć każdy etap procesu płatności.
  • W razie potrzeby dodaj kod, aby mierzyć opcje płatności.
  • Opcjonalnie możesz ustawić łatwe w użyciu nazwy kroków w raporcie ścieżki płatności. Aby to zrobić, w sekcji administracyjnej interfejsu internetowego możesz skonfigurować Ustawienia e-commerce.

1. Pomiary kroków procesu płatności

Na każdym etapie procesu płatności musisz zaimplementować odpowiedni kod, który będzie wysyłać dane do Google Analytics:

  • Pole step

    W przypadku każdego mierzonego etapu procesu płatności należy podać wartość step. Ta wartość służy do mapowania działań związanych z płatnością na etykiety skonfigurowane dla poszczególnych kroków w ustawieniach e-commerce.

  • Pole option

    Jeśli w momencie pomiaru masz dodatkowe informacje o danym kroku płatności, możesz skonfigurować pole option z działaniem checkout, aby rejestrować te informacje. Może to być na przykład domyślny typ płatności w przypadku danego użytkownika (np. Visa).

  • Pomiar etapu procesu płatności

    Aby mierzyć etap płatności, użyj atrybutu ec:addProduct dla każdego produktu, a ec:setAction wskaż etap płatności. W razie potrzeby ec:setAction może wykorzystać dodatkowy element actionFieldObject do opisania etapu płatności za pomocą elementów step i option.

    Z przykładu poniżej dowiesz się, jak mierzyć pierwszy etap procesu płatności za pomocą jednego produktu i pewne dodatkowe informacje o typie płatności:

    ga('ec:addProduct', {               // Provide product details in an productFieldObject.
      'id': 'P12345',                   // Product ID (string).
      'name': 'Android Warhol T-Shirt', // Product name (string).
      'category': 'Apparel',            // Product category (string).
      'brand': 'Google',                // Product brand (string).
      'variant': 'black',               // Product variant (string).
      'price': '29.20',                 // Product price (number).
      'quantity': 1                     // Product quantity (number).
    });
    
    // Add the step number and additional info about the checkout to the action.
    ga('ec:setAction','checkout', {
        'step': 1,
        'option': 'Visa'
    });
    

2. Pomiar opcji realizacji transakcji

Opcje płatności umożliwiają pomiar dodatkowych informacji o stanie procesu płatności. Jest to przydatne w sytuacjach, gdy etap procesu płatności został zmierzony podczas początkowej odsłony strony, ale dodatkowe informacje o tym samym etapie procesu płatności są dostępne po ustawieniu opcji wybranej przez użytkownika. Na przykład użytkownik wybiera sposób dostawy.

Aby mierzyć opcję płatności, użyj funkcji ec:setAction, by wskazać właściwość checkout_option i podać numer kroku oraz opis opcji.

Warto mierzyć to działanie, gdy użytkownik kliknie, aby przejść do następnego etapu procesu płatności. Na przykład:

// (On "Next" button click)
ga('ec:setAction', 'checkout_option', {'step': 2, 'option': 'FedEx'});

ga('send', 'event', 'Checkout', 'Option', {
    hitCallback: function() {
      // advance to next page
    },
});

3. Konfiguracja ścieżki płatności

Każdy etap procesu płatności może mieć opisową nazwę, która będzie używana w raportach. Aby skonfigurować te nazwy, przejdź do sekcji Administracja w interfejsie internetowym Google Analytics, wybierz widok (profil) i kliknij Ustawienia e-commerce. Postępuj zgodnie z instrukcjami konfiguracji e-commerce, by oznaczyć etykietami każdy krok płatności, który chcesz objąć pomiarem.

Ustawienia e-commerce w sekcji Administracja interfejsu internetowego Google Analytics. E-commerce jest włączony i dodano 4 etykiety kroków ścieżki płatności: 1. Koszyk recenzji, 2. zbieranie danych do płatności, 3. Potwierdź szczegóły zakupu, 4. Rachunek
Rysunek 1: Konfiguracja e-commerce – ścieżka płatności

Pomiary reklam wewnętrznych

Wtyczka do Ulepszonego e-commerce umożliwia pomiar wyświetleń i kliknięć reklam wewnętrznych, takich jak banery wyświetlane w celu promowania sprzedaży w innej sekcji witryny.

Wyświetlenia promocji

Wyświetlenia reklam wewnętrznych są zwykle mierzone podczas wczytywania strony i są wysyłane wraz z początkową odsłoną za pomocą polecenia ec:addPromo. Na przykład:

ga('ec:addPromo', {               // Promo details provided in a promoFieldObject.
  'id': 'PROMO_1234',             // Promotion ID. Required (string).
  'name': 'Summer Sale',          // Promotion name (string).
  'creative': 'summer_banner2',   // Creative (string).
  'position': 'banner_slot1'      // Position  (string).
});

Kliknięcia promocji

Kliknięcia promocji wewnętrznych można mierzyć, ustawiając działanie promo_click. Na przykład:

// Identify the promotion that was clicked.
ga('ec:addPromo', {
  'id': 'PROMO_1234',
  'name': 'Summer Sale',
  'creative': 'summer_banner2',
  'position': 'banner_slot1'
});

// Send the promo_click action with an event.
ga('ec:setAction', 'promo_click');
ga('send', 'event', 'Internal Promotions', 'click', 'Summer Sale');

Aby np. mierzyć stronę ze szczegółami produktu obejmującymi wyświetlenie i kliknięcie promocji, najpierw wyślij dane o produktach i wyświetleniach z początkową odsłoną, a potem w osobnym zdarzeniu wyślij dane o kliknięciach promocji:

// 1. Send product and impression data with pageview.
ga('ec:addProduct', {
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel',            // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'Black',               // Product variant (string).
  'position': 1,                    // Product position (number).
});

// The impression from the Related Products section.
ga('ec:addImpression', {
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel/T-Shirts',   // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'Black',               // Product variant (string).
  'list': 'Related Products',       // Product list (string).
  'position': 1,                    // Product position (number).
});

ga('ec:setAction', 'detail');       // Detail action.

ga('send', 'pageview');             // Send the product data with initial pageview.


// 2. Send the promo click data when the promo click occurs.
// Call this function when promo click occurs.
function onPromoClick() {
  ga('ec:addPromo', {
    'id': 'PROMO_1234',
    'name': 'Summer Sale',
    'creative': 'summer_banner2',
    'position': 'banner_slot1'
  });

  // Send the promo_click action with an event.
  ga('ec:setAction', 'promo_click');
  ga('send', 'event', 'Internal Promotions', 'click', 'Summer Sale');
}

promoFieldObject musi mieć wartość name lub id. Pozostałe wartości są opcjonalne i nie trzeba ich ustawiać.

Pełny przykład

Poniższe fragmenty kodu pokazują, jak za pomocą wtyczki Ulepszone e-commerce można mierzyć cykl życia e-commerce jednego produktu od pierwszego wyświetlenia do transakcji.

Pomiar wyświetleń produktu

W tym przykładzie użytkownik po raz pierwszy wyświetla produkt na liście wyników wyszukiwania. Aby zmierzyć wyświetlenie tego produktu, użyj polecenia ec:addImpression i podaj szczegóły produktu w impressionFieldObject:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

ga('ec:addImpression', {
  'id': 'P12345',                   // Product details are provided in an impressionFieldObject.
  'name': 'Android Warhol T-Shirt',
  'category': 'Apparel/T-Shirts',
  'brand': 'Google',
  'variant': 'black',
  'list': 'Search Results',
  'position': 1                     // 'position' indicates the product position in the list.
});

ga('ec:addImpression', {
  'id': 'P67890',
  'name': 'YouTube Organic T-Shirt',
  'category': 'Apparel/T-Shirts',
  'brand': 'YouTube',
  'variant': 'gray',
  'list': 'Search Results',
  'position': 2
});

ga('send', 'pageview');              // Send product impressions with initial pageview.

Pomiar kliknięcia produktu

Następnie użytkownik wyraża zainteresowanie danym produktem i klika informacje o nim, aby wyświetlić więcej szczegółów.

Do pomiaru kliknięcia produktu używaj tagów ec:addProduct i ec:setAction:

// Called when a link to a product is clicked.
function onProductClick() {
  ga('ec:addProduct', {
    'id': 'P12345',
    'name': 'Android Warhol T-Shirt',
    'category': 'Apparel',
    'brand': 'Google',
    'variant': 'black',
    'position': 1
  });
  ga('ec:setAction', 'click', {list: 'Search Results'});

  // Send click with an event, then send user to product page.
  ga('send', 'event', 'UX', 'click', 'Results', {
    hitCallback: function() {
      document.location = '/product_details?id=P12345';
    }
  });
}

Link do usługi może zostać zaimplementowany w ten sposób:

<a href="/next-page.html"
   onclick="onProductClick(); return !ga.loaded;">
  Android Warhol T-Shirt
</a>

Pomiar widoku szczegółów produktu

Po kliknięciu informacji o produkcie użytkownik wyświetla stronę ze szczegółami produktu.

Aby mierzyć ten widok szczegółów produktu, użyj właściwości ec:addProduct i ec:setAction do określenia działania detail:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

ga('ec:addProduct', {
  'id': 'P12345',
  'name': 'Android Warhol T-Shirt',
  'category': 'Apparel',
  'brand': 'Google',
  'variant': 'black'
});

ga('ec:setAction', 'detail');

ga('send', 'pageview');       // Send product details view with the initial pageview.

Pomiar dodania lub usunięcia z koszyka

Użytkownik wyraża zamiar zakupu produktu, dodając go do koszyka.

Aby mierzyć dodanie lub usunięcie produktu z koszyka, użyj funkcji ec:addProduct i ustaw typ add lub remove:

// Called when a product is added to a shopping cart.
function addToCart(product) {
  ga('ec:addProduct', {
    'id': product.id,
    'name': product.name,
    'category': product.category,
    'brand': product.brand,
    'variant': product.variant,
    'price': product.price,
    'quantity': product.qty
  });
  ga('ec:setAction', 'add');
  ga('send', 'event', 'UX', 'click', 'add to cart');     // Send data using an event.
}

Pomiary procesu płatności

Teraz użytkownik może rozpocząć proces płatności, który w tym przykładzie obejmuje 2 kroki, każdy na osobnej stronie:

  • Dodaj dane do płatności (payment.html).
  • Dodaj szczegóły dostawy (shipping.html).

W razie potrzeby sprawdź, czy w sekcji Ustawienia e-commerce w sekcji „Administracja” interfejsu internetowego masz prawidłowo skonfigurowaną ścieżkę płatności. Na przykład:

Ustawienia e-commerce w sekcji Administracja interfejsu internetowego Google Analytics. E-commerce jest włączony i dodano etykiety kroków ścieżki płatności: 1. szczegóły płatności; 2. Szczegóły dostawy
Rys. 2. Konfiguracja e-commerce – ścieżka płatności

Krok 1 - Płatność

Aby zmierzyć pierwszy krok procesu płatności, użyj właściwości ec:addProduct dla każdego produktu w koszyku oraz ec:setAction dla oznaczenia checkout. ec:setAction pobiera actionFieldObject, aby opisać krok płatności z liczbą i dodatkowymi informacjami o domyślnej formie płatności dla tego użytkownika, które zostały podane w polu option:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

/**
 * Called when the user begins the checkout process.
 * @param {Array} cart An array representing the user's shopping cart.
 */
function checkout(cart) {
  for(var i = 0; i < cart.length; i++) {
    var product = cart[i];
    ga('ec:addProduct', {
      'id': product.id,
      'name': product.name,
      'category': product.category,
      'brand': product.brand,
      'variant':  product.variant,
      'price': product.price,
      'quantity': product.qty
    });
  }
}

// In the case of checkout actions, an additional actionFieldObject can
// specify a checkout step and option.
ga('ec:setAction','checkout', {
    'step': 1,            // A value of 1 indicates this action is first checkout step.
    'option': 'Visa'      // Used to specify additional info about a checkout stage, e.g. payment method.
});
ga('send', 'pageview');   // Pageview for payment.html

Krok 2 - Wysyłka

Aby zmierzyć drugi etap procesu płatności, użyj właściwości ec:addProduct dla każdego produktu w koszyku oraz ec:setAction do wskazania przejścia do kasy. W tym przypadku nie mamy dodatkowych informacji o opcji dostawy wybranej podczas wysyłania początkowej odsłony, więc będziemy ją przetwarzać oddzielnie przy użyciu atrybutu ec:setAction, aby wskazać właściwość checkout_option.

// Measure checkout step 2:
ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

/**
 * Called when the user begins the checkout process.
 * @param {Array} cart An array representing the user's shopping cart.
 */
function checkout(cart) {
  for(var i = 0; i < cart.length; i++) {
    var product = cart[i];
    ga('ec:addProduct', {
      'id': product.id,
      'name': product.name,
      'category': product.category,
      'brand': product.brand,
      'variant':  product.variant,
      'price': product.price,
      'quantity': product.qty
    });
  }
}

ga('ec:setAction','checkout', {'step': 2});
ga('send', 'pageview');     // Pageview for shipping.html


// Called when user has completed shipping options.
function onShippingComplete(stepNumber, shippingOption) {
  ga('ec:setAction', 'checkout_option', {
    'step': stepNumber,
    'option': shippingOption
  });

  ga('send', 'event', 'Checkout', 'Option', {
     hitCallback: function() {
       // Advance to next page.
     }
  });
}

Formularz można zaimplementować w następujący sposób:

<a href="/next-page.html"
   onclick="onShippingComplete(2, 'FedEx'); return !ga.loaded;">
  Continue
</a>

Pomiar transakcji

Na koniec użytkownik realizuje proces płatności i przesyła zakup.

Aby mierzyć sprzedaż co najmniej jednego produktu, dodaj każdy z nich za pomocą polecenia ec:addProduct, a potem użyj funkcji ec:setAction, aby określić purchase. Informacje na poziomie transakcji, takie jak łączne przychody, podatki itp., można określić za pomocą właściwości actionFieldObject. Na przykład:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

ga('ec:addProduct', {
  'id': 'P12345',
  'name': 'Android Warhol T-Shirt',
  'category': 'Apparel',
  'brand': 'Google',
  'variant': 'black',
  'price': '29.20',
  'quantity': 1
});

// Transaction level information is provided via an actionFieldObject.
ga('ec:setAction', 'purchase', {
  'id': 'T12345',
  'affiliation': 'Google Store - Online',
  'revenue': '37.39',
  'tax': '2.85',
  'shipping': '5.34',
  'coupon': 'SUMMER2013'    // User added a coupon at checkout.
});

ga('send', 'pageview');     // Send transaction data with initial pageview.

Określanie walut lokalnych

Domyślnie w interfejsie internetowym zarządzania Google Analytics możesz skonfigurować wspólną, globalną walutę dla wszystkich transakcji i elementów. Domyślnie we wszystkich elementach i transakcjach używana jest waluta globalna. W przypadku witryn, które realizują transakcje w wielu walutach, wtyczka e-commerce umożliwia określenie lokalnej waluty transakcji.

Walutę lokalną należy podać w standardzie ISO 4217. Pełną listę obsługiwanych walut do konwersji znajdziesz na stronie Informacje o kodach walut.

Waluty lokalne są określane za pomocą właściwości skryptu śledzenia currencyCode. Na przykład ten tracker przesyła wartości walut w euro:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

ga('set', 'currencyCode', 'EUR'); // Set currency to Euros.

ga('ec:addProduct', {
  'id': 'P12345',
  'name': 'Android Warhol T-Shirt',
  'category': 'Apparel',
  'brand': 'Google',
  'variant': 'black',
  'price': '21.89',
  'quantity': 1
});

ga('ec:setAction', 'purchase', {
  id: 'T12345',
  affiliation: 'Google Store - Online',
  revenue: '28.03',
  tax: '2.14',
  shipping: '4.00',
  coupon: 'SUMMER2013'
});

ga('send', 'pageview');