8

我已经实施了Firebase Analytics。它工作正常。我也希望使用Google Analytics。基于上述讨论here我已经包含在谷歌,services.json在Android应用中添加Firebase Analytics和Google Analytics(分析)

"analytics_service": { 
     "status": 2, 
     "analytics_property": { 
     "tracking_id": "<your tracking id>" 
     } 
    }, 

对于谷歌Analytics(分析)下面的对象,我有跟踪类

public class PuzzleGamesTracker extends Application { 

// The following line should be changed to include the correct property id. 
private static final String PROPERTY_ID = "<your tracking id>"; 

private Tracker mTracker; 


@Override 
protected void attachBaseContext(Context base) { 
    super.attachBaseContext(base); 
    MultiDex.install(this); 
} 

/** 
* Gets the default {@link Tracker} for this {@link Application}. 
* @return tracker 
*/ 
synchronized public Tracker getDefaultTracker() { 
    if (mTracker == null) { 
     GoogleAnalytics analytics = GoogleAnalytics.getInstance(this); 
     // To enable debug logging use: adb shell setprop log.tag.GAv4 DEBUG 
     mTracker = analytics.newTracker(R.xml.global_tracker); 
    } 
    return mTracker; 
} 

}

使用

public void sendToGoogleAnalytics(String arg) { 
    // TODO Auto-generated method stub 
    sendToFireBase(); 
    PuzzleGamesTracker application = (PuzzleGamesTracker) getApplication(); 
    Tracker mTracker = application.getDefaultTracker(); 

    mTracker.setScreenName(arg); 
    mTracker.send(new HitBuilders.AppViewBuilder().build()); 

} 

public void sendToFireBase() { 
    Bundle bundle = new Bundle(); 
    bundle.putString(FirebaseAnalytics.Param.ITEM_ID, "Test_Item 1A"); 
    bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, "Test_Name 1A"); 
    bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "Test_Image 1"); 
    mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle); 

    bundle.putString(FirebaseAnalytics.Param.ITEM_ID, "Test_Item B"); 
    bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, "Test_Name B"); 
    bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "Test_Image 1"); 
    mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle); 

    bundle.putString(FirebaseAnalytics.Param.ITEM_ID, "Test_Item 2A"); 
    bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, "Test_Name 2A"); 
    bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "Test_Image 2"); 
    mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle); 

} 

错误情景

如果我没有在google-services.json中包含下面的google analytics对象,那么Fire Base工作正常。

"analytics_service": { 
    "status": 2, 
    "analytics_property": { 
    "tracking_id": "<your tracking id>" 
    } 
}, 

当我包括谷歌分析对象在谷歌,services.json,然后我得到这个错误以下

Error:Execution failed for task ':android:mergeReleaseResources'. 
> [xml/global_tracker] C:\Users\android\build\generated\res\google- services\release\xml\global_tracker.xml [xml/global_tracker] C:\Users\android\res\xml\global_tracker.xml: Error: Duplicate resources 

问题 1.我需要删除ecommerce_tracker.xml和global_tracker.xml?已经是PuzzleGamesTracker类正在使用它。如何克服它? 2.请指导我,让我可以有两种FA和GA实现成功

+1

为什么您要实施两个相同的事情? – johnrao07

+0

他们不是一回事。我不是OP,但有同样的问题。我的一位客户要求我在应用中添加Google Analytics时添加FireBase分析功能。他们有他们的商业理由,他们应该能够并肩工作,毕竟这两者都是Google产品。 – breakline

回答

7

最后,我找到了答案添加这两种GA和FA

步骤1.删除了XML文件R.xml.global_tracker

第2步。替换mTracker = analytics.newTracker(R.xml.global_tracker);与 mTracker = analytics.newTracker(PROPERTY_ID);

第3步:添加在JSON文件 “analytics_service” 以下内容:{ “状态”:2, “analytics_property”:{ “TRACKING_ID”: “” }} ,

+0

google-services.json中的应用ID如何?我可以问你,你是如何创建Firebase项目的?我从其他关于此问题的SO问题中读到了答案。 http://stackoverflow.com/a/39323887/510577这需要你导入GA应用程序,而不是创建一个新的应用程序。是你的情况吗? –

+0

您需要Google Analytics(分析)ID,这是与Firebase项目ID不同的ID。在Google Analytics网站中创建一个新项目以获取“UA-XXXXXXXX-XX”ID。 – Pelanes

0

看起来很酷,但是应用ID是什么?我们是否需要应用ID才能跟踪Google和Firebase Analytics上的事件

+0

这应该是答案还是评论? – hering

+0

这应该是一条评论,但我没有权限在其他人的帖子上写评论! –