在 iOS 上使用 Google 跟踪代码管理器传递 UTM 参数
Passing UTM parameters using Google Tag Manager on iOS
我正在尝试将 UTM 活动参数(我在应用程序中从不同来源本地获取)连同交易事件一起传递给 Google 跟踪代码管理器,以便能够将交易与活动相关联。我使用数据层发送数据:[self.tagManager.dataLayer push:combinedParameters]
事件设置为combinedParameters
中的事务。
交易数据被正确跟踪,但在 Analytics 网站上没有可见的相关活动数据,如 utm_source
、utm_medium
等。我在 combinedParameters
中传递了所有这些。我还尝试使用 utm_source
等作为键并使用 kGAICampaignContent
.
通过 [self.tagManager.dataLayer pushValue:val forKey:key];
发送它
None 其中实际有效。没有文档(至少我能找到)有助于理解如何通过 GTM 传递 UTM 数据。唯一可用的是 Google Analytics,在这种情况下不起作用。
任何帮助将不胜感激。
如果您只是将 SDK 视为 Measurement Protocol 的热门生成器,则更容易理解。
在 GTM 中,您可以使用 更多设置 > 要设置的字段 下的设置将 MP fields 添加到标签.要设置三个必需的广告系列参数(来源、媒介、名称),您需要添加以下字段:
字段名称:&cm
价值:一些活动中等
字段名称:&cs
价值:一些活动来源
域名:&cn
值:一些活动名称
要为 "some-campaign-*" 设置动态值,您可以使用数据层变量将解析的 URL 参数值提取到 GTM 的数据模型中。
因此,要解析即将到来的 URL,您可以利用 dataLayer
以及 GA SDK 的 GAIDictionaryBuilder
接口。
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)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 字段,您的标签应该会收集动态广告系列数据。
我正在尝试将 UTM 活动参数(我在应用程序中从不同来源本地获取)连同交易事件一起传递给 Google 跟踪代码管理器,以便能够将交易与活动相关联。我使用数据层发送数据:[self.tagManager.dataLayer push:combinedParameters]
事件设置为combinedParameters
中的事务。
交易数据被正确跟踪,但在 Analytics 网站上没有可见的相关活动数据,如 utm_source
、utm_medium
等。我在 combinedParameters
中传递了所有这些。我还尝试使用 utm_source
等作为键并使用 kGAICampaignContent
.
[self.tagManager.dataLayer pushValue:val forKey:key];
发送它
None 其中实际有效。没有文档(至少我能找到)有助于理解如何通过 GTM 传递 UTM 数据。唯一可用的是 Google Analytics,在这种情况下不起作用。
任何帮助将不胜感激。
如果您只是将 SDK 视为 Measurement Protocol 的热门生成器,则更容易理解。
在 GTM 中,您可以使用 更多设置 > 要设置的字段 下的设置将 MP fields 添加到标签.要设置三个必需的广告系列参数(来源、媒介、名称),您需要添加以下字段:
字段名称:&cm
价值:一些活动中等
字段名称:&cs
价值:一些活动来源
域名:&cn
值:一些活动名称
要为 "some-campaign-*" 设置动态值,您可以使用数据层变量将解析的 URL 参数值提取到 GTM 的数据模型中。
因此,要解析即将到来的 URL,您可以利用 dataLayer
以及 GA SDK 的 GAIDictionaryBuilder
接口。
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)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 字段,您的标签应该会收集动态广告系列数据。