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

Конверсией в AdWords называется случай, когда пользователь сначала нажимает на объявление или просматривает видеорекламу, а затем совершает нужное рекламодателю действие: например, делает покупку, устанавливает мобильное приложение или подписывается на рассылку.

Отслеживание конверсий позволяет анализировать поведение пользователей, нажавших на объявление или просмотревших видеорекламу. В качестве конверсий можно учитывать телефонные звонки, покупки, установки приложения и другие действия. В AdWords доступны разные инструменты для отслеживания разных типов конверсий.

В этом руководстве описаны средства для отслеживания конверсий и принципы их использования. Здесь также рассказывается о том, как импортировать офлайн-конверсии в AdWords с помощью API.

Классы, используемые для отслеживания конверсий

Прежде всего необходимо создать объект, основанный на базовом классе ConversionTracker и соответствующий типу конверсий, которые вы хотите отслеживать. К примеру, для отслеживания покупок на сайте и телефонных звонков используются разные объекты.

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

Далее мы подробно расскажем о требованиях для каждого типа конверсий.

Звонки-конверсии

Для отслеживания звонков-конверсий используется класс AdCallMetricsConversion. Звонки совершаются по номерам Google для переадресации, а объект для отслеживания указывается в параметре FeedItem расширения объявлений. В интерфейсе AdWords конверсии этого типа называются звонками по объявлениям.

Чтобы отслеживать этот тип конверсий, нужно указать объект для отслеживания в параметре FeedItem расширения объявления, используя тип метки-заполнителя в качестве значения поля CONVERSION TYPE ID.

Звонок засчитывается как конверсия, если его длительность превышает заданную величину (по умолчанию – 60 секунд).

Конверсии на веб-сайтах

Класс AdWordsConversionTracker позволяет обрабатывать несколько типов конверсий на веб-сайтах, различаемых в API с помощью поля trackingCodeType.

В этой таблице показаны параметры в API, эквивалентные источникам конверсий в интерфейсе AdWords:

trackingCodeType Источник в интерфейсе AdWords
WEBPAGE Веб-сайт
WEBPAGE_ONCLICK Клик
CLICK_TO_CALL Клики по номеру телефона
--- Google Analytics

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

Тип CLICK_TO_CALL отличается от AdCallMetricsConversion тем, что отслеживаются не сами звонки, а клики по телефонному номеру с мобильных устройств. Этот способ полезен в том случае, если вы не можете использовать номер Google для переадресации.

Конверсии в приложениях

Класс AppConversion позволяет отслеживать как установки приложения, так и действия в нем. Он используется для приложений Android и iOS. В этой таблице показаны параметры API, соответствующие каждому источнику конверсий в интерфейсе AdWords:

appPlatform appConversionType Источник в интерфейсе AdWords
ITUNES FIRST_OPEN Установка приложения для iOS (первый запуск)
ITUNES IN_APP_PURCHASE Действие в приложении iOS
ANDROID_MARKET DOWNLOAD Установка приложения для Android (из Google Play)
ANDROID_MARKET FIRST_OPEN Установка приложения на Android (первый запуск)
ANDROID_MARKET IN_APP_PURCHASE Действие в приложении Android

Если в поле appConversionType указано значение FIRST_OPEN, то можно задать параметр appPostbackUrl, чтобы мгновенно получать оповещения, когда пользователи впервые запускают приложение. Подробнее об этом читайте в руководстве по настройке отслеживания конверсий мобильных приложений для Android.

Загрузка данных о конверсиях по кликам

Тип конверсий UploadConversion в API соответствует источнику конверсий Импорт с подтипом Конверсии по кликам в интерфейсе AdWords. При создании такой конверсии в интерфейсе AdWords для аккаунта включается функция автоматической пометки, но этого не происходит при создании объекта для отслеживания конверсий через API. В таком случае нужно включить ее с помощью сервиса CustomerService. Без автоматической пометки вы не сможете получать параметр GCLID, необходимый для загрузки данных о конверсиях, соответствующих клику.

Создав объект UploadConversion, вы можете загружать данные о конверсиях по кликам с помощью сервиса OfflineConversionFeedService. Подробнее об этом читайте в разделе Импорт конверсий по кликам.

Загрузка данных о звонках-конверсиях

Тип конверсий UploadCallConversion в API соответствует источнику конверсий Импорт с подтипом Звонки-конверсии в интерфейсе AdWords.

Создав объект UploadCallConversion, вы можете загружать данные о звонках-конверсиях с помощью сервиса OfflineCallConversionFeedService. Подробнее об этом читайте в разделе Импорт звонков-конверсий.

Звонки по кликам на веб-сайте

Тип конверсий WebsiteCallMetricsConversion в API соответствует источнику конверсий Звонки по кликам на веб-сайте в интерфейсе AdWords.

В отличие от типа AdCallMetricsConversion, для работы с ним требуется добавить на веб-сайт специальный тег. Этот тег получает динамические номера Google для переадресации, используемые для отслеживания звонков по номерам, указанным на сайте. Кроме того, необходимо настроить расширение "номер телефона" в кампаниях или группах объявлений, для которых вы хотите отслеживать звонки.

Системные сервисы отслеживания конверсий по умолчанию

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

Если вы хотите изменить настройки сервиса отслеживания конверсий по умолчанию, создайте новый объект ConversionTracker того же подтипа, указав идентификатор conversionTypeId системного сервиса в поле originalConversionTypeId нового объекта ConversionTracker. По сути, вы изменяете копию системного сервиса отслеживания конверсий, сохраненную в вашем аккаунте. Теперь в вашем аккаунте вместо системного сервиса будет автоматически использоваться созданный вами, а идентификатор исходного системного сервиса будет указан в поле originalConversionTypeId. Новый сервис будет использоваться в том числе для создания статистики конверсий в отчетах.

В аккаунте можно создать только один объект ConversionTracker на основе системного типа. Если вы попытаетесь создать ещё один объект ConversionTracker, указав системный сервис в поле originalConversionTypeId, операция завершится с ошибкой. Другими словами, если вы изменили системный сервис отслеживания конверсий, вы стали владельцем измененной копии, а не оригинала.

Например, если вы измените системный сервис AdCallMetricsConversion, то все расширения типа "номер телефона" в вашем аккаунте будут связаны с созданным вами объектом. В прежней статистике конверсий, где раньше был указан системный тип, теперь будет новый.

В этой таблице приведены названия и идентификаторы всех системных сервисов отслеживания конверсий:

ConversionTracker Name conversionTypeId
AdCallMetricsConversion Звонки по объявлениям 179
AppConversion Загрузки приложения для Android 214

Особенность системного сервиса AppConversion заключается в том, что для него нельзя задать идентификатор приложения. Этот сервис отслеживает конверсии всех приложений из Google Play Маркета, для которых отсутствует объект AppConversion с более конкретными параметрами.

Отслеживание конверсий в аккаунте Центра клиентов

Если вы отслеживаете конверсии в аккаунте Центра клиентов, то сервис ConversionTrackerService возвращает следующие типы конверсий:

  1. Все типы конверсий, настроенные в управляющем аккаунте, используемом для отслеживания.
  2. Все типы конверсий, по которым в клиентских аккаунтах накоплена статистика, в том числе системные типы и типы, принадлежащие управляющим аккаунтам (даже в случаях, когда связь с управляющим аккаунтом была отменена после получения конверсии).
  3. Все типы конверсий, которые клиенты самостоятельно настроили в своих аккаунтах, в том числе цели и транзакции из связанных аккаунтов Google Analytics. В том числе это типы, не импортированные в AdWords (они получают статус HIDDEN), – их можно импортировать только через веб-интерфейс AdWords.

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

Раньше в столбце Конверсии указывались только конверсии, совершенные на одном устройстве. Теперь в нем также можно учитывать конверсии в результате взаимодействия на нескольких устройствах. Для этого нужно задать свойство optimizeOnEstimatedConversions в настройках отслеживания конверсий в аккаунте клиента. Тогда статистика этих конверсий будет использоваться автоматическими стратегиями назначения ставок, где оптимизация выполняется по конверсиям (такими как "Целевая цена за конверсию", "Целевая рентабельность инвестиций" и "Оптимизатор цены за конверсию").

Поля с информацией о конверсиях, доступные в отчетах

Информацию о конверсиях в аккаунтах, кампаниях и группах объявлений можно получать с помощью соответствующих полей отчетов.

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

Поле Conversions и производные от него

Название поля Описание
Conversions Главное поле с данными о конверсиях. Это конверсии, по которым вы хотите оптимизировать ставки. Здесь учитываются только те действия-конверсии (ConversionTracker), для которых поле excludeFromBidding имеет значение false.
ConversionRate Значение поля Conversions, разделенное на общее число кликов, по которым могут отслеживаться конверсии. Оно показывает, как часто (в среднем) взаимодействие пользователя с объявлением приводит к конверсии, для которой поле excludeFromBidding имеет значение false.
ConversionValue Общая ценность всех действий-конверсий (ConversionTracker), для которых поле excludeFromBidding имеет значение false.
CostPerConversion Общая стоимость, разделенная на значение поля Conversions.
ValuePerConversion Значение поля ConversionValue, разделенное на значение поля Conversions.

Поле AllConversions и производные от него

Название поля Описание
AllConversions Здесь учитываются все конверсии AdWords, независимо от значений поля excludeFromBidding, из всех возможных источников (таких как действия на веб-сайте, взаимодействия на нескольких устройствах, телефонные звонки и т. д.).
AllConversionRate Значение поля AllConversions, разделенное на общее число кликов, по которым могут отслеживаться конверсии. Оно показывает, как часто (в среднем) взаимодействие пользователя с объявлением приводит к конверсии.
AllConversionValue Общая ценность всех действий-конверсий. Учитываются все действия-конверсии (ConversionTracker), представляющие конверсии на веб-сайте, взаимодействия на нескольких устройствах и телефонные звонки, независимо от значения поля excludeFromBidding.
CostPerAllConversion Общая стоимость, разделенная на значение поля AllConversions.
ValuePerAllConversion Значение поля AllConversionValue, разделенное на значение поля AllConversions.

CrossDeviceConversions

Название поля Описание
CrossDeviceConversions Конверсии в результате взаимодействий на нескольких устройствах. Это количество случаев, когда пользователь взаимодействует с рекламой (например, нажимает на текстовое объявление или просматривает видео) с помощью одного устройства или браузера, а конверсию совершает с помощью другого. Конверсии из поля CrossDeviceConversions также учитываются в общем числе конверсий (AllConversions).

Столбцы, связанные с конверсиями (для текущей модели атрибуции)

Если изменить значение поля attributionModelType для действия-конверсии в AdWords, это отразится только на будущих данных в столбцах "Конверсии" и "Все конверсии". Узнать, как изменились бы исторические данные при использовании другой модели атрибуции, вы можете с помощью перечисленных ниже столбцов с пометкой "текущая модель". Просто сравните их значения с показателями в столбцах без этой пометки.

Название поля Описание
CostPerCurrentModelAttributedConversion Значение поля с историческими данными CostPerConversion, которое было бы получено при текущей модели атрибуции.
CurrentModelAttributedConversionValue Значение поля с историческими данными ConversionValue, которое было бы получено при текущей модели атрибуции.
CurrentModelAttributedConversions Значение поля с историческими данными Conversions, которое было бы получено при текущей модели атрибуции.
ValuePerCurrentModelAttributedConversion Значение поля с историческими данными ValuePerConversion, которое было бы получено при текущей модели атрибуции.

Импорт конверсий по кликам

С помощью API можно загружать в AdWords данные об офлайн-конверсиях, чтобы получать более полную картину о влиянии рекламы на достижение ваших целей. К примеру, так можно узнать, сколько заказов, сделанных по телефону или при обращении к торговому представителю, получены благодаря объявлениям.

В этом разделе рассказывается, как создать фид для импорта офлайн-конверсий с помощью API AdWords.

Настройка

Сначала необходимо создать типы конверсий, которые вы хотите импортировать. Это можно сделать в интерфейсе AdWords или с помощью кода:

UploadConversion uploadConversion = new UploadConversion();
// Set an appropriate category. This field is optional, and will be set to
// DEFAULT if not mentioned.
uploadConversion.setCategory(ConversionTrackerCategory.LEAD);
uploadConversion.setName(conversionName);
uploadConversion.setViewthroughLookbackWindow(30);
uploadConversion.setCtcLookbackWindow(90);

// Optional: Set the default currency code to use for conversions
// that do not specify a conversion currency. This must be an ISO 4217
// 3-character currency code such as "EUR" or "USD".
// If this field is not set on this UploadConversion, AdWords will use
// the account's currency.
uploadConversion.setDefaultRevenueCurrencyCode("EUR");

// Optional: Set the default revenue value to use for conversions
// that do not specify a conversion value. Note that this value
// should NOT be in micros.
uploadConversion.setDefaultRevenueValue(2.50);

ConversionTrackerOperation uploadConversionOperation = new
    ConversionTrackerOperation();
uploadConversionOperation.setOperator(Operator.ADD);
uploadConversionOperation.setOperand(uploadConversion);

ConversionTrackerReturnValue conversionTrackerReturnValue =
    conversionTrackerService.mutate(
        new ConversionTrackerOperation[] {uploadConversionOperation});

Этот фрагмент кода создает объект UploadConversion, используя ConversionTrackerService. Значение поля conversionName является идентификатором события-конверсии, и оно должно быть уникальным.

Ваш сайт и система отслеживания потенциальных клиентов должны регистрировать GCLID – уникальные идентификаторы AdWords, соответствующие каждому клику по объявлению. Также необходимо включить функцию автоматической пометки, чтобы сайт получал GCLID в качестве параметра URL. Подробнее об этом читайте в руководстве по отслеживанию офлайн-конверсий.

Загрузка данных об офлайн-конверсиях

После создания объекта UploadConversion нужно связать с ним офлайн-конверсии. Для этого передайте сервису OfflineConversionFeedService следующие данные: GCLID, время конверсии (с идентификатором часового пояса), название и (необязательно) ценность и валюту конверсии:

List<OfflineConversionFeed> conversions = Lists.newArrayList();

// Offline conversion #1
OfflineConversionFeed conversion1 = new OfflineConversionFeed();
conversion1.setConversionName(conversionName1);
conversion1.setConversionTime(conversionTime1); // string format: "yyyyMMdd HHmmss tz"
conversion1.setGoogleClickId(gclId1);

// Optional: Set the conversion value.
conversion1.setConversionValue(conversionValue1);

// Optional: Set the conversion currency to an ISO 4217 3-character currency code
// such as "EUR" or "USD". If this field is not set, then AdWords will assume
// the conversion's value is in the default currency of the tracker.
conversion1.setConversionCurrencyCode(conversionCurrency1);

conversions.add(conversion1);

// Offline conversion #2
OfflineConversionFeed conversion2 = new OfflineConversionFeed();
conversion2.setConversionName(conversionName2);
conversion2.setConversionTime(conversionTime2);
conversion2.setGoogleClickId(gclId2);
conversion2.setConversionValue(conversionValue2);
conversion2.setConversionCurrencyCode(conversionCurrency2);

conversions.add(conversion2);

// Add additional conversions to the conversions list...

List<OfflineConversionFeedOperation> conversionOperations = Lists.newArrayList();
for (OfflineConversionFeed conversion : conversions) {
  OfflineConversionFeedOperation offlineConversionOperation = new OfflineConversionFeedOperation();
  offlineConversionOperation.setOperator(Operator.ADD);
  offlineConversionOperation.setOperand(conversion);

  conversionOperations.add(offlineConversionOperation);
}

OfflineConversionFeedReturnValue offlineConversionReturnValue = offlineConversionFeedService
    .mutate(conversionOperations.toArray(
        new OfflineConversionFeedOperation[conversionOperations.size()]));

Правила проверки данных

Чтобы загрузка данных через объект OfflineConversionFeed прошла успешно, должны выполняться перечисленные ниже требования.

Чтобы избежать ошибки OfflineConversionError.INVALID_CONVERSION_TYPE, поле conversionName должно указывать на объект UploadConversion, соответствующий следующим условиям:

  • Поле status объекта UploadConversion должно иметь значение ENABLED на момент клика.

  • Объект UploadConversion должен был существовать в аккаунте AdWords, где учитывается конверсия, на момент клика. Если на момент клика не использовалось отслеживание конверсий в аккаунте Центра клиентов, то объект UploadConversion берется из аккаунта, в который загружаются конверсии. Чтобы узнать, в каком аккаунте учитываются конверсии, войдите в аккаунт AdWords и выберите в главном меню Инструменты > Конверсии. Впрочем, учтите, что здесь показывается, в каком аккаунте конверсии учитываются сейчас, а не в момент клика.

Также должны выполняться следующие условия:

  • Время, указанное в поле conversionTime, должно быть более поздним, чем время клика. Иначе вы получите ошибку OfflineConversionError.CONVERSION_PRECEDES_CLICK.

  • Время, указанное в поле conversionTime, должно быть в пределах периода ретроспективного анализа, указанного в объекте UploadConversion. Иначе вы получите ошибку OfflineConversionError.EXPIRED_CLICK.

  • Значение поля conversionValue должно быть положительным или нулевым.

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

Советы

При создании фида OfflineConversionFeed необходимо учитывать следующее:

  • Загружаемые данные о конверсиях обрабатываются как единое целое: если хотя бы одна конверсия устарела или имеет недействительный идентификатор GCLID, то все остальные конверсии не будут загружены. Этого можно избежать с помощью функции частичного отказа.

  • Если обнаруживаются дублирующиеся конверсии (с одинаковым GCLID, названием и временем конверсии), импортируется только первая из них.

  • Конверсия регистрируется по дате исходного клика, а не запроса на импорт данных.

  • После создания объекта UploadConversion рекомендуется подождать шесть часов и только потом импортировать данные.

  • После импорта данных может пройти до 3 часов, прежде чем статистика появится в аккаунте AdWords.

Примеры кода

В папке Remarketing клиентской библиотеки вы найдете пример кода для загрузки данных об офлайн-конверсиях:

Импорт звонков-конверсий

С помощью API можно загружать в AdWords данные о звонках-конверсиях, чтобы получать более полную картину о влиянии рекламы на достижение ваших целей.

В этом разделе рассказывается, как создать фид для импорта звонков-конверсий с помощью API AdWords.

Настройка

Сначала нужно создать сервис для отслеживания импортируемых звонков-конверсий. Это можно сделать в интерфейсе AdWords или с помощью кода, создав объект UploadCallConversion. Настройка выполняется точно так же, как и для импорта конверсий по кликам, но вместо класса UploadConversion используется UploadCallConversion.

Загрузка данных о звонках-конверсиях

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

Java

public static void runExample(
    AdWordsServicesInterface adWordsServices,
    AdWordsSession session,
    String callerId,
    String callStartTime,
    String conversionName,
    String conversionTime,
    double conversionValue)
    throws Exception {

  // Get the OfflineCallConversionFeedService.
  OfflineCallConversionFeedServiceInterface offlineCallConversionFeedService =
      adWordsServices.get(session, OfflineCallConversionFeedServiceInterface.class);

  // Associate offline call conversions with the existing named conversion tracker. If this
  // tracker was newly created, it may be a few hours before it can accept conversions.
  OfflineCallConversionFeed feed = new OfflineCallConversionFeed();
  feed.setCallerId(callerId);
  feed.setCallStartTime(callStartTime);
  feed.setConversionName(conversionName);
  feed.setConversionTime(conversionTime);
  feed.setConversionValue(conversionValue);

  OfflineCallConversionFeedOperation offlineCallConversionOperation =
      new OfflineCallConversionFeedOperation();
  offlineCallConversionOperation.setOperator(Operator.ADD);
  offlineCallConversionOperation.setOperand(feed);

  // This example uploads only one call conversion, but you can upload multiple call conversions
  // by passing additional operations.
  OfflineCallConversionFeedReturnValue offlineCallConversionReturnValue =
      offlineCallConversionFeedService.mutate(
          new OfflineCallConversionFeedOperation[] {offlineCallConversionOperation});

  // Display results.
  for (OfflineCallConversionFeed feedResult : offlineCallConversionReturnValue.getValue()) {
    System.out.printf(
        "Uploaded offline conversion value of %.4f for caller ID '%s'.%n",
        feedResult.getConversionValue(), feedResult.getCallerId());
  }
}

C#

public void Run(AdWordsUser user, String conversionName, String callStartTime, String callerId,
    String conversionTime, double conversionValue) {
  // Get the OfflineConversionFeedService.
  OfflineCallConversionFeedService offlineCallConversionFeedService =
      (OfflineCallConversionFeedService) user.GetService(
          AdWordsService.v201702.OfflineCallConversionFeedService);

  // Associate offline call conversions with the existing named conversion tracker. If this
  // tracker was newly created, it may be a few hours before it can accept conversions.
  OfflineCallConversionFeed feed = new OfflineCallConversionFeed();
  feed.callerId = callerId;
  feed.callStartTime = callStartTime;
  feed.conversionName = conversionName;
  feed.conversionTime = conversionTime;
  feed.conversionValue = conversionValue;

  OfflineCallConversionFeedOperation offlineCallConversionOperation =
      new OfflineCallConversionFeedOperation();
  offlineCallConversionOperation.@operator = Operator.ADD;
  offlineCallConversionOperation.operand = feed;

  try {
    // This example uploads only one call conversion, but you can upload
    // multiple call conversions by passing additional operations.
    OfflineCallConversionFeedReturnValue offlineCallConversionReturnValue =
        offlineCallConversionFeedService.mutate(
            new OfflineCallConversionFeedOperation[] { offlineCallConversionOperation });

    // Display results.
    foreach (OfflineCallConversionFeed feedResult in offlineCallConversionReturnValue.value) {
      Console.WriteLine("Uploaded offline call conversion value of {0} for caller ID '{1}'.",
          feedResult.conversionValue, feedResult.callerId);
    }
  } catch (Exception e) {
    throw new System.ApplicationException("Failed to upload offline call conversions.", e);
  }
}

Visual Basic

' Get the OfflineConversionFeedService.
Dim offlineCallConversionFeedService As OfflineCallConversionFeedService = _
    CType(user.GetService(AdWordsService.v201702.OfflineCallConversionFeedService),  _
        OfflineCallConversionFeedService)

' Associate offline call conversions with the existing named conversion tracker. If this
' tracker was newly created, it may be a few hours before it can accept conversions.
Dim feed As New OfflineCallConversionFeed()
feed.callerId = callerId
feed.callStartTime = callStartTime
feed.conversionName = conversionName
feed.conversionTime = conversionTime
feed.conversionValue = conversionValue

Dim offlineCallConversionOperation As New OfflineCallConversionFeedOperation()
offlineCallConversionOperation.operator = [Operator].ADD
offlineCallConversionOperation.operand = feed

Try
  ' This example uploads only one call conversion, but you can upload
  ' multiple call conversions by passing additional operations.
  Dim offlineCallConversionReturnValue As OfflineCallConversionFeedReturnValue = _
      offlineCallConversionFeedService.mutate(
          New OfflineCallConversionFeedOperation() {offlineCallConversionOperation})

  ' Display results.
  For Each feedResult As OfflineCallConversionFeed In offlineCallConversionReturnValue.value
    Console.WriteLine("Uploaded offline call conversion value of {0} for caller ID '{1}'.",
        feedResult.conversionValue, feedResult.callerId)
  Next
Catch e As Exception
  Throw New System.ApplicationException("Failed to upload offline call conversions.", e)
End Try

Python

def main(client, caller_id, call_start_time, conversion_name, conversion_time,
         conversion_value):
  # Initialize appropriate services.
  occ_feed_service = client.GetService(
      'OfflineCallConversionFeedService', version='v201702')

  # Associate offline call conversions with the existing named conversion
  # tracker. If this tracker was newly created, it may be a few hours before it
  # can accept conversions.
  feed = {
      'callerId': caller_id,
      'callStartTime': call_start_time,
      'conversionName': conversion_name,
      'conversionTime': conversion_time,
      'conversionValue': conversion_value,
  }

  occ_operations = [{'operator': 'ADD', 'operand': feed}]

  occ_response = occ_feed_service.mutate(occ_operations)
  values = occ_response['value']

  if values:
    for occ_feed in values:
      print ('Uploaded offline call conversion value of "%s" for caller ID '
             '"%s".\n' % (occ_feed['conversionName'], occ_feed['callerId']))
  else:
    print 'No offline call conversions were added.'

PHP

public static function runExample(
    AdWordsServices $adWordsServices,
    AdWordsSession $session,
    $callerId,
    $callStartTime,
    $conversionName,
    $conversionTime,
    $conversionValue
) {
  $offlineCallConversionService = $adWordsServices->get(
      $session, OfflineCallConversionFeedService::class);

  // Associate offline call conversions with the existing named conversion
  // tracker. If this tracker was newly created, it may be a few hours before
  // it can accept conversions.
  $feed = new OfflineCallConversionFeed();
  $feed->setCallerId($callerId);
  $feed->setCallStartTime($callStartTime);
  $feed->setConversionName($conversionName);
  $feed->setConversionTime($conversionTime);
  $feed->setConversionValue($conversionValue);

  $offlineCallConversionOperations = [];
  $offlineCallConversionOperation = new OfflineCallConversionFeedOperation();
  $offlineCallConversionOperation->setOperator(Operator::ADD);
  $offlineCallConversionOperation->setOperand($feed);
  $offlineCallConversionOperations[] = $offlineCallConversionOperation;

  // This example uploads only one call conversion, but you can upload
  // multiple call conversions by passing additional operations.
  $result =
      $offlineCallConversionService->mutate($offlineCallConversionOperations);

  $feed = $result->getValue()[0];
  printf(
      "Uploaded offline call conversion value of '%s' for caller ID '%s'.\n",
      $feed->getConversionValue(),
      $feed->getCallerId()
  );
}

Perl

sub upload_offline_call_conversions {
  my $client                             = shift;
  my $caller_id                          = shift;
  my $call_start_time                    = shift;
  my $conversion_name                    = shift;
  my $conversion_time                    = shift;
  my $conversion_value                   = shift;
  my @offline_call_conversion_operations = ();

  # Associate offline call conversions with the existing named
  # conversion tracker. If this tracker was newly created, it may be a
  # few hours before it can accept conversions.
  my $feed = Google::Ads::AdWords::v201702::OfflineCallConversionFeed->new({
    callerId        => $caller_id,
    callStartTime   => $call_start_time,
    conversionName  => $conversion_name,
    conversionTime  => $conversion_time,
    conversionValue => $conversion_value
  });

  my $offline_call_conversion_operation =
    Google::Ads::AdWords::v201702::OfflineCallConversionFeedOperation->new({
      operator => "ADD",
      operand  => $feed
    });

  push @offline_call_conversion_operations, $offline_call_conversion_operation;

  # This example uploads only one call conversion, but you can upload multiple
  # call conversions by passing additional operations.
  my $result =
    $client->OfflineCallConversionFeedService()
    ->mutate({operations => \@offline_call_conversion_operations});

  # Display results.
  if ($result->get_value()) {
    foreach my $feed_result (@{$result->get_value()}) {
      printf "Uploaded offline call conversion value of \"%s\" for caller ID " .
        "\"%s\".\n",
        $feed_result->get_conversionValue(),
        $feed_result->get_callerId();
    }
  } else {
    print "No offline call conversions were added.\n";
    return;
  }

  return 1;
}

Ruby

occ_feed_srv =
    adwords.service(:OfflineCallConversionFeedService, API_VERSION)

# Associate offline conversions with the existing named conversion tracker. If
# this tracker was newly created, it may be a few hours before it can accept
# conversions.
feed = {
  :caller_id => caller_id,
  :call_start_time => call_start_time,
  :conversion_name => conversion_name,
  :conversion_time => conversion_time,
  :conversion_value => conversion_value
}

occ_operations = [{
  :operator => 'ADD',
  :operand => feed
}]

occ_response = occ_feed_srv.mutate(occ_operations)

if occ_response[:value]
  occ_response[:value].each do |occ_feed|
    puts 'Uploaded offline call conversion value "%s" for caller ID "%s"' %
        [occ_feed[:conversion_name], occ_feed[:caller_id]]
  end
end

Правила проверки данных

Чтобы можно было загрузить данные с помощью объекта OfflineCallConversionFeed, должны выполняться следующие требования:

Чтобы избежать ошибки OfflineCallConversionError.INVALID_CONVERSION_TYPE, поле conversionName должно указывать на объект UploadCallConversion, соответствующий следующим условиям:

  • Поле status объекта UploadCallConversion должно иметь значение ENABLED на момент звонка.

  • Объект UploadCallConversion должен был существовать в аккаунте AdWords, где учитывается конверсия, на момент звонка. Если на момент звонка не использовалось отслеживание конверсий в аккаунте Центра клиентов, то объект UploadCallConversion берется из аккаунта, в который загружаются конверсии. Чтобы узнать, в каком аккаунте учитываются конверсии, войдите в аккаунт AdWords и выберите в главном меню Инструменты > Конверсии. Впрочем, учтите, что здесь показывается, в каком аккаунте конверсии учитываются сейчас, а не в момент звонка.

Также должны выполняться следующие условия:

  • Значение поля conversionValue должно быть положительным или нулевым.

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

Советы

При создании фида OfflineCallConversionFeed необходимо учитывать следующее:

  • После создания объекта UploadCallConversion рекомендуется подождать шесть часов и только потом импортировать данные.

  • После импорта данных может пройти до 3 часов, прежде чем статистика появится в аккаунте AdWords.

  • Если обнаруживаются дублирующиеся конверсии (с одинаковым телефонным номером, названием и временем конверсии), импортируется только первая из них.

Примеры кода

В папке Remarketing клиентской библиотеки вы найдете пример кода для загрузки данных о звонках-конверсиях:

Оставить отзыв о...

Текущей странице
Нужна помощь? Обратитесь в службу поддержки.