Posted by Tim Bray on 05 May 2011 at 1:52 PM
[This post is by Jim Cotugno and Nick Mihailovski, engineers who work on
Google Analytics — Tim Bray]
Today we released a new version of the Google Analytics Android SDK which
includes support for tracking e-commerce transactions. This post walks you
through setting it up in your mobile application.
Why It’s Important
If you allow users to purchase goods in your application, you’ll want to
understand how much revenue your application generates as well as which products
are most popular.
With the new e-commerce tracking functionality in the Google Analytics
Android SDK, this is easy.
Before You Begin
In this post, we assume you’ve already configured the Google Analytics
Android SDK to work in your application. Check out
if you haven’t already.
We also assume you have a Google Analytics tracking object instance declared
in your code:
GoogleAnalyticsTracker tracker;
Then in the activity’s onCreate method, you have initialized the tracker
member variable and called start:
tracker = GoogleAnalyticsTracker.getInstance();
tracker.start("UA-YOUR-ACCOUNT-HERE", 30, this);
Setting Up The Code
The best way to track a transaction is when you’ve received confirmation for
a purchase. For example, if you have a callback method that is called when a
purchase is confirmed, you would call the tracking code there.
public void onPurchaseConfirmed(List purchases) {
// Use Google Analytics to record the purchase information here...
}
Tracking The Transaction
The Google Analytics Android SDK provides its own Transaction object to store
values Google Analytics collects. The next step is to copy the values from the
list of PurchaseObjects into a Transaction object.
The SDK’s Transaction object uses the builder pattern, where the constructor
takes the required arguments and the optional arguments are set using
setters:
Transaction.Builder builder = new Transaction.Builder(
purchase.getOrderId(),
purchase.getTotal())
.setTotalTax(purchase.getTotalTax())
.setShippingCost(purchase.getShippingCost()
.setStoreName(purchase.getStoreName());
You then add the transaction by building it and passing it to a Google
Analytics tracking Object:
tracker.addTransaction(builder.build());
Tracking Each Item
The next step is to track each item within the transaction. This is similar
to tracking transactions, using the Item class provided by the Google Analytics
SDK for Android. Google Analytics uses the OrderID as a common ID to associate a
set of items to it’s parent transaction.
Let’s say the PurchaseObject above has a list of one or more LineItem
objects. You can then iterate through each LineItem and create and add the item
to the tracker.
for (ListItem listItem : purchase.getListItems()) {
Item.Builder itemBuilder = new Item.Builder(
purchase.getOrderId(),
listItem.getItemSKU(),
listItem.getPrice(),
listItem.getCount())
.setItemCategory(listItem.getItemCategory())
.setItemName(listItem.getItemName());
// Now add the item to the tracker. The order ID is the key
// Google Analytics uses to associate this item to the transaction.
tracker.addItem(itemBuilder.build());
}
Sending the Data to Google Analytics
Finally once all the transactions and items have been added to the tracker,
you call:
tracker.trackTransactions();
This sends the transactions to the dispatcher, which will transmit the data
to Google Analytics.
Viewing The Reports
Once data has been collected, you can then log into the Google Analytics Web
Interface and go to the Conversions > Ecommerce > Product Performance
report to see how much revenue each product generated.
Here we see that many people bought potions, which generated the most revenue
for our application. Also, more people bought the blue sword than the red sword,
which could mean we need to stock more blue items in our application.
Awesome!
Learning More
You can learn more about the new e-commerce tracking feature in the developer documentation.
What’s even better is that we’ll be demoing all this new functionality this
year at Google IO, in the Optimizing Android Apps With Google
Analytics session.
阅读(511) | 评论(0) | 转发(0) |