Теги универсальной аналитики

Чтобы внести изменения во время выполнения вашей реализации Google Analytics, которые не требуют пересборки и повторной отправки двоичного файла вашего приложения на рынки, внедрите Universal Analytics (UA) в свое приложение с помощью Диспетчера тегов Google (GTM).

В этом руководстве показано, как использовать теги Universal Analytics и Google Tag Manager SDK для iOS, чтобы:

Отправить просмотры экрана

Чтобы отправлять вид экрана каждый раз, когда в вашем приложении открывается новый экран, в Google Analytics:

  1. Создайте переменную имени экрана .
  2. Создайте триггер события открытого экрана .
  3. Создайте тег просмотра экрана Universal Analytics .
  4. Перенесите событие открытия экрана и имя экрана на уровень данных .

1. Создайте переменную имени экрана.

Чтобы создать переменную имени экрана в GTM:

  1. Войдите в свою учетную запись Диспетчера тегов Google .
  2. Выберите мобильный контейнер.
  3. На левой панели навигации нажмите Переменные .
  4. В разделе «Пользовательские переменные» нажмите «Создать» .
  5. Нажмите «Переменная без названия» , чтобы ввести экранное имя имени переменной.
  6. Выберите «Переменная уровня данных» в качестве типа переменной.
  7. Введите screenName в качестве имени переменной уровня данных и установите значение по умолчанию неизвестного экрана .
  8. Нажмите Создать переменную .

2. Создайте триггер события открытого экрана.

Чтобы создать в GTM триггер для активации тега просмотра экрана Universal Analytics :

  1. Войдите в свою учетную запись Диспетчера тегов Google .
  2. Выберите мобильный контейнер.
  3. На левой панели навигации нажмите Триггеры .
  4. Нажмите Создать.
  5. Нажмите Триггер без названия , чтобы ввести имя триггера OpenScreenEvent .
  6. Выберите Пользовательское событие.
  7. В разделе «Пожар включен» введите следующее условие:

    Триггер, который будет запущен, когда событие равно openScreen.

  8. Нажмите «Создать триггер» .

3. Создайте тег просмотра экрана Universal Analytics.

Чтобы создать тег просмотра экрана Universal Analytics, активируемый событием открытия экрана :

  1. Войдите в свою учетную запись Диспетчера тегов Google .
  2. Выберите мобильный контейнер.
  3. На левой панели навигации нажмите Теги .
  4. Нажмите Создать.
  5. Нажмите «Тег без названия» , чтобы ввести имя тега «Открыть экран» .
  6. Выберите продукт Google Analytics .
  7. Введите идентификатор отслеживания.
  8. Выберите «Просмотр приложения» в качестве типа отслеживания .
  9. Нажмите Дополнительные настройки .
  10. Нажмите «Поля для установки» .
  11. Несколько раз нажмите + Добавить поле , чтобы добавить следующие поля:

    добавьте эти поля: имя приложения, версия приложения и имя экрана.

  12. Нажмите Продолжить .
  13. В разделе «Включить огонь» нажмите «Пользовательский» .
  14. Выберите пользовательский триггер OpenScreenEvent .
  15. Нажмите Сохранить .
  16. Нажмите «Создать тег» .

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, когда пользователь взаимодействует с элементами управления пользовательского интерфейса или контентом в вашем приложении:

  1. (Необязательно) Создайте переменные событий .
  2. Создайте триггер события .
  3. Создайте тег события Universal Analytics .
  4. Перенесите событие и значение переменной события на уровень данных .

Следующие шаги показывают, как событие отправляется в Google Analytics, когда пользователь начинает воспроизведение видео.

1. (Необязательно) Создайте переменные событий.

Если событие использует переменные уровня данных для представления полей категории, действия, метки или значения, сначала необходимо создать эти переменные. В этом примере тег события воспроизведения видео использует переменную уровня данных для получения названия видео.

Чтобы создать переменную имени видео в GTM:

  1. Войдите в свою учетную запись Диспетчера тегов Google .
  2. Выберите мобильный контейнер.
  3. На левой панели навигации нажмите Переменные .
  4. В разделе «Пользовательские переменные» нажмите «Создать» .
  5. Нажмите «Переменная без названия» , чтобы ввести имя переменной «имя видео» .
  6. Выберите «Переменная уровня данных» в качестве типа переменной.
  7. Введите videoName в качестве имени переменной уровня данных и установите для нее значение по умолчанию — неизвестное видео .
  8. Нажмите Создать переменную .

2. Создайте триггер события

Чтобы создать триггер события в GTM для активации тега события Universal Analytics :

  1. Войдите в свою учетную запись Диспетчера тегов Google .
  2. Выберите мобильный контейнер.
  3. На левой панели навигации нажмите Триггеры .
  4. Нажмите Создать.
  5. Нажмите «Триггер без названия» , чтобы ввести имя триггера VideoPlayEvent .
  6. Выберите Пользовательское событие.
  7. В разделе «Пожар включен» введите следующее условие:

    Триггер, который сработает, когда событие будет равно videoPlay.

  8. Нажмите «Создать триггер» .

3. Создайте тег события Universal Analytics.

Чтобы создать тег события Universal Analytics, активируемый событием воспроизведения видео :

  1. Войдите в свою учетную запись Диспетчера тегов Google .
  2. Выберите мобильный контейнер.
  3. На левой панели навигации нажмите Теги .
  4. Нажмите Создать.
  5. Нажмите «Тег без названия» , чтобы ввести имя тега «Событие воспроизведения видео» .
  6. Выберите продукт Google Analytics .
  7. Введите идентификатор отслеживания.
  8. Выберите «Событие» в качестве типа трека .
  9. Введите следующие параметры отслеживания событий:

    введите следующие параметры отслеживания: Категория: видео, Действие: воспроизведение и Метка: видео.

  10. Нажмите Дополнительные настройки .
  11. Нажмите «Поля для установки» .
  12. Несколько раз нажмите + Добавить поле , чтобы добавить следующие поля:

    добавьте эти поля: имя приложения, версия приложения и имя экрана.

  13. Нажмите Продолжить .
  14. В разделе «Включить огонь» нажмите «Пользовательский» .
  15. Выберите пользовательский триггер VideoPlayEvent .
  16. Нажмите Сохранить .
  17. Нажмите «Создать тег» .

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. Создайте триггер транзакции .
  2. Создайте тег транзакции Universal Analytics .
  3. Отправьте событие транзакции, транзакцию и элементы на уровень данных .

Список поддерживаемых имен переменных транзакций и товаров см. в разделе Поддерживаемые переменные уровня данных электронной торговли .

1. Создайте триггер транзакции

Чтобы создать триггер транзакции в GTM для активации тега транзакции Universal Analytics :

  1. Войдите в свою учетную запись Диспетчера тегов Google .
  2. Выберите мобильный контейнер.
  3. На левой панели навигации нажмите Триггеры .
  4. Нажмите Создать.
  5. Нажмите Триггер без названия , чтобы ввести имя триггера TransactionCompleted .
  6. Выберите Пользовательское событие.
  7. В разделе «Пожар включен» введите следующее условие:

    Триггер, который сработает, когда событие соответствует транзакции.

  8. Нажмите «Создать триггер» .

2. Создайте тег транзакции Universal Analytics.

Чтобы создать тег транзакции Universal Analytics, активируемый событием транзакции :

  1. Войдите в свою учетную запись Диспетчера тегов Google .
  2. Выберите мобильный контейнер.
  3. На левой панели навигации нажмите Теги .
  4. Нажмите Создать.
  5. Нажмите «Тег без названия» , чтобы ввести имя тега «Транзакция завершена» .
  6. Выберите продукт Google Analytics .
  7. Введите идентификатор отслеживания.
  8. Выберите «Транзакция» в качестве типа отслеживания .
  9. Нажмите Дополнительные настройки .
  10. Нажмите «Поля для установки» .
  11. Несколько раз нажмите + Добавить поле , чтобы добавить следующие поля:

    добавьте эти поля: имя приложения, версия приложения и имя экрана.

  12. Нажмите Продолжить .
  13. В разделе «Включить огонь» нажмите «Пользовательский» .
  14. Выберите пользовательский триггер TransactionCompleted .
  15. Нажмите Сохранить .
  16. Нажмите «Создать тег» .

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]}];
}