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:
- Mesurer les activités d'e-commerce
- Mesurer les transactions
- Mesurer les remboursements
- Mesurer le processus de paiement
- Mesurer les promotions internes
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:
- Ajoutez un code de suivi pour mesurer chaque étape du processus de règlement.
- Le cas échéant, ajoutez un code de suivi pour mesurer les options de paiement.
- 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.
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());