Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Missing data on Android enhanced e-commerce analytics page

I'm measuring my Android app checkout performance by using the google-analytics SDK. I created a Wrapper that I use in order to send hits (and it works) and exceptions (it works as well). I just can't make it work with eCommerce data.

In order to send ecommerce data i create a product and a 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");

and then

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

the body of said method is

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

Now, I'd expect data to flow through analytics (and it does, I checked the adb logs) but I can't see it in analytics web interface.

This is what I see on analytics web interface:

Google Analytics view of e-commerce

As you can see the only column which got data is the "Cart-to-Detail Rate" one. But how can I have a cart-to-detail rate if I don't have any data in any other column?

This was the "product performance" screen. This is the "Product list performance":

produce list performance

all other columns are 0 as well. Why did it list the "add to cart" actions but not the others?

like image 848
Marco Zanetti Avatar asked Aug 02 '16 15:08

Marco Zanetti


People also ask

Why is Google Analytics missing data?

Some rows in Google Ads reports have no session data A common reason for missing data is that you've linked a Google Ads account to a view for which some traffic has been filtered out.

What is enhanced ecommerce in Google Analytics?

Google Analytics Enhanced Ecommerce enables product impression, promotion, and sales data to be sent with any of your Google Analytics pageviews and events. Use pageviews to track product impressions and product purchases; and use events to track checkout steps and product clicks.

Can Google Analytics track ecommerce?

Ecommerce Tracking is a feature of Google Analytics that tracks shopping activity on your website. You can use it to track and analyze transaction data, revenue, products you've sold, and more. Ecommerce data in Google Analytics will give you specific insights into: Products with a high (or low) number of sales.


1 Answers

The following code is working on my app. I have followed the official transaction guide.

I found a few differences with yours. E.g. the name of the screen name, I don't set it to null later, I don't set the checkout step, I don't set custom dimensions nor impressions.

Feel free to try it:

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 is a class that just contains the various TrackingProduct which are data to be tracked.

I can see this tracked by checking here:

Google Analytics Ecommerce

For example, you will see revenue and top sellers.

like image 80
fernandospr Avatar answered Oct 06 '22 19:10

fernandospr