2016-08-02 14 views
9

Sprawdzam wydajność mojej aplikacji Android za pomocą zestawu SDK google-analytics. Stworzyłem Wrappera, którego używam do wysyłania haseł (i działa) i wyjątków (działa również). Po prostu nie mogę działać z danymi e-commerce.Brakujące dane na stronie ulepszonej analityki e-commerce w Androidzie

W celu wysyłania danych ecommerce i stworzyć produkt i 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"); 

a następnie

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

ciało wspomniany sposób jest

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

Teraz Spodziewałbym się, że dane przepłyną przez analitykę (i tak, ja ch wyliczyłem logi adb), ale nie widzę ich w internetowym interfejsie analitycznym.

To co widzę na interfejsie analityki internetowej:

Google Analytics view of e-commerce

Jak widać tylko kolumna który dostał danych jest „Koszyk do szczegółów Rate” jeden. Ale jak mogę uzyskać stawkę koszyka do detalów, jeśli nie mam żadnych danych w żadnej innej kolumnie?

To był ekran "wydajności produktu". Jest to „lista wydajność produktu”:

produce list performance

wszystkie pozostałe kolumny są 0, jak również. Dlaczego lista zawierała akcje "dodaj do koszyka", ale nie pozostałe?

+0

używać zdarzenia zamiast ustawiać nazwę ekranu dla każdego produktu – HourGlass

+0

Wydaje mi się, że - aby móc używać produktów i ProductActions w handlu elektronicznym - powinienem używać ScreenViewBuilder: https://developers.google.com/analytics/devguides/collection/android/v4/enhanced-ecommerce –

+0

Ok, rozumiem co masz na myśli. Próbowałem z HitBuilders.EventBuilder builder = new HitBuilders.EventBuilder() .addProduct (produkt) .setProductAction (productAction) .addImpression (product, checkoutStepName); ale wciąż nie dostaję niczego na karcie e-commerce w analitykach. –

Odpowiedz

1

Poniższy kod działa w mojej aplikacji. Śledziłem numer official transaction guide.

Znalazłem kilka różnic z twoimi. Na przykład. nazwa nazwy ekranowej, nie ustawiam go później na wartość null, nie ustawiam kroku kasowania, nie ustawiam niestandardowych wymiarów ani wyświetleń.

Zapraszam spróbować:

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 jest klasa, która zawiera tylko różne TrackingProduct które to dane mają być śledzone.

widzę ten śledzone przez sprawdzenie tutaj:

Google Analytics Ecommerce

Na przykład, widać sprzedawców dochodów i top.

+0

Dziękuję Fernando. Próbowałem z kodem i upraszczałem moje, ale - nadal - żadne dane nie przepływają przez e-commerce. : - / –