iOS 中具有两个不同跟踪 ID 的 Google Analytics(目标 C)

Posted

技术标签:

【中文标题】iOS 中具有两个不同跟踪 ID 的 Google Analytics(目标 C)【英文标题】:Google Analytics with two different tracking id in iOS(objective C) 【发布时间】:2015-10-08 18:29:24 【问题描述】:

我有两个不同的跟踪 id UA-xxxx-1, UA-yyyy-2 必须实现以跟踪所有屏幕视图和该视图的事件操作,我已经浏览了所有提到的 goole doc 链接相关搜索: https://developers.google.com/analytics/devguides/collection/ios/v2/advanced 但这对我不起作用。

我的实现...我使用 3.13 版的谷歌分析 sdk 在 Appdelegate.m 中,

*-(Bool)didfinishLaunching 
im initializing the tracker,
// 1
[GAI sharedInstance].trackUncaughtExceptions = YES;     
// 2
[[GAI sharedInstance].logger setLogLevel:kGAILogLevelVerbose];     
// 3
[GAI sharedInstance].dispatchInterval = 20;     
// 4
id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"UA-XXXXXXX-Y"];
*
in the same class another method named GAItracking:
*-(void)gaiTracking
    id<GAI Tracker> tracker1 = [[GAI sharedInstance] trackerWithTrackingId:@"UA-XXXX-1"];

id<GAI Tracker> tracker2 = [[GAI sharedInstance] trackerWithName:@"Tracker2"
                                                     trackingId:@"UA-XXXX-2"];
id<GA Tracker> tracker = [[GAI sharedInstance] defaultTracker];

[tracker1 set:kGAIScreenName value:@"Home Screen"];
[tracker2 set:kGAIScreenName value:NSStringFromClass([self class])];

[tracker1 send:[[GAIDictionaryBuilder createScreenView] build]]; 
 [tracker2 send:[[GAIDictionaryBuilder createScreenView] build]];
*

在必须跟踪的视图中,我将屏幕视图设置为,

*id<GAITracker> defaultTracker = [[GAI sharedInstance] defaultTracker]; 
[defaultTracker send:[[[GAIDictionaryBuilder createScreenView]
                        set:@"Home Screen" forKey:kGAIScreenName] build]];*

但上述实现不适用于两个跟踪器 ID,而是仅适用于第一个跟踪器 ID。所以请指导我解决这个问题,以跟踪每个视图控制器中的两个 id。

【问题讨论】:

它不起作用的原因是因为它是一个单例......你不会找到解决这个问题的方法。您可能需要重新审视您的分析策略,因为这没有任何意义。 为什么需要向两个不同的 ID 报告? 一个 id 用于跟踪客户,另一个用于开发团队 能不能帮到你 【参考方案1】:

如果您出于某种原因想要分隔事件,而不是使用不同的跟踪 ID,请考虑使用事件类别:https://developers.google.com/analytics/devguides/collection/ios/v3/events

【讨论】:

我没有通过这个 evnt 实现得到我想要做的事情。我已经在视图控制器中使用了这个事件类别,我想跟踪特定事件,但我需要的是我想在同一个方法中传递两个不同的跟踪 id【参考方案2】:

您可以同时使用多个跟踪 ID,而无需使用默认跟踪器。 参考以下代码: 在 appdelegate.m 中执行此操作, 设置tracker1和tracker2 id为字符串,

tracker1 = UA-xxxx-1;
tracker2 = UA-xxxx-2;

然后有一个单独的方法,

-(void)globalTracking(Nsstring *)sendData
 if (tracker1) 
        [trackerGlobal send:[[[GAIDictionaryBuilder createScreenView]
                               set:screenName forKey:kGAIScreenName] build]];
    
    if (tracker2) 
        [trackerCustom send:[[[GAIDictionaryBuilder createScreenView]
                              set:screenName forKey:kGAIScreenName] build]];
    

现在从您要跟踪的视图控制器中, 创建appdelegate实例并调用方法globalTracking,

在视图控制器中:

AppDelegate *app = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    [app sendData:@"screenName"];

【讨论】:

以上是关于iOS 中具有两个不同跟踪 ID 的 Google Analytics(目标 C)的主要内容,如果未能解决你的问题,请参考以下文章

Google Analytics iOS:它如何跟踪用户?

Google App Invites:具有不同包名称/捆绑 ID 的 iOS 应用和 Android 应用 - 它们如何与 goo.gl/App Invites 关联?

分支机构未跟踪 Google 广告 ID

Pyspark 和 BigQuery 在 Google Dataproc 中使用两个不同的项目 ID

Google Analytics iOS - 没有跟踪 ID 来为 App+Web 媒体资源启用 IDFA 收集

同一页面上有多个 Google Analytics(分析)gtag 跟踪 ID