Monitoraggio e-commerce avanzato

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:

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:

  1. Aggiungi il codice di monitoraggio per misurare ogni passaggio della procedura di pagamento.
  2. Se applicabile, aggiungi il codice di monitoraggio per misurare le opzioni di pagamento.
  3. (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.

Impostazioni e-commerce nella sezione Amministrazione dell'interfaccia web di Google Analytics. L'e-commerce è attivato ed sono state aggiunte
     4 etichette del passaggio della canalizzazione di pagamento: 1. Carrello delle recensioni, 2. Raccogliere i dati di pagamento, 3. Confermare i dettagli di acquisto, 4. Ricevuta
Figura 1: Impostazione e-commerce - Canalizzazione di pagamento

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());