gpt4 book ai didi

java - Android - Google Analytics v4 命中生成但未发送

转载 作者:太空狗 更新时间:2023-10-29 15:28:16 27 4
gpt4 key购买 nike

我目前遇到了一个似乎很常见的问题,但我认为我看到它的原因源于其他原因。

02-18 12:00:13.854    3654-3672/com.mobileanalytics_test V/GAV4﹕ Thread[GAThread,5,main]: connecting to Analytics service
02-18 12:00:13.867 3654-3672/com.mobileanalytics_test V/GAV4﹕ Thread[GAThread,5,main]: connect: bindService returned true for Intent { act=com.google.android.gms.analytics.service.START cmp=com.google.android.gms/.analytics.service.AnalyticsService (has extras) }
02-18 12:00:13.872 3654-3672/com.mobileanalytics_test I/GAV4﹕ Thread[GAThread,5,main]: No campaign data found.
02-18 12:00:13.872 3654-3672/com.mobileanalytics_test V/GAV4﹕ Thread[GAThread,5,main]: Initialized GA Thread
02-18 12:00:13.873 3654-3672/com.mobileanalytics_test V/GAV4﹕ Thread[GAThread,5,main]: Loaded clientId
02-18 12:00:13.874 3654-3672/com.mobileanalytics_test V/GAV4﹕ Thread[GAThread,5,main]: putHit called
02-18 12:00:13.874 3654-3672/com.mobileanalytics_test V/GAV4﹕ Thread[GAThread,5,main]: Loaded clientId
02-18 12:00:13.874 3654-3672/com.mobileanalytics_test V/GAV4﹕ Thread[GAThread,5,main]: putHit called
02-18 12:00:13.876 3654-3654/com.mobileanalytics_test V/GAV4﹕ Thread[main,5,main]: service connected, binder: android.os.BinderProxy@<Redacted>
02-18 12:00:13.877 3654-3654/com.mobileanalytics_test V/GAV4﹕ Thread[main,5,main]: bound to service
02-18 12:00:13.878 3654-3654/com.mobileanalytics_test V/GAV4﹕ Thread[main,5,main]: Connected to service
02-18 12:00:13.890 3654-3672/com.mobileanalytics_test V/GAV4﹕ Thread[GAThread,5,main]: Sending hit to service PATH: <SNIP>
02-18 12:00:13.913 3654-3672/com.mobileanalytics_test V/GAV4﹕ Thread[GAThread,5,main]: Sending hit to service PATH: <SNIP>
02-18 12:09:23.372 3654-3672/com.mobileanalytics_test V/GAV4﹕ Thread[GAThread,5,main]: Loaded clientId
02-18 12:09:23.372 3654-3672/com.mobileanalytics_test V/GAV4﹕ Thread[GAThread,5,main]: putHit called
02-18 12:09:23.378 3654-3672/com.mobileanalytics_test V/GAV4﹕ Thread[GAThread,5,main]: Sending hit to service PATH: <SNIP>

这里让我担心的部分是,尽管在我的 global_tracker.xml 文件中配置为每 30 秒执行一次,但我从未看到我的调度触发。以下是所有相关代码,我已经查看了它以及我能找到的每个教程,但我找不到我做错了什么。

global_tracker.xml

 <?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="TypographyDashes">
<string name="ga_logLevel">verbose</string>
<int name="ga_dispatchPeriod">30</int>
<bool name="ga_dryRun">false</bool>
<string name="com.mobileanalytics_test.MainActivity">Test Activity Reporting</string>
</resources>

app_tracker.xml

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="TypographyDashes">
<string name="ga_trackingId">UA-XXXXXXXX-Y</string>
<string name="ga_sampleFrequency">100.0</string>
<bool name="ga_autoActivityTracking">true</bool>
<bool name="ga_reportUncaughtExceptions">true</bool>
<integer name="ga_sessionTimeout">-1</integer>
<screenName name="com.mobileanalytics_test.MainActivity">Test Activity Reporting</screenName>
</resources>

我的应用程序类.java

public class MyApplicationClass extends Application {

private static final String PROPERTY_ID = "UA-XXXXXXXX-Y";

public enum TrackerName {
APP_TRACKER,
GLOBAL_TRACKER
}

HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>();

synchronized Tracker getTracker(TrackerName trackerId) {
if (!mTrackers.containsKey(trackerId)) {

GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
//Tracker t = analytics.newTracker(R.xml.app_tracker);
Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(PROPERTY_ID)
: analytics.newTracker(R.xml.global_tracker);
//Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(PROPERTY_ID)
// : (trackerId == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(R.xml.global_tracker)
// : analytics.newTracker(R.xml.ecommerce_tracker);
mTrackers.put(trackerId, t);

}
return mTrackers.get(trackerId);

}
}

MainActivity.Java

public class MainActivity extends Activity {

Tracker tracker;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//GoogleAnalytics googleAnalytics = GoogleAnalytics.getInstance(this);
//tracker.start("UA-XXXXXXXX-Y");

//Get a Tracker (should auto-report)
tracker = ((MyApplicationClass) getApplication()).getTracker(MyApplicationClass.TrackerName.APP_TRACKER);

}

@Override
protected void onStart() {
super.onStart();
//Get an Analytics tracker to report app starts and uncaught exceptions etc.
tracker.send(new HitBuilders.EventBuilder("Test", "Load").build());
//GoogleAnalytics.getInstance(this).reportActivityStart(this);
}

@Override
protected void onStop() {
super.onStop();
//Stop the analytics tracking
GoogleAnalytics.getInstance(this).reportActivityStop(this);
}
}

我从昨天开始就大致在这个阶段工作,所以我正在测试“等待”解决方案。我正在查看“实时概览”,据我了解,我的点击应该会近乎实时地显示在那里,但我什么也没看到。我的目标是 API 21 - Android 5.0.1

欢迎任何提示!

最佳答案

在 Google Play 设备上运行时,Analytics SDK 将尝试连接到 Google Play 服务提供的分析服务,并将匹配发送到该服务。该服务提供了更可靠的交付机制,因为它不受应用程序进程生命周期的限制。使用 Analytics Service 时,本地调度间隔没有任何影响,应用程序点击会立即发送到服务。从您的日志看来,您已成功连接到该服务:

Thread[main,5,main]: service connected, binder: android.os.BinderProxy@...

并成功发送要由服务分派(dispatch)的命中:

Thread[GAThread,5,main]: Sending hit to service   PATH: <SNIP>

当 Analytics 服务连接失败时,您将看到一条日志消息,指出点击将根据本地调度间隔从应用程序进程中调度。当您的应用程序在非 Google Play 设备(如 Amazon Fire 手机或没有 Google Play 服务的模拟器)上运行或 Google Play 服务当前不可用(例如服务正在更新)时,就会发生这种情况。

关于java - Android - Google Analytics v4 命中生成但未发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28596503/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com