Google Analytics SDK для iOS v1 (устаревшая версия)

SDK Google Analytics для мобильных приложений для iOS упрощает внедрение Google Analytics в приложениях для iOS. В этом документе описывается, как интегрировать SDK с вашими приложениями.

Обзор SDK

Этот SDK использует модель отслеживания, предназначенную для отслеживания пользователей на традиционных веб-сайтах и ​​взаимодействия с виджетами на традиционных веб-страницах. По этой причине используемые ниже термины отражают традиционную модель отслеживания веб-сайтов и сопоставляются с отслеживанием мобильных приложений. Вы должны быть знакомы с отслеживанием Analytics , чтобы понимать, как работает этот SDK.

Используйте SDK мобильного отслеживания для отслеживания приложений на телефоне со следующими типами взаимодействия Analytics:

Отслеживание просмотров страниц
Просмотр страницы — это стандартный способ измерения объема трафика на традиционном веб-сайте. Поскольку мобильные приложения не содержат HTML-страниц, вы должны решить, когда (и как часто) запускать запрос на просмотр страницы. Кроме того, поскольку запросы просмотра страниц предназначены для составления отчетов о структурах каталогов, вам следует предоставить описательные имена для запросов, чтобы использовать преимущества именования путей к страницам в отчетах о содержании в Analytics. Выбранные вами имена будут указаны в ваших отчетах Analytics в виде путей к страницам, хотя на самом деле они не являются HTML-страницами, но вы можете использовать это в своих интересах, структурируя пути для обеспечения дополнительных группировок для ваших вызовов.
Отслеживание событий
В Analytics события предназначены для отслеживания взаимодействия пользователя с элементами веб-страницы отдельно от запросов просмотра страниц. Вы можете использовать функцию отслеживания событий Google Analytics для совершения дополнительных вызовов, о которых будет сообщено в разделе «Отслеживание событий» интерфейса отчетов Analytics. События группируются по категориям, а также могут использоваться метки для каждого события, что обеспечивает гибкость в отчетности. Например, мультимедийное приложение может иметь действия воспроизведения/остановки/паузы для своей категории видео и назначать метку для каждого имени видео. Затем отчеты Google Analytics будут объединять события для всех событий, отмеченных категорией видео . Дополнительную информацию об отслеживании событий см. в Руководстве по отслеживанию событий.
Отслеживание электронной торговли
Используйте функцию отслеживания электронной торговли, чтобы отслеживать транзакции в корзине покупок и покупки в приложении. Чтобы отслеживать транзакцию, вызовите метод addTransaction , чтобы создать общую транзакцию, а также метод addItem для каждого продукта в корзине покупок. После сбора данные можно просмотреть в разделе отчетов по электронной торговле интерфейса Google Analytics. Дополнительную информацию об отслеживании электронной торговли см. в Руководстве по отслеживанию электронной торговли .
Пользовательские переменные
Пользовательские переменные — это теги пары «имя-значение», которые вы можете вставить в свой код отслеживания, чтобы уточнить отслеживание Google Analytics. Дополнительную информацию о том, как использовать пользовательские переменные, можно найти в Руководстве по пользовательским переменным .
Поддержка NoThumb
SDK для iPhone теперь включает версию библиотеки NoThumb, а также стандартную версию Thumb. Чтобы использовать версию библиотеки NoThumb, используйте файл libGoogleAnalytics_NoThumb.a вместо файла libGoogleAnalytics.a .

Начиная

Требования

Чтобы интегрировать возможности отслеживания Google Analytics с вашим приложением iOS, вам потребуется следующее:

Настраивать

  • Откройте Xcode и создайте новый проект iPhone OS.
  • Перетащите GANTracker.h и libGoogleAnalytics.a из каталога библиотеки SDK в свой новый проект.
  • Включите инфраструктуру CFNetwork в свой проект и свяжите ее с libsqlite3.0.dylib .

SDK Google Analytics для мобильных приложений должен работать с любым iPhone или iPod Touch под управлением iOS 2.0 или более поздней версии — библиотека совместима со всеми версиями iOS, поддерживающими собственные приложения.

В комплект SDK включен пример приложения, демонстрирующий, как должен выглядеть ваш проект в случае успешной настройки. Не стесняйтесь использовать его в качестве шаблона для своих собственных приложений, интегрированных с Analytics.

Использование SDK

Прежде чем начать использовать SDK, вам необходимо сначала создать бесплатную учетную запись на странице www.google.com/analytics и создать в этой учетной записи новый веб-ресурс, используя поддельный, но описательный URL-адрес веб-сайта (например, http://mymobileapp.mywebsite.com ). . После создания ресурса запишите или сохраните копию идентификатора веб-ресурса, созданного для вновь созданного ресурса.

Вы должны указать своим пользователям либо в самом приложении, либо в ваших условиях обслуживания, что вы оставляете за собой право анонимно отслеживать и сообщать о действиях пользователя внутри вашего приложения. Использование вами Google Analytics SDK дополнительно регулируется Условиями использования Google Analytics , с которыми вы должны согласиться при регистрации учетной записи.

Образцы и лучшие практики

Примеры кода и рекомендации можно найти на сайте code.google.com в разделе проекта Analytics-api-samples .

Библиотека EasyTracker

Доступна библиотека EasyTracker. Он обеспечивает отслеживание уровня приложений и UIViewController практически без усилий по разработке. Вы можете найти его в разделе «Загрузки» проекта Analytics-Api-Samples .

Запуск трекера

Запустите трекер, вызвав метод startTrackerWithAccountID для синглтона трекера, полученного через [GANTracker sharedTracker] . Часто бывает удобно вызвать этот метод непосредственно в методе applicationDidFinishLaunching делегата вашего приложения. Передайте идентификатор веб-ресурса, необходимый период отправки и необязательный делегат. Например:

#import "BasicExampleAppDelegate.h"

#import "GANTracker.h"

// Dispatch period in seconds
static const NSInteger kGANDispatchPeriodSec = 10;

@implementation BasicExampleAppDelegate

@synthesize window = window_;

- (void)applicationDidFinishLaunching:(UIApplication *)application {
  // **************************************************************************
  // PLEASE REPLACE WITH YOUR ACCOUNT DETAILS.
  // **************************************************************************
  [[GANTracker sharedTracker] startTrackerWithAccountID:@"UA-0000000-1"
                                        dispatchPeriod:kGANDispatchPeriodSec
                                              delegate:nil];

  NSError *error;
  if (![[GANTracker sharedTracker] setCustomVariableAtIndex:1
                                                       name:@"iPhone1"
                                                      value:@"iv1"
                                                  withError:&error]) {
    // Handle error here
  }

  if (![[GANTracker sharedTracker] trackEvent:@"my_category"
                                       action:@"my_action"
                                        label:@"my_label"
                                        value:-1
                                   withError:&error]) {
    // Handle error here
  }

  if (![[GANTracker sharedTracker] trackPageview:@"/app_entry_point"
                                   withError:&error]) {
    // Handle error here
  }

  [window_ makeKeyAndVisible];
}

- (void)dealloc {
  [[GANTracker sharedTracker] stopTracker];
  [window_ release];
  [super dealloc];
}

@end

Отслеживание просмотров страниц и событий

Отслеживать просмотры страниц и события очень просто: просто вызывайте trackPageView объекта трекера каждый раз, когда вы хотите инициировать просмотр страницы. Вызовите trackEvent , чтобы записать событие. Дополнительную информацию о просмотрах страниц и событиях см. в разделе «Обзор SDK» выше.

Использование пользовательских переменных

Добавить пользовательскую переменную также просто: просто используйте метод setCustomVariableAtIndex предоставляемый мобильным SDK. Вам необходимо заранее спланировать, какие индексы соответствуют каждой пользовательской переменной, чтобы не перезаписывать ранее существовавшую переменную. Дополнительную информацию о пользовательских переменных см. в Руководстве по пользовательским переменным . Обратите внимание, что метод setCustomVariableAtIndex сам по себе не отправляет данные напрямую. Вместо этого данные отправляются вместе со следующим отслеживаемым просмотром страницы или событием. Вам необходимо вызвать setCustomVariableAtIndex прежде чем отслеживать просмотр страницы или событие. Обратите внимание, что область действия пользовательских переменных по умолчанию ограничена страницей.

Использование отслеживания электронной торговли

Существует 4 метода, которые вы можете использовать для включения отслеживания электронной торговли в своем приложении:

  • addTransaction
  • addItem
  • trackTransactions
  • clearTransactions

Вызов addTransaction и addItem добавляет транзакцию или элемент во внутренний буфер электронной торговли, в который можно добавить дополнительные элементы и транзакции. Только при вызове trackTransactions транзакции и элементы будут отправлены диспетчеру и поставлены в очередь для отправки в Google Analytics.

Чтобы очистить буфер, вы можете вызвать clearTransactions . Примечание. Он не запоминает ни транзакции, ранее отправленные диспетчеру, ни транзакции, уже собранные Google Analytics.

Следующий пример кода поможет вам начать работу.

  /**
   * The purchase was processed.  We will track the transaction and its associated line items
   * now, but only if the purchase has been confirmed.
   */
- (void) processPurchase:Purchase purchase {
  [[GANTracker sharedTracker] addTransaction:[purchase transactionId]
                                  totalPrice:[purchase totalPrice]
                                   storeName:[purchase store]
                                    totalTax:[purchase tax]
                                shippingCost:[purchase shipping]
                                   withError:&error];
  if (error) {
    // Handle error
  }
  for (PurchaseItem item in [purchase items]) {
    [[GANTracker sharedTracker] addItem:[purchase transactionId]
                                itemSKU:[item itemSKU]
                              itemPrice:[item price]
                              itemCount:[item count]
                           itemCategory:[item category]
                              withError:&error];
    if (error) {
      // Handle error
    }
  }

  if ([purchase isConfirmed]) {
    [[GANTracker sharedTracker] trackTransactions:&error];
  } else {
    // The purchase was denied or failed in some way.  We need to clear out
    // any data we've already put in the Ecommerce buffer.
    [[GANTracker sharedTracker] clearTransactions:&error];
  }
}

Дополнительную информацию об электронной торговле см. в Руководстве по отслеживанию электронной торговли .

Анонимизировать IP

Чтобы анонимизировать информацию об IP-адресе пользователя, установите для свойства anonymizeIp значение YES. Это указывает Google Analytics обезличить информацию, отправленную SDK, удалив последний октет IP-адреса перед ее сохранением.

Вот пример того, как его установить:

 [[GANTracker sharedTracker] setAnonymizeIp:YES];

Вы можете установить anonymizeIp в любое время.

Установка частоты дискретизации

Вы можете установить частоту дискретизации, используя свойство sampleRate . Если ваше приложение генерирует большой объем трафика Analytics, установка частоты выборки может помешать созданию отчетов с использованием выборочных данных. Выборка происходит последовательно среди уникальных пользователей, поэтому при включенной частоте выборки обеспечивается целостность тенденций и отчетов. Параметр sampleRate является NSUInteger и может иметь значение от 0 до 100 включительно. Вот пример, в котором sampleRate снижается до 95 %:

 [[GANTracker sharedTracker] setSampleRate:95];

Значение 0 отключает генерацию обращений, а значение 100 отправляет все данные в Google Analytics. Лучше всего установить sampleRate до вызова каких-либо методов отслеживания.

Подробнее о выборке можно узнать из Руководства по концепциям выборки .

Пакетирование хитов

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

Известные вопросы

  • Рефералы/источники трафика : в настоящее время невозможно отследить кампанию/источник рефералов для загрузки приложения на устройстве iOS.
  • Мы настоятельно не рекомендуем вызывать dispatch в следующих ситуациях:
    • В методе applicationWillTerminate
    • В applicationDidEnterBackground
    • Перед вызовом stopTracker
    Это может привести к тому, что обращения будут отправлены дважды. Вместо этого используйте метод dispatchSynchronous:
  • Вызов методов GANTracker в разных потоках может привести к непонятным ошибкам SQLite. Обязательно делайте все звонки из одной ветки.
  • Отслеживающие кампании

    Общее отслеживание кампании

    Благодаря версии 1.3 Google Analytics SDK для iOS вы можете отслеживать переходы по кампаниям. Например, если ваше приложение реализует пользовательскую схему URL-адресов, вы можете создать URL-адрес, содержащий параметры запроса кампании. Когда ваше приложение запускается в ответ на такой URL-адрес, вы можете получить параметры запроса и передать их в setReferrer, чтобы информация сохранялась в Google Analytics.

    Чтобы установить реферальную информацию кампании, используйте метод setReferrer следующим образом:

      [[GANTracker sharedTracker] setReferrer:referrer withError:&error];
    

    Есть два ограничения на использование этой функции. Во-первых, вы должны вызвать startTrackerWithAccountID до вызова setReferrer . Это необходимо сделать, поскольку база данных SQLite, используемая Google Analytics, не настроена до вызова startTrackerWithAccountID , и эта база данных необходима для setReferrer . Если вы не вызвали startTrackerWithAccountID , вы получите сообщение об ошибке.

    Второе ограничение заключается в том, что строка ссылки, передаваемая в setReferrer должна соответствовать определенному формату. Он должен иметь форму набора параметров URL-адреса и включать как минимум параметр gclid или по одному из utm_campaign, utm_medium и utm_source. В последнем случае он также может иметь параметры utm_term и utm_content.

    Параметр gclid является частью функции автоматической пометки, которая автоматически связывает Google Analytics с Google Рекламой. Пример направления кампании с использованием автоматической пометки может выглядеть так:

    referrer = @“gclid=gclidValue”;
    

    Строка реферала кампании, созданная вручную, может выглядеть так:

    referrer = @“utm_campaign=campaign&utm_source=source&utm_medium=medium&utm_term=term&utm_content=content”;
    

    Если вы передадите в setReferrer неправильно сформированную строку реферера, информация о реферере не будет изменена, и вы получите возвращаемое значение false. Возвращаемое значение true указывает, что реферер был обновлен и будет добавляться к каждому обращению в дальнейшем. Вы также получите сообщение об ошибке, которое вы можете проверить, чтобы получить подробную информацию о том, что пошло не так в случае сбоя вызова.

    Также обратите внимание, что новый сеанс будет запущен, когда вы вызовете setReferrer и он вернет true.

    Параметр Необходимый Описание Примеры)
    utm_campaign Да Название кампании; используется для анализа ключевых слов для определения конкретного продвижения продукта или стратегической кампании. utm_campaign=spring_sale
    utm_source Да Источник кампании; используется для идентификации поисковой системы, информационного бюллетеня или другого источника utm_source=google
    utm_medium Да Канал кампании; используется для идентификации средства массовой информации, например электронной почты или цены за клик (cpc). utm_medium=cpc
    utm_term Нет Срок кампании; используется с платным поиском для предоставления ключевых слов для объявлений. utm_term=running+shoes
    utm_content Нет Содержание кампании; используется для A/B-тестирования и рекламы с таргетингом на контент, чтобы различать объявления или ссылки, ведущие на один и тот же URL-адрес. utm_content=logolink
    utm_content=textlink