E-commerce avanzato è una funzionalità di Google Analytics disponibile nelle proprietà Universal Analytics che consente di misurare le interazioni degli utenti con i prodotti in tutta l'esperienza di acquisto dell'utente. Ciò può includere impressioni, clic sui prodotti, visualizzazioni dei dettagli dei prodotti, aggiunta di articoli a un carrello degli acquisti, pagamento, transazioni e rimborsi.
Le ultime generazioni di Google Tag Manager e Google Analytics per le app per dispositivi mobili funzionano in combinazione con Firebase, la piattaforma per app per dispositivi mobili di Google. Durante la misurazione delle app con l'SDK Firebase, avrai accesso a una serie di report sulle app per dispositivi mobili generati automaticamente, che possono essere ulteriormente personalizzati e integrati dal codice in-app. Questi report includono automaticamente i dati sugli acquisti in-app elaborati dall'App Store su iTunes e Google Play. Puoi generare altri report relativi all'e-commerce implementando gli eventi suggeriti per le app di e-commerce. I report approfonditi sul comportamento di acquisto (ad es. e-commerce avanzato) sono attualmente disponibili solo nelle proprietà Universal Analytics.
Questo documento descrive come utilizzare Tag Manager per le app per iOS in combinazione con l'SDK Firebase per inviare dati di e-commerce avanzato alle proprietà Universal Analytics. La stessa sintassi di evento e parametro dovrebbe essere utilizzata per impostare la fase per ulteriori report di e-commerce in futuro.
Passaggi iniziali
Prima di iniziare, configura i seguenti prerequisiti per la tua app:
- Installa e configura Firebase e Google Tag Manager nella tua app. Assicurati di utilizzare la versione 11 o successiva dell'SDK Firebase per iOS.
- Configura una variabile definita dall'utente nel tuo contenitore Tag Manager denominata "promozioni", con le seguenti impostazioni:
- Tipo di evento: parametro personalizzato
- Chiave parametro evento: promozioni
- Valore predefinito: non definito
Implementazione
Le seguenti sezioni mostrano come registrare eventi con i parametri necessari per misurare le attività di e-commerce avanzato come:
- Impressioni del prodotto
- Clic/selezioni dei prodotti
- Visualizzazioni dei dettagli del prodotto
- Aggiunte al carrello
- Rimozioni dal carrello
- Impressioni promozione
- Clic/selezionazioni della promozione
- Procedura di pagamento
- Acquisti
- Rimborsi
Impressioni prodotto
Misura le impressioni dei prodotti registrando un evento con un parametro kFIRParameterItemID
e uno o più elementi (ovvero prodotti) definiti con i campi pertinenti.
// 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];
Per un esempio, consulta la configurazione dei tag:
- Tipo di tag: Universal Analytics
- Tipo di monitoraggio: visualizzazione di schermata
- Campi da impostare: (Nome campo) Nome schermata (valore, ad es.) Schermata Risultati di ricerca
- Attiva funzioni e-commerce avanzate: vero
- Lettura dei dati da: evento Firebase
- Attivatore, ad esempio: (Personalizzato > Alcuni eventi) Nome evento uguale a view_search_results
Clic/selezionazioni dei prodotti
Misura i clic sui prodotti registrando un evento kFIREventSelectContent
con un articolo
(ovvero un prodotto) definito con i campi pertinenti:
// 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];
Per un esempio, consulta la configurazione dei tag:
- Tipo di tag: Universal Analytics
- Tipo di monitoraggio: Evento
- Categoria evento, ad esempio: E-commerce
- Azione evento, ad es. : clic sul prodotto
- Attiva funzioni e-commerce avanzate: vero
- Lettura dei dati da: evento Firebase
- Attivatore, ad esempio: (Personalizzato > Alcuni eventi) Nome evento è uguale a select_content AND {{promotions}} è uguale a non definito
Viste dei dettagli dei prodotti
Misura le visualizzazioni dei dettagli del prodotto registrando un evento kFIREventViewItem
con un articolo (ovvero un prodotto) definito con i campi pertinenti:
// 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];
Per un esempio, consulta la configurazione dei tag:
- Tipo di tag: Universal Analytics
- Tipo di monitoraggio: visualizzazione di schermata
- Campi da impostare: (Nome campo) Nome schermata (valore, ad es.) Schermata Dettagli prodotto
- Attiva funzioni e-commerce avanzate: vero
- Lettura dei dati da: evento Firebase
- Attivatore, ad esempio: (Personalizzato > Alcuni eventi) Nome evento uguale a view_item E
- {{promozioni}} è uguale a non definito
Aggiunte al carrello
Misura un prodotto aggiunto a un carrello degli acquisti registrando un evento kFIREventAddToCart
con un articolo (ovvero un prodotto) definito con i campi pertinenti:
/// 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];
Per un esempio, consulta la configurazione dei tag:
- Tipo di tag: Universal Analytics
- Tipo di monitoraggio: Evento
- Categoria evento, ad esempio: E-commerce
- Azione evento, ad es. : Aggiungi al carrello
- Attiva funzioni e-commerce avanzate: vero
- Lettura dei dati da: evento Firebase
- Attivatore, ad esempio: (Personalizzato > Alcuni eventi) Nome evento uguale a add_to_cart
Rimozioni dal carrello
Misura un prodotto rimosso da un carrello degli acquisti registrando un evento kFIREventRemoveFromCart
con un elemento (ovvero un prodotto) definito con i campi pertinenti:
// 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];
Per un esempio, consulta la configurazione dei tag:
- Tipo di tag: Universal Analytics
- Tipo di monitoraggio: Evento
- Categoria evento, ad esempio: E-commerce
- Azione dell'evento, ad es. : rimozione dal carrello
- Attiva funzioni e-commerce avanzate: vero
- Lettura dei dati da: evento Firebase
- Attivatore, ad esempio: (Personalizzato > Alcuni eventi) Nome evento uguale a remove_from_cart
Impressioni promozione
Misura le impressioni di promozione registrando un evento kFIREventViewItem
con un
articolo promozionale con i campi pertinenti:
/// 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];
Per un esempio, consulta la configurazione dei tag:
- Tipo di tag: Universal Analytics
- Tipo di monitoraggio: Evento
- Categoria evento, ad esempio: Promozione interna
- Azione evento, ad esempio: Impressione
- Hit non interazione: vero
- Attiva funzioni e-commerce avanzate: vero
- Lettura dei dati da: evento Firebase
- Attivatore, ad esempio: (Personalizzato > Alcuni eventi) Nome evento uguale a view_item E
- {{promozioni}} non uguale a indefinito
Clic/selezionazioni promozione
Misura i clic sulle promozioni registrando un evento kFIREventSelectContent
con una promozione definita con i campi pertinenti:
// 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];
Per un esempio, consulta la configurazione dei tag:
- Tipo di tag: Universal Analytics
- Tipo di monitoraggio: Evento
- Categoria evento, ad esempio: Promozione interna
- Azione evento, ad es. : Clic
- Attiva funzioni e-commerce avanzate: vero
- Lettura dei dati da: evento Firebase
- Attivatore, ad esempio: (Personalizzato > Alcuni eventi) Nome evento è uguale a select_content AND {{promotions}} non è uguale a non definito
Procedura di pagamento
Inizio procedura di pagamento
Misura il primo passaggio di una procedura di pagamento registrando un
evento kFIREventBeginCheckout
con uno o più articoli (ovvero prodotti) definiti
nei campi pertinenti:
// 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];
Per un esempio, consulta la configurazione dei tag:
- Tipo di tag: Universal Analytics
- Tipo di monitoraggio: visualizzazione di schermata
- Campi da impostare: (Nome campo) Nome schermata (valore, ad es.) Schermata carrello
- Attiva funzioni e-commerce avanzate: vero
- Lettura dei dati da: evento Firebase
- Attivatore, ad esempio: (Personalizzato > Alcuni eventi) Nome evento uguale a start_checkout
Opzioni di checkout
Le opzioni di pagamento consentono di misurare informazioni aggiuntive sullo stato della procedura di pagamento. Puoi misurare le opzioni di pagamento nell'ambito di un evento del passaggio di pagamento (come mostrato sopra) o quando un utente seleziona un'opzione dopo che l'evento per un determinato passaggio di pagamento è già stato registrato.
Misura le opzioni di pagamento dopo una fase di pagamento registrando un evento kFIREventCheckoutProgress
con i parametri kFIRParameterCheckoutStep
e kFIRParameterCheckoutOption
corrispondenti:
// 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];
Per un esempio, consulta la configurazione dei tag:
- Tipo g: Universal Analytics
- Tipo di ACK: evento
- Categoria "ad": E-commerce
- ent Azione, ad es. : imposta opzione di pagamento
- Funzionalità e-commerce avanzate: vero
- Dati pubblicitari da: evento Firebase
- Attivatore, ad esempio: (Personalizzato > Alcuni eventi) Nome evento uguale a set_checkout_option
Acquisti
Misura gli acquisti registrando un evento kFIREventEcommercePurchase
con uno o più articoli (ovvero prodotti) definiti con i campi pertinenti:
// 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];
Per un esempio, consulta la configurazione dei tag:
- Tipo di tag: Universal Analytics
- Tipo di monitoraggio: visualizzazione di schermata
- Campi da impostare: (Nome campo) Nome schermata (valore, ad es.) Schermata di ringraziamento
- Attiva funzioni e-commerce avanzate: vero
- Lettura dei dati da: evento Firebase
- Attivatore, ad esempio: (Personalizzato > Alcuni eventi) Nome evento uguale a ecommerce_purchase
Rimborsi
Misura i rimborsi registrando un evento kFIREventPurchaseRefund
con l'ID transazione pertinente specificato e, facoltativamente (per i rimborsi parziali) uno o più articoli (ad esempio i prodotti) definiti con ID articolo e quantità:
// (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];
Per un esempio, consulta la configurazione dei tag:
- Tipo di tag: Universal Analytics
- Tipo di monitoraggio: Evento
- Categoria evento, ad esempio: E-commerce
- Azione evento, ad esempio rimborso
- Attiva funzioni e-commerce avanzate: vero
- Lettura dei dati da: evento Firebase
- Attivatore, ad esempio: (Personalizzato > Alcuni eventi) Nome evento è uguale a purchase_refund