我尝试以最简单的方式将Google Analytics连接到我的应用。我想实施分析v4,因为谷歌表示他们很快会强制升级到它,所以我不想做同样的工作两次。
在这种情况下,谷歌的教程效率不高。合并他们在那里所说的内容以及我在互联网上发现的内容,我已经采取了以下措施:在Android Manifest中,我添加了此权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
,在Application标签下:
<meta-data android:name="com.google.android.gms.analytics.globalConfigResource"
android:resource="@xml/analytics" />
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
我不确定第二个元的必要性......
我写了一个名为&#34; analytics.xml&#34;的xml文件。 (/ res / xml /)包含:
<!-- the Local LogLevel for Analytics -->
<string name="ga_logLevel">verbose</string>
<!-- Treat events as test events and don't send to google -->
<bool name="ga_dryRun">false</bool>
<!-- <integer name="ga_sessionTimeout">300</integer> -->
<!-- Enable automatic Activity measurement -->
<bool name="ga_autoActivityTracking">true</bool>
<!-- Enable automatic exception tracking -->
<bool name="ga_reportUncaughtExceptions">true</bool>
<string name="ga_trackingId">UA-52900555-1</string>
<!-- The screen names that will appear in reports -->
<screenName name="com.maik.adbconnect.EmpityActivity">
Adb Activation
</screenName>
<screenName name="com.maik.adbconnect.wid_class">
Widget call
</screenName>
现在,在EmpityActivity.java中,我已经在onCreate方法的开头写了这个:
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
Tracker t = analytics.newTracker(R.xml.analytics);
t.send(new HitBuilders.AppViewBuilder().build());
在LogCat中,分析表明它已启动并点击......但在我的分析审核中,&#34;实时用户&#34;,表示零......
其他问题:
需要xml文件中的屏幕名称吗?
ga_logLevel和ga_dryRun已弃用?因为logcat警告我那些资源不被识别
答案 0 :(得分:6)
设置Google Analytic v4的最简单方法是使用Java代码并从Application.onCreate()配置单个跟踪器。这也是配置Google Analytics的最快,最安全的方法。你的代码看起来像这样:
public class MyApp extends Application {
private final String TRACKER_ID = "UA-54994796-4";
private static GoogleAnalytics analytics;
private static Tracker tracker;
public static GoogleAnalytics analytics() {return analytics;}
public static Tracker tracker() {return tracker;}
@Override
public void onCreate() {
super.onCreate();
analytics = GoogleAnalytics.getInstance(this);
analytics.getLogger().setLogLevel(Logger.LogLevel.VERBOSE);
tracker = analytics.newTracker("UA-00000000-1");
tracker.enableExceptionReporting(true);
tracker.enableAutoActivityTracking(true);
}
}
要从应用中的任何位置发送活动,您可以使用:
MyApp.tracker().send(new HitBuilders.EventBuilder(
"some category", " some action").build());
您还需要对ApplicationManifest.xml进行一些更改:
<manifest>
...
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
...
<application
android:name=".MyApp">
...
</application>
...
</manifest>
我不会使用任何XML配置文件,因为它很容易让XML配置错误。从Java配置可以使编译器验证您的调用。使用代码来配置分析也更快,因为它避免了XML解析开销。
屏幕名称是可选的。你可以坚持使用类名。您的报告将显示类名而不是更友好的人名,但更容易避免额外的映射。
自Google Play Services 7.0起,dryRun和logLevel不予折旧。您使用的名称不正确,提供的值不正确,将它们放在XML的错误部分。这是XML配置的问题。只有有限的运行时验证,并且容易出错并且没有注意到问题。