Отслеживание расширенной электронной торговли: SDK для iOS

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

Обзор

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

Реализация

Прежде чем внедрять отслеживание расширенной электронной торговли, необходимо добавить в приложение соответствующую библиотеку.

После настройки приложения вам будут доступны следующие функции:

Отслеживание коммерческой активности

При типичной реализации отслеживаются просмотры товаров, а также следующие действия:

  • выбор товара;
  • просмотр информации о товаре;
  • показы и клики по внутренней рекламе;
  • добавление в корзину покупок и удаление из нее;
  • переход к оформлению покупки;
  • покупки и возвраты.

Отслеживание показов

Чтобы реализовать отслеживание, задайте значения товара и показа и передайте их с обращением.

id tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
[product setId:@"P12345"];
[product setName:@"Android Warhol T-Shirt"];
[product setCategory:@"Apparel/T-Shirts"];
[product setBrand:@"Google"];
[product setVariant:@"Black"];
[product setCustomDimension:1 value:@"Member"];
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createScreenView];

// Sets the product impression for the next available slot, starting with 1.
[builder addProductImpression:product
               impressionList:@"Search Results"
             impressionSource:@"From Search"];
[tracker set:kGAIScreenName value:@"My Impression Screen"];
[tracker send:[builder build]];

Для объекта product должно быть указано название или идентификатор. Остальные значения задавать необязательно.

Отслеживание действий

Чтобы реализовать отслеживание, задайте значения, определяющие товар и выполняемое действие.

Например, следующий код регистрирует выбор товара из результатов поиска:

id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
[product setId:@"P12345"];
[product setName:@"Android Warhol T-Shirt"];
[product setCategory:@"Apparel/T-Shirts"];
[product setBrand:@"Google"];
[product setVariant:@"Black"];
[product setCustomDimension:1 value:@"Member"];

GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
[action setAction:kGAIPAClick];
[action setProductActionList:@"Search Results"];
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createScreenView];
[builder setProductAction:action];

// Sets the product for the next available slot, starting with 1
[builder addProduct:product];
[tracker set:kGAIScreenName value:@"My Impression Screen"];
[tracker send:[builder build]];

Для объекта product должно быть указано название или идентификатор. Остальные значения задавать необязательно.

Объединение показов и действий

Показы и действие можно отправить вместе в одном обращении.

Следующий код регистрирует просмотр информации о товаре и раздел связанных товаров:

// The product from the related products section.
id tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
[product setId:@"P12346"];
[product setName:@"Android Warhol T-Shirt"];
[product setCategory:@"Apparel/T-Shirts"];
[product setBrand:@"Google"];
[product setVariant:@"White"];
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createScreenView];

// Sets the product impression for the next available slot, starting with 1.
[builder addProductImpression:product
               impressionList:@"Related Products"
             impressionSource:@"From Related"];

// The product being viewed.
product = [[GAIEcommerceProduct alloc] init];
[product setId:@"P12345"];
[product setName:@"Android Warhol T-Shirt"];
[product setCategory:@"Apparel/T-Shirts"];
[product setBrand:@"Google"];
[product setVariant:@"Black"];

GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
[action setAction:kGAIPADetail];
[builder setProductAction:action];
// Sets the product for the next available slot, starting with 1.
[builder addProduct:product];
[tracker set:kGAIScreenName value:@"Related Products Screen"];
[tracker send:[builder build]];

Отслеживание транзакций

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

id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
[product setId:@"P12345"];
[product setName:@"Android Warhol T-Shirt"];
[product setCategory:@"Apparel/T-Shirts"];
[product setBrand:@"Google"];
[product setVariant:@"Black"];
[product setPrice:@29.20];
[product setCouponCode:@"APPARELSALE"];
[product setQuantity:@1];
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"Ecommerce"
                                                                       action:@"Purchase"
                                                                        label:nil
                                                                        value:nil];
GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
[action setAction:kGAIPAPurchase];
[action setTransactionId:@"T12345"];
[action setAffiliation:@"Google Store - Online"];
[action setRevenue:@37.39];
[action setTax:@2.85];
[action setShipping:@5.34];
[action setCouponCode:@"SUMMER2013"];
[builder setProductAction:action];

// Sets the product for the next available slot, starting with 1
[builder addProduct:product];
[tracker send:[builder build]];

Настройка валюты

По умолчанию вы задаете глобальную валюту (общую для всех транзакций и товаров) через веб-интерфейс Google Analytics.

Местная валюта должна быть указана в соответствии со стандартом ISO 4217. Полный список валют, конвертация которых поддерживается в Google Analytics, можно найти в Справке по кодам валют.

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

id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTracker"];
[tracker set:kGAIScreenName value:@"transaction"];
[tracker set:kGAICurrencyCode value:@"EUR"]; // Set tracker currency to Euros.
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createScreenView];
[tracker send:[builder build]];

Отслеживание возвратов

Для отслеживания полного возврата средств задайте значения действия с товаром, определяющие идентификатор транзакции и тип действия Refund:

// Refund an entire transaction.
id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"Ecommerce"
                                                                       action:@"Refund"
                                                                        label:nil
                                                                        value:nil];
GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
[action setAction:kGAIPARefund];
[action setTransactionId:@"T12345"];
[builder setProductAction:action];
[tracker send:[builder build]];

Если соответствующая транзакция не найдена, возврат не будет обработан.

Для отслеживания частичного возврата средств задайте значения действия с товаром, определяющие идентификатор транзакции, а также идентификаторы и количество возвращаемых товаров:

// Refund a single product.
id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"Ecommerce"
                                                                       action:@"Refund"
                                                                        label:nil
                                                                        value:nil];
GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
[product setId:@"P12345"]; // Product ID is required for partial refund.
[product setQuantity:@1]; // Quanity is required for partial refund.
[builder addProduct:product];

GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
[action setAction:kGAIPARefund];
[action setTransactionId:@"T12345"]; // Transaction ID is required for partial refund.
[builder setProductAction:action];
[tracker send:[builder build]];

Отслеживание событий, не являющихся взаимодействиями, в качестве возвратов

Если событие, с которым связан возврат, не является взаимодействием (т. е. не инициируется пользователем), рекомендуем создать событие типа "Не взаимодействие". Благодаря этому событие не будет влиять на некоторые показатели. Пример:

// Refund an entire transaction.
id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"Ecommerce"
                                                                       action:@"Refund"
                                                                        label:nil
                                                                        value:nil];

[builder set:@"1" forKey:kGAINonInteraction];

GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
[action setAction:kGAIPARefund];
[action setTransactionId:@"T12345"];

[builder setProductAction:action];
[tracker send:[builder build]];

Отслеживание процесса оформления покупки

Для отслеживания каждого этапа в процессе оформления покуп:

  1. Добавьте код отслеживания для каждого этапа оформления покупки.
  2. При необходимости добавьте код отслеживания для каждого варианта, который может выбрать пользователь при оформлении покупки.
  3. При желании присвойте понятные названия каждому шагу последовательности покупки. Это можно сделать в веб-интерфейсе в разделе Настройки электронной торговли на вкладке "Администратор".

1. Отслеживание этапов оформления покупки

Для передачи данных в Google Analytics вам нужно будет установить соответствующий код отслеживания на каждом шаге оформления покупки.

Поле Step (Этап)

Укажите значение step для каждого этапа оформления покупки. Оно используется для привязки действий к ярлыкам, которые вы присвоили каждому этапу оформления покупки в разделе Настройки электронной торговли.

Поле Option (Вариант)

Чтобы получать дополнительную информацию об определенном этапе, задайте для поля option действие checkout – например, способ оплаты по умолчанию, выбранный пользователем (допустим, кредитная карта Visa).

Отслеживание на этапе оформления покупки

Чтобы отслеживать этап оформления покупки, задайте значения товара и действия оформления. При необходимости вы также можете задать шаг (step) и вариант (option).

Следующий код отслеживает первый шаг в процессе оформления покупки одного товара и получает дополнительную информацию о способе оплаты:

id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
[product setId:@"P12345"];
[product setName:@"Android Warhol T-Shirt"];
[product setCategory:@"Apparel/T-Shirts"];
[product setBrand:@"Google"];
[product setVariant:@"Black"];
[product setPrice:@29.20];
[product setCouponCode:@"APPARELSALE"];
[product setQuantity:@1];

GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"Ecommerce"
                                                                       action:@"Checkout"
                                                                        label:nil
                                                                        value:nil];

// Add the step number and additional info about the checkout to the action.
GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
[action setAction:kGAIPACheckout];
[action setCheckoutStep:@1];
[action setCheckoutOption:@"Visa"];

[builder addProduct:product];
[builder setProductAction:action];
[tracker send:[builder build]];

2. Отслеживание вариантов оформления покупки

Вы можете получать дополнительную информацию, которая становится доступна после выбора определенного варианта (например, способа доставки) пользователем на данном этапе оформления покупки.

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

Обычно выбор варианта регистрируется при переходе пользователя на следующий этап оформления покупки. Пример:

// (On "Next" button click.)
id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"Ecommerce"
                                                                       action:@"CheckoutOption"
                                                                        label:nil
                                                                        value:nil];

GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
[action setAction:kGAIPACheckoutOption];
[action setCheckoutStep:@1];
[action setCheckoutOption:@"Fedex"];

[builder setProductAction:action];
[tracker send:[builder build]];
// Advance to next page.

3. Настройка последовательности оформления покупки

Каждому этапу оформления покупки можно присвоить описательное название, по которому вам будет проще узнать его в отчетах. Для этого нажмите на вкладку Администратор в веб-интерфейсе Google Analytics, выберите нужное представление (профиль) и перейдите в раздел Настройки электронной торговли. Присвойте название каждому этапу в последовательности покупки, следуя инструкциям для обычной электронной торговли.

Настройки электронной торговли в административном разделе веб-интерфейса Google Analytics.Включена электронная торговля и добавлены четыре этапа оформления покупки: 1 – просмотр корзины, 2 – предоставление платежной информации, 3 – подтверждение информации о покупке, 4 – квитанция об оплате.
Рис. 1. Настройки электронной торговли: последовательность оформления покупки

Отслеживание внутренних рекламных кампаний

Вы также можете отслеживать собственные внутренние промоакции, например баннеры, рекламирующие распродажу.

Показы внутренней рекламы

Как правило, показы внутренней рекламы отслеживаются с первоначальным просмотром экрана или событием. Для этого указывается информация об акции. Пример:

id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIEcommercePromotion *promotion = [[GAIEcommercePromotion alloc] init];
[promotion setId:@"PROMO_1234"];
[promotion setName:@"Summer Sale"];
[promotion setCreative:@"summer_banner2"];
[promotion setPosition:@"banner_slot1"];

GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"Ecommerce"
                                                                       action:@"Promotion"
                                                                        label:nil
                                                                        value:nil];

[builder addPromotion:promotion];
[tracker send:[builder build]];

Клики по внутренней рекламе

Используйте значения рекламной акции и задайте значения действия с товаром, определяющие клик по внутренней рекламе. Пример:

id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIEcommercePromotion *promotion = [[GAIEcommercePromotion alloc] init];
[promotion setId:@"PROMO_1234"];
[promotion setName:@"Summer Sale"];
[promotion setCreative:@"summer_banner2"];
[promotion setPosition:@"banner_slot1"];

GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"Internal Promotions"
                                                                       action:@"click"
                                                                        label:@"Summer Sale"
                                                                        value:nil];

[builder set:kGAIPromotionClick forKey:kGAIPromotionAction];
[builder addPromotion:promotion];
[tracker send:[builder build]];