Google Analytcs: расширенное отслеживание электронной торговли для Android
Я пытался внедрить расширенное отслеживание электронной торговли, но независимо от того, что я делаю, веб-панель представления электронной торговли в Google Analytcs остается пустой, т. Е. Данные не отправляются (очевидно). Все остальные данные, экран и отслеживание событий работает как положено.
Я следую официальным инструкциям по установке Google Analytics и внедрению расширенного отслеживания электронной торговли. Вот мои настройки:
в классе MyApplication:
public class MyApplication extends Application {
private Tracker mTracker;
//....
synchronized public Tracker getDefaultTracker() {
if (mTracker == null) {
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
mTracker = analytics.newTracker(R.xml.global_tracker);
mTracker.set("&tid", GOOGLE_ANALYTICS_ID_VALUE);
}
return mTracker;
}
}
R.xml.global_tracker:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="ga_sessionTimeout">300</integer>
<bool name="ga_autoActivityTracking">false</bool>
<string name="ga_sampleFrequency">100.0</string>
<bool name="ga_reportUncaughtExceptions">true</bool>
<integer name="ga_dispatchPeriod">30</integer>
</resources>
в классе BaseActivity у меня есть метод trackEcommerce(), который я использую в соответствующих действиях / фрагментах:
public void trackEcommerce(){
String screenName = "eCommerce";
String transactionID = "transactionID"; //some randomized value
Double transactionRevenue = 0.0; //value of the transaction
Tracker t = ((MyApplication) getApplication()).getDefaultTracker();
//send products
for (MyEcommerceItem item : myEcommerceItems) {
Product product = new Product()
.setId(item.getSku())
.setName(item.getTitle())
.setCategory(item.getType())
.setPrice(item.getPrice())
.setQuantity(item.getQuantity());
HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder().addProduct(product);
t.setScreenName(screenName);
t.send(builder.build());
}
//send transaction
ProductAction productAction = new ProductAction(ProductAction.ACTION_CHECKOUT)
.setTransactionId(transactionID)
.setTransactionRevenue(transactionRevenue);
HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder().setProductAction(productAction);
t.setScreenName(screenName);
t.send(builder.build());
}
Очевидный вопрос, видите ли вы что-то, что я делаю неправильно / какие-то идеи о том, что мне нужно изменить?
1 ответ
Вы должны использовать отдельный трекер ecommerce_tracker вместо глобального трекера для электронной коммерции. https://developers.google.com/analytics/devguides/collection/android/v4/advanced
public class MyApplication extends Application {
private Tracker mDefaultTracker;
private Tracker mEcommerceTracker;
//....
synchronized public Tracker getDefaultTracker() {
if (mDefaultTracker == null) {
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
mDefaultTracker = analytics.newTracker(R.xml.global_tracker);
mDefaultTracker.set("&tid", GOOGLE_ANALYTICS_ID_VALUE);
}
return mDefaultTracker;
}
synchronized public Tracker getEcommerceTracker() {
if (mEcommerceTracker == null) {
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
mEcommerceTracker = analytics.newTracker(R.xml.ecommerce_tracker);
}
return mDefaultTracker;
}
}
R.xml.ecommerce_tracker
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="ga_sessionTimeout">60</integer>
<!-- The following value should be replaced with correct property id. -->
<string name="ga_trackingId">UA-XXXXXX-Y</string>
</resources>
Также попробуйте посмотреть, каковы выходы журнала. Вот как включить журналы от GA https://developers.google.com/android/reference/com/google/android/gms/analytics/Logger