E-commerce avanzato Universal Analytics per iOS

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:

  1. Installa e configura Firebase e Google Tag Manager nella tua app. Assicurati di utilizzare la versione 11 o successiva dell'SDK Firebase per iOS.
  2. 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 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