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 App Invites:具有不同包名称/捆绑 ID 的 iOS 应用和 Android 应用 - 它们如何与 goo.gl/App Invites 关联?
Pyspark 和 BigQuery 在 Google Dataproc 中使用两个不同的项目 ID