我正在尝试将 UTM 事件参数(我在应用程序中本地从不同来源获得)连同交易事件一起传递给 Google 跟踪代码管理器,以便能够将交易与事件相关联。我使用数据层发送数据:[self.tagManager.dataLayer push:combinedParameters] 在combinedParameters 中将事件设置为事务。
交易数据被正确跟踪,但在 Google Analytics(分析)网站中没有可见的相关事件数据,如 utm_source 、utm_medium 等。我在 combinedParameters 中传递所有这些。我还尝试使用 utm_source 等作为键并使用 kGAICampaignContent 通过 [self.tagManager.dataLayer pushValue:val forKey:key]; 发送它.
这些都没有真正奏效。没有文档(至少我能找到)有助于理解如何通过 GTM 传递 UTM 数据。唯一可用的是 Google Analytics在这种情况下不起作用。
任何帮助将不胜感激。
Best Answer-推荐答案 strong>
如果您只是将 SDK 视为 Measurement Protocol 的热门构建器,则更容易理解。
在 GTM 中,您可以添加 MP fields使用 更多设置> 要设置的字段下的设置添加到标签。要设置三个必需的广告系列参数(来源、媒介、名称),您需要添加以下字段:
字段名称:&cm
值(value):一些事件媒介
字段名称:&cs
值(value):一些事件来源
字段名称:&cn
值:一些事件名称
要为“some-campaign-*”设置动态值,您可以使用数据层变量将解析后的 URL 参数值拉入 GTM 的数据模型中。
因此,要解析传入的 URL,您可以利用 GA SDK 的 dataLayer 以及 GAIDictionaryBuilder 接口(interface)。
- (BOOL)applicationUIApplication *)application openURLNSURL *)url sourceApplicationNSString *)sourceApplication annotationid)annotation {
NSString *urlString = [url absoluteString];
GAIDictionaryBuilder *hitParams = [[GAIDictionaryBuilder alloc] init];
[hitParams setCampaignParametersFromUrl:urlString];
TAGDataLayer *dataLayer = [TAGManager instance].dataLayer;
if([hitParams get:kGAICampaignSource] && [hitParams get:kGAICampaignMedium] && [hitParams get:kGAICampaignName]) {
[dataLayer push{
@"event": @"screenView",
@"screenName": @"Home Screen",
@"customCampaignSource": [hitParams get:kGAICampaignSource],
@"customCampaignMedium": [hitParams get:kGAICampaignMedium],
@"customCampaignName": [hitParams get:kGAICampaignName]
}];
}
return YES;
}
之后,您将创建三个数据层变量,一个用于 customCampaignSource ,一个用于 customCampaignName ,一个用于 customCampaignMedium 。将它们分别添加到 &cs、&cn 和 &cm 字段中,您的标签应该会收集动态事件数据。
关于ios - 在 iOS 上使用 Google Tag Manager 传递 UTM 参数,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/30534908/
|