2016-08-02 13 views
9

Ich bewerte meine Android-App-Checkout-Leistung mit dem Google Analytics SDK. Ich habe einen Wrapper erstellt, den ich benutze, um Treffer (und es funktioniert) und Ausnahmen (es funktioniert auch) zu senden. Ich kann einfach nicht mit E-Commerce-Daten arbeiten.Fehlende Daten auf Android-Seite für erweiterte E-Commerce-Analysen

Um E-Commerce-Daten zu schicken i ein Produkt und ein productAction

Product product = new Product() 
      .setId(ID) 
      .setCategory(category) 
      .setBrand(brandID) 
      .setCustomDimension(1, typology) 
      .setCustomDimension(2, currency) 
      .setPrice(getTotal()) 
      .setQuantity(1); 
    // Add the step number and additional info about the checkout to the action. 
    ProductAction productAction = new ProductAction(ProductAction.ACTION_PURCHASE) 
      .setCheckoutStep(4) 
      .setCheckoutOptions("Perform payment"); 

und dann

sendEcommerceCheckoutStep(product, productAction, "performPayment", getApplicationContext())

der Körper des Verfahrens

public void sendEcommerceCheckoutStep(Product product, ProductAction productAction, String checkoutStepName, Context context) { 
     HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder() 
       .addProduct(product) 
       .setProductAction(productAction) 
       .addImpression(product, checkoutStepName); 

     mTracker.setScreenName(checkoutStepName); 
     mTracker.send(builder.build()); 
     mTracker.setScreenName(null); 
    } 

jetzt, Ich würde erwarten, dass Daten durch Analysen fließen (und das tut es, ich ch die adb logs), aber ich kann es nicht in analytics web interface sehen. Diese

ist, was ich sehe auf Analytics Web-Interface:

Google Analytics view of e-commerce

Wie Sie die einzige Spalte sehen kann, die Daten bekam die "Cart-Detail-Verhältnis" ein. Aber wie kann ich eine Warenkorb-Detail-Rate haben, wenn ich keine Daten in einer anderen Spalte habe?

Dies war der Bildschirm "Produktleistung". Dies ist die "Produktliste Performance":

produce list performance

alle anderen Spalten sind 0 als auch. Warum hat es die Aktionen "in den Warenkorb" aufgelistet, aber nicht die anderen?

+0

Verwenden Sie Ereignis statt Bildschirmname für jedes Produkt – HourGlass

+0

Es scheint mir, dass - um Produkte und ProductActions für E-Commerce zu verwenden - ich ScreenViewBuilder verwenden sollte: https://developers.google.com/analytics/devguides/collection/android/v4/enhanced-ecommerce –

+0

Ok, ich verstehe was du meinst. Ich habe versucht, mit HitBuilders.EventBuilder builder = new HitBuilders.EventBuilder() .addProduct (Produkt) .setProductAction (productAction) .addImpression (Produkt, checkoutStepName); aber ich bekomme immer noch nichts in der E-Commerce-Registerkarte von Analytics. –

Antwort

1

Der folgende Code funktioniert in meiner App. Ich habe die official transaction guide verfolgt.

Ich fand ein paar Unterschiede mit Ihren. Z.B. Der Name des Anzeigenamens, ich setze ihn später nicht auf Null, ich setze keinen Checkout-Schritt, ich setze keine benutzerdefinierten Dimensionen oder Impressions.

Fühlen Sie sich frei, es zu versuchen:

public void trackPurchase(@NonNull TrackingPurchase trackingPurchase) { 
    HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder(); 

    for (TrackingProduct trackingProduct : trackingPurchase.getTrackingProducts()) { 
     builder.addProduct(this.createProduct(trackingProduct)); 
    } 
    builder.setProductAction(this.createProductAction(trackingPurchase)); 

    googleAnalyticsTracker.setScreenName("transaction"); 
    googleAnalyticsTracker.set("&cu", "USD"); 
    googleAnalyticsTracker.send(builder.build()); 
} 

@NonNull 
private Product createProduct(@NonNull TrackingProduct trackingProduct) { 
    return new Product() 
      .setId(trackingProduct.getSku()) 
      .setName(trackingProduct.getName()) 
      .setCategory(trackingProduct.getCategory()) 
      .setPrice(trackingProduct.getPrice()) 
      .setQuantity(trackingProduct.getQuantity()); 
} 

@NonNull 
private ProductAction createProductAction(@NonNull TrackingPurchase trackingPurchase) { 
    return new ProductAction(ProductAction.ACTION_PURCHASE) 
      .setTransactionId(trackingPurchase.getSaleId()) 
      .setTransactionAffiliation("Android App") 
      .setTransactionRevenue(trackingPurchase.getRevenue()) 
      .setTransactionTax(0) 
      .setTransactionShipping(trackingPurchase.getShippingCost()) 
      .setTransactionCouponCode(trackingPurchase.getCouponCode()); 
} 

TrackingPurchase ist eine Klasse, die nur die verschiedenen TrackingProduct enthält, welche Daten verfolgt werden.

Ich kann das hier durch Überprüfung verfolgt sehen:

Google Analytics Ecommerce

Zum Beispiel werden Sie Einnahmen und Topsellern sehen.

+0

Danke Fernando. Ich habe es mit Ihrem Code versucht und meinen vereinfacht, aber - noch - keine Daten fließen durch den E-Commerce. : - / –