Questo documento fornisce una panoramica su come misurare le azioni e le impressioni correlate all'e-commerce in-app con l'SDK di Google Analytics v4 per Android.
Panoramica
L'E-commerce avanzato consente di misurare le interazioni degli utenti con i prodotti nell'esperienza di acquisto dell'utente, che include impressioni dei prodotti, clic sui prodotti, visualizzazione dei dettagli dei prodotti, aggiunta di un prodotto a un carrello degli acquisti, avvio della procedura di pagamento, transazioni e rimborsi.
Implementazione
La misurazione dell'E-commerce avanzato richiede l'utilizzo della classe HitBuilder
e del relativo insieme di metodi per inviare i dati di e-commerce per prodotti, impressioni e promozioni. Viene inoltre fornito un insieme di classi di e-commerce di Google Analytics per creare informazioni relative all'e-commerce.
Con l'e-commerce avanzato puoi:
- Misurare le attività di e-commerce
- Misurare le transazioni
- Misurare i rimborsi
- Misurare il processo di pagamento
- Misurare le promozioni interne
Misurazione delle attività di e-commerce
Una tipica implementazione di e-commerce avanzato misurerà le impressioni dei prodotti e una qualsiasi delle seguenti azioni:
- Selezione di un prodotto.
- Visualizzazione dei dettagli del prodotto.
- Impressioni e selezione di promozioni interne.
- Aggiunta o rimozione di un prodotto da un carrello degli acquisti.
- Avvio della procedura di pagamento per un prodotto.
- Acquisti e rimborsi.
Misurazione delle impressioni
Per misurare un'impressione di prodotto, crea un oggetto Product
e invialo con un hit utilizzando il metodo addImpression
. Un elemento Product
deve avere un valore nome o ID. Tutti gli altri valori sono facoltativi e non devono essere impostati.
Product product = new Product() .setId("P12345") .setName("Android Warhol T-Shirt") .setCategory("Apparel/T-Shirts") .setBrand("Google") .setVariant("Black") .setPosition(1) .setCustomDimension(1, "Member"); HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder() .addImpression(product, "Search Results"); Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker( TrackerName.APP_TRACKER); t.setScreenName("searchResults"); t.send(builder.build());
Per maggiori dettagli sul metodo getTracker
, consulta
Configurazione avanzata.
Azioni di misurazione
Le azioni vengono misurate utilizzando il metodo addProduct
con un oggetto Product
per aggiungere dettagli del prodotto e il metodo setProductAction
con un oggetto ProductAction
per specificare l'azione da eseguire.
Ad esempio, il seguente codice misura la selezione di un prodotto visualizzato in un elenco di risultati di ricerca:
Product product = new Product() .setId("P12345") .setName("Android Warhol T-Shirt") .setCategory("Apparel/T-Shirts") .setBrand("Google") .setVariant("Black") .setPosition(1) .setCustomDimension(1, "Member"); ProductAction productAction = new ProductAction(ProductAction.ACTION_CLICK) .setProductActionList("Search Results"); HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder() .addProduct(product) .setProductAction(productAction); Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker( TrackerName.APP_TRACKER); t.setScreenName("searchResults"); t.send(builder.build());
Combinazione di impressioni e azioni
Nei casi in cui sono presenti sia impressioni del prodotto sia un'azione, è possibile combinarle e misurarle in un unico hit.
L'esempio seguente mostra come misurare una vista dei dettagli di un prodotto con una sezione di prodotti correlati:
// The product from a related products section. Product relatedProduct = new Product() .setId("P12346") .setName("Android Warhol T-Shirt") .setCategory("Apparel/T-Shirts") .setBrand("Google") .setVariant("White") .setPosition(1); // The product being viewed. Product viewedProduct = new Product() .setId("P12345") .setName("Android Warhol T-Shirt") .setCategory("Apparel/T-Shirts") .setBrand("Google") .setVariant("Black") .setPosition(1); ProductAction productAction = new ProductAction(ProductAction.ACTION_DETAIL); HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder() .addImpression(relatedProduct, "Related Products") .addProduct(viewedProduct) .setProductAction(productAction); Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker( TrackerName.APP_TRACKER); t.setScreenName("product"); t.send(builder.build());
Misurazione delle transazioni
Misura una transazione utilizzando il metodo addProduct
con un oggetto Product
per aggiungere i dettagli del prodotto e il metodo setProductAction
con un oggetto ProductAction
per specificare un'azione di acquisto. I dettagli a livello di transazione, come le entrate totali, le tasse e le spese di spedizione, sono forniti nell'oggetto ProductAction
.
Product product = new Product() .setId("P12345") .setName("Android Warhol T-Shirt") .setCategory("Apparel/T-Shirts") .setBrand("Google") .setVariant("black") .setPrice(29.20) .setCouponCode("APPARELSALE") .setQuantity(1); ProductAction productAction = new ProductAction(ProductAction.ACTION_PURCHASE) .setTransactionId("T12345") .setTransactionAffiliation("Google Store - Online") .setTransactionRevenue(37.39) .setTransactionTax(2.85) .setTransactionShipping(5.34) .setTransactionCouponCode("SUMMER2013"); HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder() .addProduct(product) .setProductAction(productAction); Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker( TrackerName.APP_TRACKER); t.setScreenName("transaction"); t.send(builder.build());
Specifica della valuta
Per impostazione predefinita, puoi configurare una valuta globale comune per tutte le transazioni e tutti gli articoli tramite l'interfaccia web di gestione di Google Analytics.
La valuta locale deve essere specificata nello standard ISO 4217
.
Leggi il documento di riferimento sui codici di valuta per un elenco completo delle valute di conversione supportate.
Le valute locali vengono specificate utilizzando la proprietà del tracker currencyCode. Ad esempio, questo tracker invia i valori di valuta come euro:
Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker( TrackerName.APP_TRACKER); t.setScreenName("transaction"); t.set("&cu", "EUR"); // Set tracker currency to Euros. t.send(builder.build());
Misurazione dei rimborsi
Per rimborsare un'intera transazione, utilizza il metodo setProductAction
con un oggetto ProductAction
per specificare l'ID transazione e un tipo di azione di rimborso:
// Refund an entire transaction. ProductAction productAction = new ProductAction(ProductAction.ACTION_REFUND) .setTransactionId("T12345"); // Transaction ID is only required field for a full refund. HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder() .setProductAction(productAction); Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker( TrackerName.APP_TRACKER); t.setScreenName("refund"); t.send(builder.build());
Se non viene trovata una transazione corrispondente, il rimborso non verrà elaborato.
Per misurare un rimborso parziale, utilizza il metodo setProductAction
con un oggetto ProductAction
per specificare l'ID transazione, gli ID prodotto e le quantità dei prodotti da rimborsare:
// Refund a single product. Product product = new Product() .setId("P12345") // Product ID is required for partial refund. .setQuantity(1); // Quanity is required for partial refund. ProductAction productAction = new ProductAction(ProductAction.ACTION_REFUND) .setTransactionId("T12345"); // Transaction ID is required for partial refund. HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder() .addProduct(product) .setProductAction(productAction); Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker( TrackerName.APP_TRACKER); t.setScreenName("refundProduct"); t.send(builder.build());
Usare gli eventi di non interazione per i rimborsi
Se devi inviare i dati di rimborso utilizzando un evento e quest'ultimo non rientra nel comportamento dell'utente misurato normalmente (ovvero non avviato dall'utente), ti consigliamo di inviare un evento non interazione. In questo modo eviterai che l'evento influisca su determinate metriche. Ad esempio:
// Refund an entire transaction. ProductAction productAction = new ProductAction(ProductAction.ACTION_REFUND) .setTransactionId("T12345"); HitBuilders.EventBuilder builder = new HitBuilders.EventBuilder() .setProductAction(productAction) .setNonInteraction(true) .setCategory("Ecommerce") .setAction("Refund"); Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker( TrackerName.APP_TRACKER); t.send(builder.build());
Misurazione del processo di pagamento
Per misurare ogni passaggio di una procedura di pagamento:
- Aggiungi il codice di monitoraggio per misurare ogni passaggio della procedura di pagamento.
- Se applicabile, aggiungi il codice di monitoraggio per misurare le opzioni di pagamento.
- (Facoltativo) Imposta nomi dei passaggi intuitivi per il report sulla canalizzazione di pagamento configurando Impostazioni e-commerce nella sezione di amministrazione dell'interfaccia web.
1. Misurazione dei passaggi di pagamento
Per ogni passaggio della procedura di pagamento, devi implementare il codice di monitoraggio corrispondente per inviare i dati a Google Analytics.
Campo Step
Per ogni passaggio di pagamento che misuri devi includere un valore step
. Questo valore viene utilizzato per mappare le azioni di pagamento alle
etichette configurate per ogni passaggio nelle Impostazioni e-commerce.
Campo Option
Se hai altre informazioni sul passaggio di pagamento specificato al momento della misurazione, puoi impostare il campo option
con un'azione checkout
per acquisire queste informazioni. Ad esempio, il tipo di pagamento predefinito per l'utente (come "Visa").
Misurazione di un passaggio di pagamento
Per misurare un passaggio di pagamento, utilizza il metodo addProduct
con un oggetto Product
per aggiungere i dettagli del prodotto e il metodo setProductAction
con un oggetto ProductAction
per indicare un'azione di pagamento. Se applicabile, puoi anche impostare
step
e option
con il pagamento.
L'esempio seguente mostra come misurare il primo passaggio di una procedura di pagamento, con un singolo prodotto, e alcune informazioni aggiuntive sul tipo di pagamento:
Product product = new Product() .setId("P12345") .setName("Android Warhol T-Shirt") .setCategory("Apparel/T-Shirts") .setBrand("Google") .setVariant("black") .setPrice(29.20) .setQuantity(1); // Add the step number and additional info about the checkout to the action. ProductAction productAction = new ProductAction(ProductAction.ACTION_CHECKOUT) .setCheckoutStep(1) .setCheckoutOptions("Visa"); HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder() .addProduct(product) .setProductAction(productAction); Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker( TrackerName.APP_TRACKER); t.setScreenName("checkoutStep1"); t.send(builder.build());
2. Misurazione delle opzioni di pagamento
Le opzioni di pagamento ti consentono di misurare informazioni aggiuntive sullo stato del pagamento. Questo è utile nei casi in cui hai misurato un passaggio di pagamento, ma sono disponibili informazioni aggiuntive sullo stesso passaggio dopo l'impostazione di un'opzione selezionata dall'utente. Ad esempio, l'utente seleziona un metodo di spedizione.
Per misurare un'opzione di pagamento, utilizza setAction
per indicare un'opzione di pagamento e includi il numero del passaggio e la descrizione dell'opzione.
Ti consigliamo di misurare questa azione dopo che l'utente ha eseguito un'azione per andare al passaggio successivo della procedura di pagamento. Ad esempio:
// (On "Next" button click.) ProductAction productAction = new ProductAction(ProductAction.ACTION_CHECKOUT_OPTIONS) .setCheckoutStep(1) .setCheckoutOptions("FedEx"); HitBuilders.EventBuilder builder = new HitBuilders.EventBuilder() .setProductAction(productAction) .setCategory("Checkout") .setAction("Option"); Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker( TrackerName.APP_TRACKER); t.send(builder.build()); // Advance to next page.
3. Configurazione della canalizzazione di pagamento
A ogni passaggio della procedura di pagamento può essere assegnato un nome descrittivo che verrà utilizzato nei report. Per configurare questi nomi, visita la sezione Amministrazione dell'interfaccia web di Google Analytics, seleziona la vista (profilo) e fai clic su Impostazioni e-commerce. Segui le istruzioni per la configurazione dell'e-commerce per etichettare ogni passaggio di pagamento che intendi monitorare.
Misurazione delle promozioni interne
L'E-commerce avanzato include il supporto per la misurazione delle impressioni e dei clic delle promozioni interne, ad esempio i banner visualizzati per promuovere una vendita.
Impressioni promozione
Le impressioni della promozione interna vengono generalmente misurate con la visualizzazione di schermata iniziale utilizzando il metodo addPromotion
con un oggetto Promotion
per specificare i dettagli della promozione. Ad esempio:
Promotion promotion = new Promotion() .setId("PROMO_1234") .setName("Summer Sale") .setCreative("summer_banner2") .setPosition("banner_slot1"); HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder() .addPromotion(promotion); Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker( TrackerName.APP_TRACKER); t.setScreenName("promotions"); t.send(builder.build());
Clic su promozione
I clic sulle promozioni interne possono essere misurati utilizzando il metodo addPromotion
con un oggetto Promotion
e il metodo setPromotionAction
impostato su Promotion.ACTION_CLICK
o Promotion.ACTION_VIEW
per indicare rispettivamente un clic o una visualizzazione della promozione. Ad esempio:
Promotion promotion = new Promotion() .setId("PROMO_1234") .setName("Summer Sale") .setCreative("summer_banner2") .setPosition("banner_slot1"); HitBuilders.EventBuilder builder = new HitBuilders.EventBuilder() .addPromotion(promotion) .setPromotionAction(Promotion.ACTION_CLICK) .setCategory("Internal Promotions") .setAction("click") .setLabel("Summer Sale"); Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker( TrackerName.APP_TRACKER); t.send(builder.build());