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 la version 4 du SDK Google Analytics pour Android.

Présentation

L'e-commerce amélioré permet de mesurer les interactions des utilisateurs avec les produits sur l'ensemble de l'expérience d'achat, qui incluent les impressions et les clics sur les produits, l'affichage des détails des produits, l'ajout d'un produit au panier, ainsi que le processus de règlement, les transactions et les remboursements.

Implémentation

La mesure de l'e-commerce amélioré nécessite d'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

Une implémentation typique de l'e-commerce amélioré mesure les impressions de produit et l'une des actions suivantes:

  • Sélectionner un produit
  • Affichage des détails du produit.
  • Impressions et sélection de promotions internes
  • Ajout / suppression d'un produit du panier
  • Lancement du processus de règlement pour 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 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 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 l'action à exécuter.

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, vous pouvez combiner et mesurer ces données en 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. L'objet ProductAction fournit des informations sur les transactions, telles que le revenu total, les taxes et les frais de livraison.

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 mondiale commune pour toutes les transactions et tous les articles via l'interface Web de gestion Google Analytics.

La devise locale doit être spécifiée selon 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 compatibles.

Les devises locales sont spécifiées à l'aide de la propriété currencyTracker. Par exemple, cet outil de suivi enverra les valeurs en devises 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 une transaction entière, utilisez la méthode setProductAction avec un objet ProductAction afin de 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 afin de spécifier l'ID de la transaction, le ou les ID produit et les quantités des produits à 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 hors 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 normal des utilisateurs (c'est-à-dire qu'il n'est pas déclenché par l'utilisateur), nous vous recommandons d'envoyer un événement sans interaction. Cela permet d'éviter que certaines métriques ne soient 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());

Évaluation du processus de règlement

Pour mesurer chaque étape d'un processus de règlement:

  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 règlement.
  3. Vous pouvez éventuellement définir des noms d'étape faciles à utiliser pour le rapport sur les entonnoirs de paiement en configurant les paramètres d'e-commerce dans la section d'administration de l'interface Web.

1. Mesure des étapes de paiement

Pour chaque étape de votre processus de règlement, vous devez insérer le code de suivi correspondant pour envoyer des données à Google Analytics.

Champ Step

Vous devez inclure une valeur step pour chaque étape de règlement que vous mesurez. Cette valeur permet de mapper vos actions de règlement sur les étiquettes que vous avez configurées pour chaque étape dans les paramètres de commerce électronique.

Champ Option

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

Mesure d'une étape de règlement

Pour mesurer une étape de règlement, utilisez la méthode addProduct avec un objet Product afin d'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 step et option lors du règlement.

L'exemple suivant montre comment mesurer la première étape d'un processus de règlement, 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. Cette approche est utile dans les cas où vous avez mesuré une étape de règlement, mais que des informations supplémentaires sur cette même étape sont disponibles après qu'une 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 inclure le numéro de l'étape ainsi que la description de l'option.

Vous souhaiterez probablement mesurer cette action une fois que l'utilisateur aura effectué une action afin de passer à l'étape suivante du processus de règlement. 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 conversion

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

Paramètres d'e-commerce dans la section "Administration" de l'interface Web de Google Analytics. L'e-commerce est activé, et quatre libellés d'étape de l'entonnoir de paiement ont été ajoutés: 1. "Review Cart", 2. Collecte des 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 pour les promotions internes, comme les bannières affichées pour promouvoir une vente.

Impressions de la promotion

Les impressions de la promotion interne sont généralement mesurées avec le visionnage d'écran initial à 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

Les clics sur les promotions internes peuvent être mesurés à l'aide de la méthode addPromotion avec un objet Promotion et de la méthode setPromotionAction définie sur Promotion.ACTION_CLICK ou Promotion.ACTION_VIEW pour indiquer respectivement un clic sur une promotion ou une vue. 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());