在 iOS 上使用 Google 跟踪代码管理器传递 UTM 参数

Passing UTM parameters using Google Tag Manager on iOS

我正在尝试将 UTM 活动参数(我在应用程序中从不同来源本地获取)连同交易事件一起传递给 Google 跟踪代码管理器,以便能够将交易与活动相关联。我使用数据层发送数据:[self.tagManager.dataLayer push:combinedParameters]事件设置为combinedParameters中的事务。

交易数据被正确跟踪,但在 Analytics 网站上没有可见的相关活动数据,如 utm_sourceutm_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 字段,您的标签应该会收集动态广告系列数据。