Suivi de l'e-commerce amélioré

Ce document explique comment mesurer les actions et les impressions liées à l'e-commerce dans l'application avec le SDK Google Analytics v4 pour Android.

Présentation

L'e-commerce amélioré permet de mesurer les interactions des utilisateurs avec les produits tout au long de leur expérience d'achat, y compris les impressions, les clics sur les produits, l'affichage des informations détaillées sur les produits, l'ajout d'un produit à un panier, le lancement du processus de paiement, les transactions et les remboursements.

Implémentation

Pour mesurer l'e-commerce amélioré, vous devez utiliser la classe HitBuilder et son ensemble de méthodes pour envoyer des données d'e-commerce pour les produits, les impressions et les promotions. Un ensemble de classes d'e-commerce Google Analytics est également fourni pour créer des informations liées à l'e-commerce.

Grâce à l'e-commerce amélioré, vous pouvez:

Mesure des activités d'e-commerce

En général, une implémentation de l'e-commerce amélioré mesure les impressions de produits et les actions suivantes:

  • Sélectionner un produit
  • Affichage des informations détaillées sur le produit.
  • Impressions et sélection de promotions internes
  • Ajouter / supprimer un produit d'un panier
  • Lancer le processus de paiement d'un produit.
  • Achats et remboursements.

Mesure des impressions

Pour mesurer une impression de produit, créez un objet Product et envoyez-le avec un appel à l'aide de la méthode addImpression. Un élément Product doit avoir un nom ou une valeur d'ID. Toutes les autres valeurs sont facultatives et n'ont pas besoin d'être définies.

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

Pour en savoir plus sur la méthode getTracker, consultez la section Configuration avancée.

Mesure des actions

Les actions sont mesurées à l'aide de la méthode addProduct avec un objet Product pour ajouter des informations détaillées sur le produit, et de la méthode setProductAction avec un objet ProductAction pour spécifier l'action à effectuer.

Par exemple, le code suivant mesure la sélection d'un produit affiché dans une liste de résultats de recherche:

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

Combiner les impressions et les actions

Si vous enregistrez à la fois des impressions de produits et une action, il est possible de les combiner et de les mesurer dans un seul appel.

L'exemple ci-dessous montre comment mesurer une vue détaillée d'un produit avec une section de produits associés:

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

Mesurer les transactions

Mesurez une transaction en utilisant la méthode addProduct avec un objet Product pour ajouter des informations détaillées sur le produit, et la méthode setProductAction avec un objet ProductAction pour spécifier une action d'achat. Les détails au niveau de la transaction, comme le revenu total, les taxes et les frais de port, sont fournis dans l'objet 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());

Spécifier la devise

Par défaut, vous pouvez configurer une devise commune et globale pour l'ensemble des transactions et des articles via l'interface Web de gestion de Google Analytics.

La devise locale doit être spécifiée dans la norme ISO 4217. Consultez la documentation de référence sur les codes de devise pour obtenir la liste complète des devises de conversion acceptées.

Les devises locales sont spécifiées à l'aide de la propriété de suivi currencyCode. Par exemple, cet outil de suivi enverra des valeurs de devise en euros:

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

Mesure des remboursements

Pour rembourser l'intégralité d'une transaction, utilisez la méthode setProductAction avec un objet ProductAction pour spécifier l'ID de la transaction et un type d'action de remboursement:

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

Si aucune transaction correspondante n'est trouvée, le remboursement ne sera pas traité.

Pour mesurer un remboursement partiel, utilisez la méthode setProductAction avec un objet ProductAction pour spécifier l'ID de transaction, les ID produit et les quantités à rembourser:

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

Utiliser des événements sans interaction pour les remboursements

Si vous devez envoyer des données de remboursement à l'aide d'un événement et que celui-ci ne fait pas partie du comportement normalement mesuré de l'utilisateur (c'est-à-dire non déclenché par l'utilisateur), nous vous recommandons d'envoyer un événement non-interaction. Ainsi, certaines métriques ne seront pas affectées par l'événement. Exemple :

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

Mesure du processus de paiement

Pour mesurer chaque étape d'un processus de paiement:

  1. Ajoutez un code de suivi pour mesurer chaque étape du processus de règlement.
  2. Le cas échéant, ajoutez un code de suivi pour mesurer les options de paiement.
  3. Si vous le souhaitez, vous pouvez définir des noms d'étapes conviviaux pour le rapport sur les entonnoirs de paiement. Pour ce faire, configurez les paramètres d'e-commerce dans la section "Administration" de l'interface Web.

1. Mesurer les étapes du règlement

Pour chaque étape du processus de règlement, vous devez intégrer le code de suivi correspondant afin d'envoyer des données à Google Analytics.

Champ Step

Pour chaque étape de règlement que vous mesurez, vous devez inclure une valeur step. Cette valeur permet de mettre en correspondance vos actions de règlement avec les libellés que vous avez configurés pour chaque étape dans Paramètres d'e-commerce.

Champ Option

Si vous disposez d'informations supplémentaires sur l'étape de paiement donnée au moment où elle est mesurée, vous pouvez définir le champ option avec une action checkout pour capturer ces informations. Il peut s'agir, par exemple, du type de paiement par défaut de l'utilisateur (par exemple, "Visa").

Mesurer une étape de paiement

Pour mesurer une étape de paiement, utilisez la méthode addProduct avec un objet Product pour ajouter des informations détaillées sur le produit, et la méthode setProductAction avec un objet ProductAction pour indiquer une action de règlement. Le cas échéant, vous pouvez également définir des valeurs step et option lors du règlement.

L'exemple suivant montre comment mesurer la première étape d'un processus de paiement avec un seul produit et fournit des informations supplémentaires sur le type de paiement:

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. Mesure des options de paiement

Les options de paiement vous permettent de mesurer des informations supplémentaires sur l'état du règlement. Cela s'avère utile si vous avez mesuré une étape de règlement, mais que des informations supplémentaires sur la même étape de paiement sont disponibles une fois que l'option sélectionnée par l'utilisateur a été définie. Par exemple, l'utilisateur sélectionne un mode de livraison.

Pour mesurer une option de paiement, utilisez setAction pour indiquer une option de paiement et incluez le numéro de l'étape et la description de l'option.

Vous souhaiterez probablement mesurer cette action une fois que l'utilisateur aura effectué une action pour passer à l'étape suivante du processus de paiement. Exemple :

// (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. Configuration de l'entonnoir de paiement

Vous pouvez attribuer un nom descriptif à chaque étape du processus de paiement. Celui-ci sera utilisé dans les rapports. Pour configurer ces noms, accédez à la section Administration de l'interface Web Google Analytics, sélectionnez la vue (profil), puis cliquez sur Paramètres d'e-commerce. Suivez les instructions de configuration de l'e-commerce pour attribuer un libellé à chaque étape de règlement dont vous souhaitez effectuer le suivi.

Paramètres d'e-commerce dans la section "Administration" de l'interface Web Google Analytics L'e-commerce est activé, et quatre libellés d'étape de l'entonnoir de paiement ont été ajoutés: 1. Vérifier le panier 2. Collecter les informations de paiement, 3. Confirmez les détails de l'achat, 4. Reçu
Figure 1: Configuration de l'e-commerce - Entonnoir de paiement

Mesure des promotions internes

L'e-commerce amélioré permet de mesurer les impressions et les clics associés à des promotions internes, telles que les bannières affichées pour promouvoir une vente.

Impressions de la promotion

Les impressions de promotions internes sont généralement mesurées avec le visionnage initial de l'écran, à l'aide de la méthode addPromotion avec un objet Promotion pour spécifier les détails de la promotion. Exemple :

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

Nombre de clics sur la promotion

Vous pouvez mesurer les clics sur les promotions internes à l'aide de la méthode addPromotion avec un objet Promotion, et en définissant la méthode setPromotionAction sur Promotion.ACTION_CLICK ou Promotion.ACTION_VIEW pour indiquer respectivement un clic ou une vue de la promotion. Exemple :

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