谷歌Analytics(分析)拿起错误的版本号我的Andr​​oid应用 [英] Google Analytics picking up wrong version number for my Android App

查看:431
本文介绍了谷歌Analytics(分析)拿起错误的版本号我的Andr​​oid应用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我加入谷歌Analytics(分析)在我的应用程序。当我去实时时间>概述我看到 1.0 应用程序版本。我的问题是在哪里被谷歌Analytics(分析)得到这个 1.0 的数量?

I am adding Google Analytics in my app. When I go to Real Time > Overview I see 1.0 under App Version. My question is where is Google Analytics getting this 1.0 number from?

这是我如何开始在Analytics(分析)的的onCreate()我启动活动的

This is how I am starting Analytics in the onCreate() of my Launcher Activity:

        analytics = GoogleAnalytics.getInstance(MainDrawerActivity.this);
        analytics.setLocalDispatchPeriod(1800);

        tracker = analytics.newTracker("UA-XXXXXX-X"); // Replace with actual tracker/property Id
        tracker.enableExceptionReporting(true);
        tracker.enableAdvertisingIdCollection(true);
        tracker.enableAutoActivityTracking(true);

我的项目中有多个摇篮文件。我粘贴他们都在这里:

My project has multiple gradle files. I am pasting them all here:

下面是我的摇篮文件,也是我的Andr​​oid清单: build.gradle :(对我的项目:XXX ...)

Here is my gradle file and also my Android Manifest: build.gradle: (for my Project: xxx...)

buildscript {
repositories {
    jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:1.1.3'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}
}

allprojects {
repositories {
    jcenter()
}
}

build.gradle :(对我的模块:应用程序)

build.gradle: (for my Module: app)

android {
compileSdkVersion 22
buildToolsVersion "22.0.0"

defaultConfig {
    applicationId "xxx.xxx.xxx"
    minSdkVersion 16
    targetSdkVersion 22
    versionCode 58
    versionName "2.0.13"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

compileOptions {
    encoding "UTF-8"
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
}
lintOptions {
    abortOnError false
}
}

build.gradle的模块:circularImageView (这是一个库项目)     应用插件:com.android.library

build.gradle for Module: circularImageView (this is a library project) apply plugin: 'com.android.library'

android {
compileSdkVersion 22
buildToolsVersion "22.0.0"

defaultConfig {
    minSdkVersion 11
    targetSdkVersion 19

    versionCode 60
    versionName "2.0.14"
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
    }
}
}

开始我的舱单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="xxx.xxxx.xxxxxxxx"
android:installLocation="internalOnly"
android:versionCode="58"
android:versionName="2.0.13" >

<uses-sdk
    android:minSdkVersion="16"
    android:targetSdkVersion="21" />

还有一点要注意的是 - 在1.0版本见过的,我是在Eclipse中,但是这是第一次,我在Android Studio,但我用的的摇篮方法添加谷歌分析到我的帐户。

Another point to note is that -- before the "1.0" version seen, I was in Eclipse but this is the first time I am on Android Studio but I used the Gradle Method to add Google Analytics to my account.

推荐答案

您可以使用它通过谷歌Analytics(分析)V4提供全球跟踪。在你开始你的应用程序中添加全局跟踪器,让我们有这样的结构,第一:

You can use global tracker which provided by Google Analytics v4. Before you starting to add global tracker within your apps, let's have this structure first:

app_tracker.xml

app_tracker.xml

<resources>
        <!-- The apps Analytics Tracking Id -->
        <string name="ga_trackingId">UX-XXXXXXXXX-X</string>
        <!-- Percentage of events to include in reports -->
        <string name="ga_sampleFrequency">100.0</string>
        <!-- Enable automatic Activity measurement -->
        <bool name="ga_autoActivityTracking">true</bool>
        <!-- catch and report uncaught exceptions from the app -->
        <bool name="ga_reportUncaughtExceptions">true</bool>
        <!-- How long a session exists before giving up -->
        <integer name="ga_sessionTimeout">-1</integer>
        <!-- If ga_autoActivityTracking is enabled, an alternate screen name can be specified to
        substitute for the full length canonical Activity name in screen view hit. In order to
        specify an alternate screen name use an <screenName> element, with the name attribute
        specifying the canonical name, and the value the alias to use instead. -->
        <screenName name="com.mypackage.example.MainActivity">Home Screen</screenName>
    </resources>


ecommerce_tracker.xml


ecommerce_tracker.xml

    <resources>
    <integer name="ga_sessionTimeout">60</integer>
    <!--  The following value should be replaced with correct property id. -->
    <string name="ga_trackingId">UX-XXXXXXXXX-X</string>
</resources>


global_tracker.xml


global_tracker.xml

<!-- enter your app's name -->
<string name="ga_appName">My App Name</string>
<!-- enter the current app's versionName -->
<string name="ga_appVersion">2.0.13</string>

<!-- the Local LogLevel for Analytics -->
<string name="ga_logLevel">verbose</string>
<!-- how often the dispatcher should fire -->
<integer name="ga_dispatchPeriod">30</integer>
<!-- Treat events as test events and don't send to google -->
<bool name="ga_dryRun">false</bool>
<!-- The screen names that will appear in reports -->
<screenName name="com.mypackage.example.MainActivity">Home Screen</screenName>


然后,创建一个新的Java类名为应用应用程序扩展它:


Then, create a new Java Class named App and extend it with Application:

import android.app.Application;
import com.google.android.gms.analytics.GoogleAnalytics;
import com.google.android.gms.analytics.Tracker;
import java.util.HashMap;

/**
 * Custom implementation of android.app.Application.&nbsp;The android:name attribute in the
 * AndroidManifest.xml application element should be the name of your class (".MyApp"). Android will
 * always create an instance of the application class and call onCreate before creating any other
 * Activity, Service or BroadcastReceiver.
 */
public class App extends Application {
    // The following line should be changed to include the correct property id.
    private static final String PROPERTY_ID = "UX-XXXXXXXXX-X";

    //Logging TAG
    private static final String TAG = "App";
    public static int GENERAL_TRACKER = 0;

    public enum TrackerName {
        APP_TRACKER, // Tracker used only in this app.
        GLOBAL_TRACKER, // Tracker used by all the apps from a company. eg: roll-up tracking.
        ECOMMERCE_TRACKER,
    }

    HashMap<TrackerName, Tracker> mTrackers = new HashMap<>();
    public App() {
        super();
    }
    public synchronized Tracker getTracker(TrackerName trackerId) {

        if (!mTrackers.containsKey(trackerId)) {
            GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
            Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(R.xml.app_tracker)
            : (trackerId == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(PROPERTY_ID)
            : analytics.newTracker(R.xml.ecommerce_tracker);
            mTrackers.put(trackerId, t);
        }
        return mTrackers.get(trackerId);
    }
}

改变你的清单slighlty:

Alter your manifest slighlty:

<application
    android:name=".App"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name">

    <meta-data android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />
    <!-- Google Analytics Version v4 needs this value for easy tracking -->
    <meta-data android:name="com.google.android.gms.analytics.globalConfigResource"
        android:resource="@xml/global_tracker" />

    <!-- Optionally, register AnalyticsReceiver and AnalyticsService to support background
     dispatching on non-Google Play devices -->
    <receiver android:name="com.google.android.gms.analytics.AnalyticsReceiver"
        android:enabled="true">
        <intent-filter>
            <action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" />
        </intent-filter>
    </receiver>
    <service android:name="com.google.android.gms.analytics.AnalyticsService"
        android:enabled="true"
        android:exported="false"/>

    <!-- Optionally, register CampaignTrackingReceiver and CampaignTrackingService to enable
         installation campaign reporting -->
    <receiver android:name="com.google.android.gms.analytics.CampaignTrackingReceiver"
        android:exported="true">
        <intent-filter>
            <action android:name="com.android.vending.INSTALL_REFERRER" />
        </intent-filter>
    </receiver>
    <service android:name="com.google.android.gms.analytics.CampaignTrackingService"
        android:enabled="true"/>

    <!-- ... -->
</application>

最后,打在 MainActivity 类跟踪器:

private Tracker tracker;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    tracker = ((App) getApplication()).getTracker(App.TrackerName.APP_TRACKER);
    tracker.setScreenName("Home Screen");
    tracker.send(new HitBuilders.EventBuilder().build());
    ...
}

@Override
protected void onStart() {
    super.onStart();
    GoogleAnalytics.getInstance(this).reportActivityStart(this);
}

@Override
protected void onStop() {
    GoogleAnalytics.getInstance(this).reportActivityStop(this);
    super.onStop();
}

瞧!谷歌Analytics(分析)被激活!欲了解更多信息,请参见:

Voila! Google Analytics are activated! For more information, see:

高级配置 - Android SDK中V4

谷歌Analytics(分析)SDK V4为Android - 入门

标签:

  • 在谷歌分析教程Android版
  • 在配置谷歌Analytics(分析)
  • 在谷歌Analytics(分析)V4
  • 在谷歌Analytics(分析)例如:

这篇关于谷歌Analytics(分析)拿起错误的版本号我的Andr​​oid应用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆