Ulepszony e-commerce to funkcja Google Analytics dostępna w usługach Universal Analytics, która umożliwia pomiar interakcji użytkowników z produktami w ramach różnych zakupów. Może to obejmować wyświetlenia produktów, kliknięcia produktów, wyświetlenia szczegółów produktu, dodawanie produktów do koszyka, inicjowanie płatności, transakcje, a także zwroty środków.
Najnowsze wersje Menedżera tagów Google i Google Analytics do aplikacji mobilnych współpracują z Firebase, platformą Google do aplikacji mobilnych. Podczas pomiaru aplikacji za pomocą pakietu SDK Firebase uzyskasz dostęp do wielu generowanych automatycznie raportów o aplikacjach mobilnych, które możesz dodatkowo dostosowywać i uzupełniać kodem aplikacji. Te raporty będą automatycznie zawierać dane o zakupach w aplikacji przetwarzanych przez App Store w iTunes i Google Play. Dodatkowe raporty e-commerce można generować, implementując sugerowane zdarzenia w aplikacjach e-commerce. Szczegółowe raporty na temat zakupów (tj. Ulepszony e-commerce) są obecnie dostępne tylko w usługach Universal Analytics.
Ten artykuł opisuje, jak używać Menedżera tagów dla aplikacji na iOS w połączeniu z pakietem SDK Firebase, aby wysyłać ulepszone dane e-commerce do usług Universal Analytics. Użyj tej samej składni zdarzeń i parametrów, aby w przyszłości przygotować kolejne raporty e-commerce.
Pierwsze kroki
Zanim zaczniesz, skonfiguruj te wymagania wstępne:
- Zainstaluj i skonfiguruj w swojej aplikacji Firebase i Menedżera tagów Google. Upewnij się, że używasz pakietu SDK Firebase w wersji 11 lub nowszej.
- Skonfiguruj w kontenerze Menedżera tagów zmienną definiowaną przez użytkownika o nazwie „promocje” z tymi ustawieniami:
- Typ zdarzenia: parametr niestandardowy
- Klucz parametru zdarzenia: promocje
- Wartość domyślna: niezdefiniowana
Wdrażanie
W tych sekcjach znajdziesz informacje o tym, jak rejestrować zdarzenia z parametrami niezbędnymi do pomiaru działań Ulepszonego e-commerce, takich jak:
- Wyświetlenia produktów
- Kliknięcia lub zaznaczenia produktów
- Widoki szczegółów produktu
- Dodania do koszyka
- Usuwanie z koszyka
- Wyświetlenia promocji
- Liczba kliknięć/wybranych promocji
- Proces płatności
- Zakupy
- Zwroty środków
Wyświetlenia produktu
Mierz liczbę wyświetleń produktu, rejestrując zdarzenie z parametrem kFIRParameterItemID
i co najmniej jednym elementem (np. produktami) zdefiniowanym w odpowiednich polach.
// Define product with relevant parameters.
NSDictionary *product1 = @{
kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
kFIRParameterItemName : @"Android Jogger Sweatpants",
kFIRParameterItemCategory : @"Apparel/Men/Pants",
kFIRParameterItemVariant : @"Blue",
kFIRParameterItemBrand : @"Google",
kFIRParameterPrice : @39.99,
kFIRParameterCurrency : @"USD", // Item-level currency unused today.
kFIRParameterIndex : @1 // Position of the item in the list.
};
NSDictionary *product2 = @{
kFIRParameterItemID : @"sku5678", // ITEM_ID or ITEM_NAME is required.
kFIRParameterItemName : @"Android Capri",
kFIRParameterItemCategory : @"Apparel/Women/Pants",
kFIRParameterItemVariant : @"Black",
kFIRParameterItemBrand : @"Google",
kFIRParameterPrice : @35.99,
kFIRParameterCurrency : @"USD", // Item-level currency unused today.
kFIRParameterIndex : @2 // Position of the item in the list.
};
// Prepare ecommerce dictionary.
NSArray *items = @[product1, product2];
NSDictionary *ecommerce = @{
@"items" : items,
kFIRParameterItemList : @"Search Results" // List name.
};
// Log select_content event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventViewSearchResults
parameters:ecommerce];
Zobacz konfigurację tagu w tym przykładzie:
- Typ tagu: Universal Analytics
- Typ śledzenia: Wyświetlenie ekranu
- Pola do ustawienia: (nazwa pola) nazwa ekranu (wartość, np.) Ekran wyników wyszukiwania
- Włączanie funkcji Ulepszonego e-commerce: Prawda
- Odczyt danych z: zdarzenia Firebase
- Wyzwalacz, np.: (Niestandardowe > Niektóre zdarzenia) Nazwa zdarzenia równa się view_search_results
Kliknięcia i zaznaczenia produktu
Mierz kliknięcia produktu, zapisując zdarzenie kFIREventSelectContent
z elementem (np. produktem) zdefiniowanym w odpowiednich polach:
// Define product with relevant parameters.
NSDictionary *product1 = @{
kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
kFIRParameterItemName : @"Android Jogger Sweatpants",
kFIRParameterItemCategory : @"Apparel/Men/Pants",
kFIRParameterItemVariant : @"Blue",
kFIRParameterItemBrand : @"Google",
kFIRParameterPrice : @39.99,
kFIRParameterCurrency : @"USD", // Item-level currency unused today.
kFIRParameterIndex : @1 // Position of the item in the list.
};
// Prepare ecommerce dictionary.
NSArray *items = @[product1];
NSDictionary *ecommerce = @{
@"items" : items,
kFIRParameterItemList : @"Search Results" // List name.
};
// Log select_content event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventSelectContent
parameters:ecommerce];
Zobacz konfigurację tagu w tym przykładzie:
- Typ tagu: Universal Analytics
- Typ śledzenia: Zdarzenie
- Kategoria zdarzenia, np.: E-commerce
- Akcja zdarzenia, np. kliknięcie produktu
- Włączanie funkcji Ulepszonego e-commerce: Prawda
- Odczyt danych z: zdarzenia Firebase
- Wyzwalacz, np.: (Niestandardowe > Niektóre zdarzenia) Nazwa zdarzenia równa się select_content AND {{promotions}} równa się nieokreślone
Widoki szczegółów produktu
Mierz wyświetlenia szczegółów produktu, rejestrując zdarzenie kFIREventViewItem
z elementem (np. produktem) zdefiniowanym w odpowiednich polach:
// Define product with relevant parameters.
NSDictionary *product1 = @{
kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
kFIRParameterItemName : @"Android Jogger Sweatpants",
kFIRParameterItemCategory : @"Apparel/Men/Pants",
kFIRParameterItemVariant : @"Blue",
kFIRParameterItemBrand : @"Google",
kFIRParameterPrice : @39.99,
kFIRParameterCurrency : @"USD", // Item-level currency unused today.
};
// Prepare ecommerce dictionary.
NSArray *items = @[product1];
NSDictionary *ecommerce = @{
@"items" : items,
kFIRParameterItemList : @"Search Results" // List name.
};
// Log view_item event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventViewItem
parameters:ecommerce];
Zobacz konfigurację tagu w tym przykładzie:
- Typ tagu: Universal Analytics
- Typ śledzenia: Wyświetlenie ekranu
- Pola do ustawienia: (nazwa pola) nazwa ekranu (wartość, np.) Ekran ze szczegółami usługi
- Włączanie funkcji Ulepszonego e-commerce: Prawda
- Odczyt danych z: zdarzenia Firebase
- Wyzwalacz, np.: (Niestandardowe > Niektóre zdarzenia) Nazwa zdarzenia równa się view_item ORAZ
- {{promocje}} równa się nieokreślone
Dodatki do koszyka
Mierz możliwość dodawania produktów do koszyka, rejestrując zdarzenie kFIREventAddToCart
z elementem (takim jak produkt) zdefiniowanym w odpowiednich polach:
/// Define product with relevant parameters.
NSDictionary *product1 = @{
kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
kFIRParameterItemName : @"Android Jogger Sweatpants",
kFIRParameterItemCategory : @"Apparel/Men/Pants",
kFIRParameterItemVariant : @"Blue",
kFIRParameterItemBrand : @"Google",
kFIRParameterPrice : @39.99,
kFIRParameterCurrency : @"USD", // Item-level currency unused today.
kFIRParameterQuantity : @1
};
// Prepare ecommerce dictionary.
NSArray *items = @[product1];
NSDictionary *ecommerce = @{
@"items" : items
};
// Log add_to_cart event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventAddToCart
parameters:ecommerce];
Zobacz konfigurację tagu w tym przykładzie:
- Typ tagu: Universal Analytics
- Typ śledzenia: Zdarzenie
- Kategoria zdarzenia, np.: E-commerce
- Akcja zdarzenia, np. : dodanie do koszyka
- Włączanie funkcji Ulepszonego e-commerce: Prawda
- Odczyt danych z: zdarzenia Firebase
- Wyzwalacz, np.: (Niestandardowe > Niektóre zdarzenia) Nazwa zdarzenia równa się add_to_cart
Usunięcie z koszyka
Mierz możliwość usunięcia produktu z koszyka, rejestrując zdarzenie kFIREventRemoveFromCart
zawierające element (tj. produkt) zdefiniowany za pomocą odpowiednich pól:
// Define product with relevant parameters.
NSDictionary *product1 = @{
kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
kFIRParameterItemName : @"Android Jogger Sweatpants",
kFIRParameterItemCategory : @"Apparel/Men/Pants",
kFIRParameterItemVariant : @"Blue",
kFIRParameterItemBrand : @"Google",
kFIRParameterPrice : @39.99,
kFIRParameterCurrency : @"USD", // Item-level currency unused today.
kFIRParameterQuantity : @1
};
// Prepare ecommerce dictionary.
NSArray *items = @[product1];
NSDictionary *ecommerce = @{
@"items" : items
};
// Log remove_from_cart event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventRemoveFromCart
parameters:ecommerce];
Zobacz konfigurację tagu w tym przykładzie:
- Typ tagu: Universal Analytics
- Typ śledzenia: Zdarzenie
- Kategoria zdarzenia, np.: E-commerce
- Akcja zdarzenia, np. : usunięcie z koszyka
- Włączanie funkcji Ulepszonego e-commerce: Prawda
- Odczyt danych z: zdarzenia Firebase
- Wyzwalacz, np.: (Niestandardowe > Niektóre zdarzenia) Nazwa zdarzenia równa się delete_from_cart
Wyświetlenia promocji
Mierz liczbę wyświetleń promocji, rejestrując zdarzenie kFIREventViewItem
z elementem promocji zdefiniowanym w odpowiednich polach:
/// Define promotion with relevant parameters.
NSDictionary *promotion = @{
kFIRParameterItemID : @"PROMO_1234", // promotion ID; either ITEM_ID or ITEM_NAME is.
kFIRParameterItemName : @"Summer Sale", // promotion name.
kFIRParameterCreativeName : @"summer_banner2",
kFIRParameterCreativeSlot : @"banner_slot1"
};
// Prepare ecommerce dictionary.
NSArray *promotions = @[promotion];
NSDictionary *ecommerce = @{
@"promotions" : promotions
};
// Log view_item, view_item_list, or view_search_results
// event with ecommerce bundle.
[FIRAnalytics logEventWithName:kFIREventViewItem
parameters:ecommerce];
Zobacz konfigurację tagu w tym przykładzie:
- Typ tagu: Universal Analytics
- Typ śledzenia: Zdarzenie
- Kategoria zdarzenia, np.: Promocja wewnętrzna
- Akcja zdarzenia, np.: Wyświetlenie
- Działanie niezwiązane z interakcją: prawda
- Włączanie funkcji Ulepszonego e-commerce: Prawda
- Odczyt danych z: zdarzenia Firebase
- Wyzwalacz, np.: (Niestandardowe > Niektóre zdarzenia) Nazwa zdarzenia równa się view_item ORAZ
- {{promocje}} nie równa się niezdefiniowane
Kliknięcia/wybrane materiały promocyjne
Mierz liczbę kliknięć promocji, rejestrując zdarzenie kFIREventSelectContent
z promocją zdefiniowaną za pomocą odpowiednich pól:
// Define promotion with relevant parameters.
NSDictionary *promotion = @{
kFIRParameterItemID : @"PROMO_1234", // promotion ID; either ITEM_ID or ITEM_NAME is required.
kFIRParameterItemName : @"Summer Sale", // promotion name.
kFIRParameterCreativeName : @"summer_banner2",
kFIRParameterCreativeSlot : @"banner_slot1"
};
// Prepare ecommerce dictionary.
NSArray *promotions = @[promotion];
// Set properties for the event to be shown in the Google Analytics (Firebase) reports.
// These properties will not impact the Universal Analytics reporting.
NSDictionary *ecommerce = @{
kFIRParameterItemID : @"PROMO_1234",
kFIRParameterContentType : @"Internal Promotions",
@"promotions" : promotions
};
// Log select_content, view_item_list, or view_search_results event with ecommerce bundle.
[FIRAnalytics logEventWithName:kFIREventSelectContent
parameters:ecommerce];
Zobacz konfigurację tagu w tym przykładzie:
- Typ tagu: Universal Analytics
- Typ śledzenia: Zdarzenie
- Kategoria zdarzenia, np.: Promocja wewnętrzna
- Akcja zdarzenia, np. : kliknięcie
- Włączanie funkcji Ulepszonego e-commerce: Prawda
- Odczyt danych z: zdarzenia Firebase
- Wyzwalacz, np.: (Niestandardowe > Niektóre zdarzenia) Nazwa zdarzenia równa się select_content AND {{promotions}} nie równa się niezdefiniowane
Proces płatności
Rozpoczęcie realizacji płatności
Mierz pierwszy etap procesu płatności, zapisując zdarzenie kFIREventBeginCheckout
z co najmniej jednym elementem (tj. produktami) zdefiniowanym za pomocą odpowiednich pól:
// Define products with relevant parameters.
NSDictionary *product1 = @{
kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
kFIRParameterItemName : @"Android Jogger Sweatpants",
kFIRParameterItemCategory : @"Apparel/Men/Pants",
kFIRParameterItemVariant : @"Blue",
kFIRParameterItemBrand : @"Google",
kFIRParameterPrice : @39.99,
kFIRParameterCurrency : @"USD", // Item-level currency unused today.
kFIRParameterQuantity : @1
};
// Prepare ecommerce dictionary.
NSArray *items = @[product1];
// Set checkout step and optional checkout option.
NSDictionary *ecommerce = @{
@"items" : items,
kFIRParameterCheckoutStep : @1, // Optional for first step.
kFIRParameterCheckoutOption : @"Visa" // Optional.
};
// Log BEGIN_CHECKOUT event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventBeginCheckout
parameters:ecommerce];
Zobacz konfigurację tagu w tym przykładzie:
- Typ tagu: Universal Analytics
- Typ śledzenia: Wyświetlenie ekranu
- Pola do ustawienia: (nazwa pola) nazwa ekranu (wartość, np.) Ekran koszyka
- Włączanie funkcji Ulepszonego e-commerce: Prawda
- Odczyt danych z: zdarzenia Firebase
- Wyzwalacz, np.: (Niestandardowe > Niektóre zdarzenia) Nazwa zdarzenia równa się start_checkout
Opcje płatności i wysyłki
Opcje płatności umożliwiają pomiar dodatkowych informacji o stanie procesu realizacji transakcji. Opcje płatności możesz mierzyć w ramach zdarzenia kroku płatności (jak pokazano powyżej) lub po wybraniu opcji przez użytkownika po zarejestrowaniu zdarzenia dla danego kroku płatności, które już zostało zarejestrowane.
Mierz opcje płatności po wykonaniu transakcji, rejestrując zdarzenie kFIREventCheckoutProgress
z odpowiednimi parametrami kFIRParameterCheckoutStep
i kFIRParameterCheckoutOption
:
// Define products with relevant parameters.
NSDictionary *product1 = @{
kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
kFIRParameterItemName : @"Android Jogger Sweatpants",
kFIRParameterItemCategory : @"Apparel/Men/Pants",
kFIRParameterItemVariant : @"Blue",
kFIRParameterItemBrand : @"Google",
kFIRParameterPrice : @39.99,
kFIRParameterCurrency : @"USD", // Item-level currency unused today.
kFIRParameterQuantity : @1
};
// Prepare ecommerce dictionary.
NSArray *items = @[product1];
// Set checkout step and optional checkout option.
NSDictionary *ecommerce = @{
@"items" : items,
kFIRParameterCheckoutStep : @2, // Optional for first step.
kFIRParameterCheckoutOption : @"Visa" // Optional.
};
// Log CHECKOUT_PROGRESS event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventCheckoutProgress
parameters:ecommerce];
Zobacz konfigurację tagu w tym przykładzie:
- Typ g: Universal Analytics
- Typ potwierdzenia: Zdarzenie
- Kategoria „ent”, np.: E-commerce
- Działanie, np. : Ustaw opcję płatności.
- możliwe funkcje Ulepszonego e-commerce: Prawda
- dane reklamy z: zdarzenie Firebase
- Wyzwalacz, np.: (Niestandardowe > Niektóre zdarzenia) Nazwa zdarzenia równa się set_checkout_option
Zakupy
Mierz zakupy, rejestrując zdarzenie kFIREventEcommercePurchase
z co najmniej jednym elementem (tj. produktem) zdefiniowanym w odpowiednich polach:
// Define products with relevant parameters.
NSDictionary *product1 = @{
kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
kFIRParameterItemName : @"Android Jogger Sweatpants",
kFIRParameterItemCategory : @"Apparel/Men/Pants",
kFIRParameterItemVariant : @"Blue",
kFIRParameterItemBrand : @"Google",
kFIRParameterPrice : @39.99,
kFIRParameterCurrency : @"USD", // Item-level currency unused today.
kFIRParameterQuantity : @1
};
NSDictionary *product2 = @{
kFIRParameterItemID : @"sku5678", // ITEM_ID or ITEM_NAME is required.
kFIRParameterItemName : @"Android Capri",
kFIRParameterItemCategory : @"Apparel/Women/Pants",
kFIRParameterItemVariant : @"Black",
kFIRParameterItemBrand : @"Google",
kFIRParameterPrice : @35.99,
kFIRParameterCurrency : @"USD", // Item-level currency unused today.
kFIRParameterQuantity : @1
};
// Prepare ecommerce dictionary.
NSArray *items = @[product1, product2];
NSDictionary *ecommerce = @{
@"items" : items,
kFIRParameterItemList : @"Search Results", // List name.
kFIRParameterTransactionID : @"T12345",
kFIRParameterAffiliation : @"Google Store - Online",
kFIRParameterValue : @75.98, // Revenue.
kFIRParameterTax : @3.80,
kFIRParameterShipping : @5.34,
kFIRParameterCurrency : @"USD",
kFIRParameterCoupon : @"SUMMER2017"
};
// Log ecommerce_purchase event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventEcommercePurchase
parameters:ecommerce];
Zobacz konfigurację tagu w tym przykładzie:
- Typ tagu: Universal Analytics
- Typ śledzenia: Wyświetlenie ekranu
- Pola do ustawienia: (nazwa pola) nazwa ekranu (wartość, np.) Ekran z podziękowaniem
- Włączanie funkcji Ulepszonego e-commerce: Prawda
- Odczyt danych z: zdarzenia Firebase
- Wyzwalacz, np.: (Niestandardowe > Niektóre zdarzenia) Nazwa zdarzenia równa się ecommerce_purchase
Zwroty środków
Mierz zwrot środków, rejestrując zdarzenie kFIREventPurchaseRefund
z odpowiednim identyfikatorem transakcji i opcjonalnie (w przypadku częściowych zwrotów) co najmniej 1 produkt (np. produkty) zdefiniowany za pomocą identyfikatorów i ilości:
// (OPTIONAL) For partial refunds, define the item IDs and
// quantities of products being refunded.
NSDictionary *refundedProduct = @{
kFIRParameterItemID : @"sku1234", // Required for partial refund.
kFIRParameterQuantity : @1
};
// Prepare ecommerce bundle with transaction ID to be refunded.
NSDictionary *ecommerce = @{
@"items" : @[ refundedProduct ],
kFIRParameterTransactionID : @"T12345", // Required.
kFIRParameterValue : @75.98 // Optional in Universal Analytics.
};
// Log purchase_refund event with ecommerce.
[FIRAnalytics logEventWithName:kFIREventPurchaseRefund
parameters:ecommerce];
Zobacz konfigurację tagu w tym przykładzie:
- Typ tagu: Universal Analytics
- Typ śledzenia: Zdarzenie
- Kategoria zdarzenia, np.: E-commerce
- Akcja zdarzenia, np. Zwrot środków
- Włączanie funkcji Ulepszonego e-commerce: Prawda
- Odczyt danych z: zdarzenia Firebase
- Wyzwalacz, np.: (Niestandardowe > Niektóre zdarzenia) Nazwa zdarzenia równa się purchase_refund