要启用 Google Analytics(分析)实现的运行时更改且又无需重新创建应用二进制文件并将其重新提交到应用市场,请使用 Google 跟踪代码管理器 (GTM) 在您的应用中实现 Universal Analytics (UA)。
本指南将介绍如何使用 Universal Analytics 代码和 iOS 版 Google 跟踪代码管理器 SDK 来执行以下操作:
发送屏幕浏览数据
要在用户每次在应用中打开新屏幕时向 Google Analytics(分析)发送屏幕浏览,请执行以下操作:
1. 创建屏幕名称变量
要在 GTM 中创建屏幕名称变量,请执行以下操作:
- 登录您的 Google 跟踪代码管理器账号。
- 选择一个移动容器。
- 在左侧导航栏中,点击变量。
- 在用户定义的变量下,点击新建。
- 点击未命名变量,输入变量名称 screen name。
- 选择数据层变量作为变量类型。
- 输入 screenName 作为数据层变量名,并将其默认值设为 unknown screen。
- 点击创建变量。
2. 创建开放式屏幕事件触发器
要在 GTM 中创建触发器,以触发 Universal Analytics 屏幕浏览代码,请执行以下操作:
- 登录您的 Google 跟踪代码管理器账号。
- 选择一个移动容器。
- 在左侧导航栏中,点击触发器。
- 点击 New。
- 点击未命名触发器,输入触发器名称 OpenScreenEvent。
- 选择自定义事件。
- 在触发条件下,输入以下条件:
- 点击创建触发器。
3. 创建 Universal Analytics 屏幕浏览代码
要创建由开放式屏幕事件触发的 Universal Analytics 屏幕浏览代码,请执行以下操作:
- 登录您的 Google 跟踪代码管理器账号。
- 选择一个移动容器。
- 在左侧导航栏中,点击代码。
- 点击 New。
- 点击未命名代码,输入代码名称 Open Screen。
- 选择产品 Google Analytics(分析)。
- 输入相应的跟踪 ID。
- 选择应用浏览作为跟踪类型。
- 点击更多设置。
- 点击要设置的字段。
- 反复点击 + 添加字段以添加以下字段:
- 点击继续。
- 在触发条件下,点击自定义。
- 选择自定义触发器 OpenScreenEvent。
- 点击保存。
- 点击创建代码。
4. 将开放式屏幕事件和屏幕名称推送到数据层
向您的应用添加代码,以将 openScreen
事件和 screenName
值推送到数据层,例如:
// ViewController.m // Push an 'openScreen' event to the data layer. // #import "ViewController.h" #import "TAGDataLayer.h" #import "TAGManager.h" @implementation ViewController - (void)viewDidAppear { [super viewDidAppear]; // NOTE: A GTM container should already have been opened, otherwise events // pushed to the DataLayer will not fire tags in that container. TAGDataLayer *dataLayer = [TAGManager instance].dataLayer; [dataLayer push:@{@"event": @"openScreen", // Event, name of Open Screen Event. @"screenName": @"Home Screen"}]; // Name of the screen name field, screen name value. } // Rest of the ViewController implementation @end
发送事件
要在用户在应用中与界面控件或内容互动时向 Google Analytics(分析)发送事件数据,请执行以下操作:
以下步骤展示了如何在用户开始播放视频时向 Google Analytics(分析)发送事件数据。
1. (可选)创建事件变量
如果事件使用数据层变量来表示其“类别”“操作”“标签”或“值”字段,您必须先创建这些变量。 在此示例中,视频播放事件代码使用数据层变量来获取视频的名称。
要在 GTM 中创建视频名称变量,请执行以下操作:
- 登录您的 Google 跟踪代码管理器账号。
- 选择一个移动容器。
- 在左侧导航栏中,点击变量。
- 在用户定义的变量下,点击新建。
- 点击未命名变量,输入变量名称 video name。
- 选择数据层变量作为变量类型。
- 输入 videoName 作为数据层变量名,并将其默认值设为 unknown video。
- 点击创建变量。
2. 创建事件触发器
要在 GTM 中创建事件触发器,以触发 Universal Analytics 事件代码,请执行以下操作:
- 登录您的 Google 跟踪代码管理器账号。
- 选择一个移动容器。
- 在左侧导航栏中,点击触发器。
- 点击 New。
- 点击未命名触发器,输入触发器名称 VideoPlayEvent。
- 选择自定义事件。
- 在触发条件下,输入以下条件:
- 点击创建触发器。
3. 创建 Universal Analytics 事件代码
要创建由视频播放事件触发的 Universal Analytics 事件代码,请执行以下操作:
- 登录您的 Google 跟踪代码管理器账号。
- 选择一个移动容器。
- 在左侧导航栏中,点击代码。
- 点击 New。
- 点击未命名代码,输入代码名称 Video Play Event。
- 选择产品 Google Analytics(分析)。
- 输入相应的跟踪 ID。
- 选择事件作为跟踪类型。
- 输入以下事件跟踪参数:
- 点击更多设置。
- 点击要设置的字段。
- 反复点击 + 添加字段以添加以下字段:
- 点击继续。
- 在触发条件下,点击自定义。
- 选择自定义触发器 VideoPlayEvent。
- 点击保存。
- 点击创建代码。
4. 将事件和事件变量值推送到数据层
编写代码以将 videoPlay
事件和 videoName
值推送到数据层,例如:
// VideoPlayer.m // Push a 'videoPlay' event to the data layer. // #import "TAGDataLayer.h" #import "TAGManager.h" #import "Video.h" #import "VideoPlayer.h" @implementation VideoPlayer // Called when a user initiates a video playback. - (void)onPlay:(Video *)video { TAGDataLayer *dataLayer = [TAGManager instance].dataLayer; // This call assumes the container has already been opened, otherwise events // pushed to the DataLayer will not fire tags in that container. [dataLayer push:@{@"event": @"videoPlay", // Event, name of Video Play Event. @"videoName": video.title, // Additional data layer variables used by the event tag. @"screenName": @"Home Screen"}]; [self play:video]; } // Rest of the implementation @end
发送电子商务交易数据
要在用户完成应用内购买时向 Google Analytics(分析)发送交易和相关商品数据,请执行以下操作:
要查看受支持的交易和商品变量名称列表,请参阅受支持的电子商务数据层变量。
1. 创建交易触发器
要在 GTM 中创建交易触发器,以触发 Universal Analytics 交易代码,请执行以下操作:
- 登录您的 Google 跟踪代码管理器账号。
- 选择一个移动容器。
- 在左侧导航栏中,点击触发器。
- 点击 New。
- 点击未命名触发器,输入触发器名称 TransactionCompleted。
- 选择自定义事件。
- 在触发条件下,输入以下条件:
- 点击创建触发器。
2. 创建 Universal Analytics 交易代码
要创建由交易事件触发的 Universal Analytics 交易代码,请执行以下操作:
- 登录您的 Google 跟踪代码管理器账号。
- 选择一个移动容器。
- 在左侧导航栏中,点击代码。
- 点击 New。
- 点击未命名代码,输入代码名称 Transaction Completed。
- 选择产品 Google Analytics(分析)。
- 输入相应的跟踪 ID。
- 选择交易作为跟踪类型。
- 点击更多设置。
- 点击要设置的字段。
- 反复点击 + 添加字段以添加以下字段:
- 点击继续。
- 在触发条件下,点击自定义。
- 选择自定义触发器 TransactionCompleted。
- 点击保存。
- 点击创建代码。
3. 将交易事件、交易和商品数据推送到数据层
编写代码,以将交易事件、交易及相关商品数据推送到数据层。要将交易和商品数据推送到数据层,您必须使用受支持的交易和商品变量名称。 例如:
// Called when a user completes a transaction. - (void)onPurchaseCompleted:(Purchase *)purchase { TAGDataLayer *dataLayer = [TAGManager instance].dataLayer; // An array to store dictionaries of item data. NSMutableArray *purchasedItems = [NSMutableArray array]; // Push item data into dictionaries and store in the purchasedItems array. // Note that item.price and item.quantity must be of type NSString. for (id item in purchase.items) { [purchasedItems addObject:@{@"name": item.name, @"sku": item.sku, @"category": item.category, @"price": item.price, @"currency": @"USD", @"quantity": item.quantity}]; } // This call assumes the container has already been opened, otherwise events // pushed to the DataLayer will not fire tags in that container. // Note that purchase.tax, purchase.shipping, and purchase.total must be of type NSString. [dataLayer push:@{@"event": @"transaction", // Event, name of Transaction Event. @"transactionId": purchase.transactionId, // Additional fields required by the tag. @"transactionTotal": purchase.total, @"transactionAffiliation": @"In-app Store", @"transactionTax": purchase.tax, @"transactionShipping": purchase.shipping, @"transactionCurrency": @"USD", @"transactionProducts": purchasedItems}]; // Since the data layer is persistent, you should reset fields to [NSNull null] after // you are done pushing the transaction. [dataLayer push:@{@"transactionId": [NSNull null], @"transactionTotal": [NSNull null], @"transactionAffiliation": [NSNull null], @"transactionTax": [NSNull null], @"transactionShipping": [NSNull null], @"transactionCurrency": [NSNull null], @"transactionProducts": [NSNull null]}]; }
要详细了解如何使用 Android 版 Google 跟踪代码管理器 SDK 来实施 Universal Analytics 增强型电子商务功能,请参阅增强型电子商务。
受支持的电子商务数据层变量
Universal 交易代码支持以下交易和商品变量名称。
交易变量
变量名称 | 说明 | 类型 | 必需 |
---|---|---|---|
transactionId |
唯一交易标识符 | string | 是 |
transactionAffiliation |
合作伙伴或联营店铺 | string | 否 |
transactionTotal |
交易总价值 | string | 否 |
transactionTax |
交易的税额 | string | 否 |
transactionShipping |
交易的运费 | string | 否 |
transactionCurrency |
交易所用币种 | string | 否 |
transactionProducts |
交易中所购买的商品列表 | 商品变量的数组 | 否 |
商品变量
变量名称 | 说明 | 类型 | 必需 |
---|---|---|---|
name |
产品名称 | string | 是 |
sku |
产品 SKU | string | 否 |
category |
产品类别 | string | 否 |
price |
产品价格 | string | 否 |
currency |
price 的货币类型 |
string | 否 |
quantity |
商品数量 | string | 否 |
发送增强型电子商务数据
要了解如何发送增强型电子商务数据,请参阅增强型电子商务开发者指南。