我正在尝试以最简单的方式将Google Analytics连接到我的应用.我想实施分析v4,因为google说他们很快会强制升级到它,所以我不想做同样的工作两次.
在这种情况下,Google的教程效率不高.合并他们所说的和我在互联网上发现的内容,我已经采取了以下步骤:
<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" />
我不确定第二个元的必要性……
我写了一个名为“analytics.xml”(/ res / xml /)的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中,分析表明它已启动并点击……但在我的分析评论中,在“实时用户”下,表示零……
其他问题:
>需要xml文件中的screennames吗?
> ga_logLevel和ga_dryRun已弃用?因为logcat警告我那些资源不被识别
解决方法
设置Google Analytic v4的最简单方法是使用Java代码并从Application.onCreate()配置单个跟踪器.这也是配置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进行配置可以使编译器验证您的调用.使用代码配置您的Analytics也更快,因为它避免了XML解析开销.
屏幕名称是可选的.你可以坚持使用类名.您的报告将显示类名而不是更友好的人名,但更容易避免额外的映射.
自Google Play Services 7.0起,dryRun和logLevel不会折旧.您使用的名称不正确,提供的值不正确,将它们放在XML的错误部分.这是XML配置的问题.只有有限的运行时验证,并且容易出错并且没有注意到问题.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。