Пользовательский агент приложения
В рамках наших более масштабных усилий по борьбе со спамом мы разработали стандартизированную спецификацию для заголовка User-Agent, отправляемого аналитическим/рекламным продуктом от имени пользователя приложения. User-Agent приложения может быть получен из нативного кода в соответствии со следующей спецификацией:
name version (os_and_version; locale; device; build; Proxy)
Определение этих полей следующее:
Компоненты User-Agent | |
---|---|
name | Название аналитического/рекламного продукта. ( Обратите внимание, что если пользовательский агент создается на стороне клиента, Андроид// Specified by API consumer. iOS// Specified by API consumer. |
version | Версия продукта аналитики/рекламы. ( Андроид// Specified by API consumer. iOS// Specified by API consumer. |
os_and_version | Операционная система и версия операционной системы, на которой работает приложение. ( АндроидString osAndVersion = "Android " + Build.VERSION.RELEASE; iOSUIDevice *uid = [UIDevice currentDevice]; NSString *osAndVersion = [NSString stringWithFormat:@"%@ %@", [uid systemName], [uid systemVersion]]; |
locale | Тег локали IETF для устройства, использующий двухбуквенный код языка и страны, разделенный подчеркиванием. ( АндроидString locale = Locale.getDefault(); iOSNSString *locale = [[NSLocale currentLocale] localeIdentifier] |
device | Название физического устройства, на котором запущен аналитический/рекламный продукт. ( АндроидString device = Build.MODEL; iOS@import Darwin.sys.sysctl; NSString *device(void) { size_t bufferSize = 64; NSMutableData *buffer = [[NSMutableData alloc] initWithLength:bufferSize]; int status = sysctlbyname("hw.machine", buffer.mutableBytes, &bufferSize, NULL, 0); if (status != 0) { return nil; } return [[NSString alloc] initWithCString:buffer.mutableBytes encoding:NSUTF8StringEncoding]; } |
build | «Build/», за которым следует номер сборки операционной системы. ( АндроидString build = "Build/" + Build.ID; iOS@import Darwin.sys.sysctl; NSString *build(void) { size_t bufferSize = 64; NSMutableData *buffer = [[NSMutableData alloc] initWithLength:bufferSize]; int status = sysctlbyname("kern.osversion", buffer.mutableBytes, &bufferSize, NULL, 0); if (status != 0) { return nil; } return [[NSString alloc] initWithCString:buffer.mutableBytes encoding:NSUTF8StringEncoding]; } |
Добавляйте ; Proxy
только в конец User-Agent приложения при создании серверного User-Agent приложения. Если User-Agent приложения полностью создается на стороне клиента, исключите ; Proxy
. Таким образом, User-Agent приложения может быть:
- Android:
AdMob/7.10.1 (Android 6.0; en_US; SM-G900F; Build/MMB29M; Proxy)
- iOS:
AdMob/7.10.1 (iOS 10.0.2; en_US; iPhone9,1; Build/13D15; Proxy)
Запрос на отслеживание конверсий
Целью запросов на отслеживание конверсий является уведомление Google Ads о событии в приложении, которое следует отслеживать как конверсию и/или использовать для заполнения списка ремаркетинга, а также для извлечения метаданных, описывающих любой клик, предшествовавший событию.
Все вызовы API осуществляются к домену www.googleadservices.com
. Запросы на конверсию — это POST
-запросы через HTTPS по следующему пути:
/pagead/conversion/app/version
1.0
.Стандартный запрос на конвертацию приложения будет содержать следующие параметры.
Запрос на отслеживание конверсий | |
---|---|
dev_token | Необходимый Местоположение: Запрос Уникальный статический токен разработчика, выдаваемый потребителю API. Z_eErE4DkvcKjDM1OVE4c4 |
link_id | Необходимый Местоположение: Запрос Идентификатор ссылки, привязывающий токен разработчика потребителя API к конкретному приложению. 31FF8D67E5BB5DD5029DCC2734C2F884 |
app_event_type | Необходимый Местоположение: Запрос Имя произошедшего события приложения. Это поле представляет собой перечисление и принимает только следующие значения: • first_open • session_start • in_app_purchase • view_item_list • view_item • view_search_results • add_to_cart • ecommerce_purchase • custom Событие |
app_event_name | Требуется при определенных условиях Местоположение: Запрос Имя любого пользовательского события приложения, которое не принимается в поле level_achieved Level Achieved Это поле не должно содержать ни одного значения, зарезервированного для |
app_event_data | Необязательный Расположение: Тело Пересылайте любые дополнительные расширенные данные о событиях в виде простого JSON-объекта, сопоставляющего строковые ключи со значениями. Допустимые значения: строки и массивы строк. {"level": 5, "attempts": 20} |
rdid | Необходимый Местоположение: Запрос Допустимая строка UUID, представляющая необработанный идентификатор устройства. f10e1de2-e237-4f50-b6aa-843c45cc63d6 Если идентификатор устройства отсутствует, например, идентификатор устройства от несогласованного пользователя ATT, установите его равным нулю. 00000000-0000-0000-0000-000000000000 |
id_type | Необходимый Местоположение: Запрос Тип идентификатора, хранящегося в поле Андроидadvertisingid iOSidfa |
eea | Требуется при определенных условиях Местоположение: Запрос Область действия ЕЭЗ .
|
ad_personalization | Требуется при определенных условиях Местоположение: Запрос Флаги для персонализированной рекламы
|
ad_user_data | Требуется при определенных условиях Местоположение: Запрос Флаг согласия на использование данных пользователя в рекламных целях
|
lat | Необходимый Местоположение: Запрос Статус ограничения отслеживания рекламы для устройства.
|
app_version | Необходимый Местоположение: Запрос Текущая версия приложения. Её следует стандартизировать следующим образом. АндроидpackageManager.getPackageInfo(packageName(), PackageManager.GET_META_DATA).versionName iOS[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"] 1.2.4 |
os_version | Необходимый Местоположение: Запрос Текущая версия операционной системы хоста приложения. Её следует стандартизировать следующим образом. Андроидandroid.os.Build.VERSION.RELEASE iOS[[UIDevice currentDevice] systemVersion] |
sdk_version | Необходимый Местоположение: Запрос Версия SDK, измеренная в результате события. Поскольку эта версия используется в основном для отладки, она должна точно соответствовать версии выпуска, опубликованной вместе с вашими выпусками SDK. Если приложение не использует SDK, передайте то же значение, что и 1.9.5r6 |
timestamp | Необходимый Местоположение: Запрос Временная метка UNIX, указывающая момент события преобразования, в секундах с точностью до микросекунд. 1432681913.123456 |
value | Необязательный Местоположение: Запрос Денежная стоимость события, если таковая имеется. Она всегда должна быть представлена в машиночитаемом формате с плавающей запятой, используя десятичную точку для разделения целой и дробной частей значения. 1.99 |
currency_code | Требуется при определенных условиях Местоположение: Запрос Код валюты ISO 4217 для параметра USD |
gclid | Требуется при определенных условиях Местоположение: Запрос Значение параметра запроса Cj0KEQjw0dy4BRCuuL_e5M |
market_referrer_gclid | Требуется при определенных условиях Местоположение: Запрос Значение параметра запроса BX3QojHp4mY5MrJtFM_d1u |
gclid_only_request | Требуется при определенных условиях Местоположение: Запрос Идентификатор для атрибуции на основе 1 |
gbraid | Требуется при определенных условиях Местоположение: Запрос Значение ChEI8IixhgYQrufHkIjz3YWRARIzALev_G_O |
app_open_source | Требуется при определенных условиях Местоположение: Запрос Значение для определения кликов по рекламе по ссылке или органических сеансов приложения. ad_click or organic |
User-Agent | Необходимый Расположение: Заголовок Пользовательский агент приложения, как определено в предыдущем разделе. AdMob/7.10.1 (Android 6.0; en_US; SM-G900F; Build/MMB29M) |
X-Forwarded-For | Необходимый Расположение: Заголовок Публичный адрес IPv4 или IPv6 устройства, на котором было измерено событие. 216.58.194.174 |
Все запросы должны быть отправлены по протоколу HTTPS. Пинги, полученные по протоколу HTTP, будут отклонены.
Обратите внимание: если тело запроса пустое (в случаях, когда в полезной нагрузке app_event_data
не передаются расширенные данные о событии), наш сервер требует, чтобы вы явно установили заголовок Content-Length: 0
в вашем запросе.
Образец запроса
Пример допустимого запроса на отслеживание конверсий с нестандартным типом события и информацией о доходе :
POST /pagead/conversion/app/1.0 ?dev_token=Z_eErE4DkvcKjDM1OVE4c4 &link_id=31FF8D67E5BB5DD5029DCC2734C2F884 &app_event_type=in_app_purchase &rdid=0F7AB11F-DA50-498E-B225-21AC1977A85D &id_type=idfa &eea=0 &ad_personalization=1 &ad_user_data=1 &lat=0 &app_version=1.2.4 &os_version=9.3.2 &sdk_version=1.9.5r6 ×tamp=1432681913.123456 &value=1.99 ¤cy_code=USD &market_referrer_gclid=BX3QojHp4mY5MrJtFM_d1u &gclid=Cj0KEQjw0dy4BRCuuL_e5M &gclid_only_request=0 &gbraid=ChEI8IixhgYQrufHkIjz3YWRARIzALev_G_O Host: www.googleadservices.com User-Agent: MyAnalyticsCompany/1.0.0 (iOS 10.0.2; en_US; iPhone9,1; Build/13D15; Proxy) X-Forwarded-For: 216.58.194.174 Content-Type: application/json; charset=utf-8
{"app_event_data":{"item_id":["Crayons","Markers"]}}
Пример допустимого запроса на отслеживание конверсий с непользовательским типом события и информацией о доходе при отсутствии rdid (advertisingid) :
POST /pagead/conversion/app/1.0 ?dev_token=Z_eErE4DkvcKjDM1OVE4c4 &link_id=31FF8D67E5BB5DD5029DCC2734C2F884 &app_event_type=in_app_purchase &rdid=00000000-0000-0000-0000-000000000000 &id_type=advertisingid &eea=0 &ad_personalization=1 &ad_user_data=1 &lat=1 &app_version=1.2.4 &os_version=9.3.2 &sdk_version=1.9.5r6 ×tamp=1432681913.123456 &value=1.99 ¤cy_code=USD &market_referrer_gclid=BX3QojHp4mY5MrJtFM_d1u &gclid=Cj0KEQjw0dy4BRCuuL_e5M &gclid_only_request=1 &gbraid=ChEI8IixhgYQrufHkIjz3YWRARIzALev_G_O Host: www.googleadservices.com User-Agent: MyAnalyticsCompany/1.0.0 (iOS 10.0.2; en_US; Android,1; Build/13D15; Proxy) X-Forwarded-For: 216.58.194.174 Content-Type: application/json; charset=utf-8
{"app_event_data":{"item_id":["Crayons","Markers"]}}
Пример допустимого запроса на начало сеанса :
POST /pagead/conversion/app/1.0 ?dev_token=Z_eErE4DkvcKjDM1OVE4c4 &link_id=31FF8D67E5BB5DD5029DCC2734C2F884 &app_event_type=session_start &rdid=0F7AB11F-DA50-498E-B225-21AC1977A85D &id_type=idfa &eea=0 &ad_personalization=1 &ad_user_data=1 &lat=0 &app_version=1.2.4 &os_version=9.3.2 &sdk_version=1.9.5r6 ×tamp=1432681913.123456 &gclid=Cj0KEQjw0dy4BRCuuL_e5M &gbraid=ChEI8IixhgYQrufHkIjz3YWRARIzALev_G_O Host: www.googleadservices.com User-Agent: MyAnalyticsCompany/1.0.0 (iOS 10.0.2; en_US; iPhone9,1; Build/13D15; Proxy) X-Forwarded-For: 216.58.194.174 Content-Type: application/json; charset=utf-8
Пример допустимого запроса на реатрибуцию начала сеанса для сеанса, который начался с глубокой ссылки example://product/123?gclid=Cj0KEQjw0dy4BRCuuL_e5M
:
POST /pagead/conversion/app/1.0 ?dev_token=Z_eErE4DkvcKjDM1OVE4c4 &link_id=31FF8D67E5BB5DD5029DCC2734C2F884 &app_event_type=session_start &rdid=0F7AB11F-DA50-498E-B225-21AC1977A85D &id_type=idfa &eea=0 &ad_personalization=1 &ad_user_data=1 &lat=0 &app_version=1.2.4 &os_version=9.3.2 &sdk_version=1.9.5r6 ×tamp=1432681913.123456 &gclid=Cj0KEQjw0dy4BRCuuL_e5M &gbraid=ChEI8IixhgYQrufHkIjz3YWRARIzALev_G_O Host: www.googleadservices.com User-Agent: MyAnalyticsCompany/1.0.0 (iOS 10.0.2; en_US; iPhone9,1; Build/13D15; Proxy) X-Forwarded-For: 216.58.194.174 Content-Type: application/json; charset=utf-8
Пример действительного запроса на отслеживание конверсий для пользователя из ЕЭЗ с предоставленным согласием на данные пользователя рекламы и отклонением персонализации рекламы:
POST /pagead/conversion/app/1.0 ?dev_token=Z_eErE4DkvcKjDM1OVE4c4 &link_id=31FF8D67E5BB5DD5029DCC2734C2F884 &app_event_type=in_app_purchase &rdid=0F7AB11F-DA50-498E-B225-21AC1977A85D &id_type=idfa &eea=1 &ad_personalization=0 &ad_user_data=1 &lat=0 &app_version=1.2.4 &os_version=9.3.2 &sdk_version=1.9.5r6 ×tamp=1432681913.123456 &value=1.99 ¤cy_code=USD Host: www.googleadservices.com User-Agent: MyAnalyticsCompany/1.0.0 (iOS 10.0.2; en_US; iPhone9,1; Build/13D15; Proxy) X-Forwarded-For: 216.58.194.174 Content-Type: application/json; charset=utf-8
Кодирование данных событий
Для параметра тела app_event_data
используйте следующие соглашения для примитивных типов данных:
Плавать
- Использовать точку в качестве десятичного разделителя независимо от локализации приложения.
- Для представления денежных значений используйте двузначную десятичную точность. Например, 2,99.
- Не используйте экспоненциальную запись, например, 2E+9.
- Не используйте запятую для разделения групп цифр, например, 1 000 000.
- Допустимые примеры:
-
-0.5
-
2.99
-
1000000.123
-
Целое число
- Отправлять только целые значения без десятичных цифр.
- Не используйте запятую для разделения групп цифр, например, 1 000 000.
- Допустимые примеры:
-
1000
-
-11
-
0
-
Дата
- Формат даты: гггг-мм-дд
-
yyyy
= четырехзначный год, например, 2016 -
mm
= двузначный месяц, например 09 для сентября -
dd
= двузначный день, например 23 для 23-го дня месяца
-
- Всегда отправляйте указанное выше количество цифр, например, если отправляете значение dd для 5-го дня месяца, отправьте
05
. - Допустимые примеры:
-
"2016-09-23"
-
"1990-12-31"
-
- Формат даты: гггг-мм-дд
Метка времени
- Формат времени: временная метка Unix/Epoch, определенная в часовом поясе UTC с точностью до микросекунд.
- Допустимые примеры:
-
1478713087
на среду, 9 ноября 2016 г., 17:38:07 по Гринвичу -
1073513982.123000
на среду, 7 января 2004 г., 22:19:42.123 GMT
-
Массивы
- Отправлять только массивы примитивных значений (строки, числа и логические значения)
- Допустимые примеры:
-
[123, 456, 789]
-
["abc"]
-
Ответ отслеживания конверсий
Ответ отслеживания конверсий имеет следующий формат:
{ "ad_events": [<ad event objects>], "errors": [<error strings>], "attributed": true|false }
Массивы ad_events и error могут быть пустыми.
Мы ожидаем, что ошибки будут иметь машиночитаемые коды ошибок, например invalid_timestamp
.
Коды ошибок
invalid_timestamp — запрос не имеет допустимой временной метки.
eea_missing_or_invalid — в запросе либо не было задано поле «eea», либо оно было недействительным.
ad_user_data_missing — поле запроса "ad_user_data" не задано. Поле "ad_user_data" является обязательным для всех запросов DMA, входящих в область действия.
ad_user_data_invalid — значение запроса "ad_user_data" недопустимо. Поле "ad_user_data" обязательно для всех запросов DMA в рамках области действия.
ad_personalization_missing_or_invalid — в запросе либо не было задано поле "ad_personalization", либо оно было недействительным. Поле "ad_personalization" обязательно для всех запросов DMA, входящих в область действия запроса.
События рекламы являются основными объектами атрибуции приложения и будут содержать следующие свойства.
Важные примечания относительно поведения ответа, зависящего от согласия пользователя:
Если конверсия подразумевает согласие пользователя на использование данных рекламы, и у пользователя есть согласие на перекрёстное использование в настройках Google, Google Реклама ответит одним последним кликом по всем своим CPS. Если пользователь не дал согласия на перекрёстное использование в настройках Google, Google Реклама ответит несколькими последними кликами по каждому CPS.
Если конверсия включает определенные CPS в выбранном пользователем согласии на перекрестное использование, но не включает другие, Google Ads отреагирует одним последним кликом по CPS, которым предоставлено согласие на перекрестное использование, но несколькими последними кликами на основе CPS для тех CPS, которым не предоставлено согласие на перекрестное использование.
Ответ отслеживания конверсий | |
---|---|
ad_event_id | Всегда присутствует нить Q2owS0VRancwZHk0QlJDdXVMX2U1TQ |
conversion_metric | Всегда присутствует нить Метрика конверсии, используемая для атрибуции. Изначально мы будем поддерживать одну метрику конверсии. conversion |
timestamp | Всегда присутствует число Временная метка UNIX, указывающая момент совершения события по рекламе, в секундах с точностью до микросекунд. Это значение следует использовать для атрибуции последнего клика. 1432681913.123456 |
campaign_type | Всегда присутствует нить В этом поле указывается тип кампании, в рамках которой было показано рекламное событие. Возможны следующие значения. ACI ACE ACPre Search Display Video Shopping Hotel Performance_Max Other ACI — это аббревиатура от App Campaign for Install (Кампания для установки приложений). ACE — это аббревиатура от App Campaigns for Engagement (Кампании для вовлечения приложений). |
campaign_id | Всегда присутствует число Числовой идентификатор кампании, в которой было сгенерировано рекламное событие. Это значение гарантированно уникально. 123456789 |
campaign_name | Всегда присутствует нить Название кампании, в которой было показано объявление, заданное рекламодателем. Это значение не гарантирует уникальность. Occasional Gamers (Video) |
ad_type | Всегда присутствует нить Тип рекламы, приведшей к рекламному событию. Это значение можно использовать для различения типов инвентаря следующим образом. Продвижение приложенияClickToDownload AppDeepLink AppDeepLinkContinue Unknown |
external_customer_id | Всегда присутствует число Идентификатор рекламодателя, которому принадлежит кампания, в которой было показано рекламное событие. Это значение можно использовать для различения аккаунтов Google Рекламы. 123456789 |
location | Всегда присутствует число Идентификационный код местоположения, указывающий географическое положение события показа рекламы. Чтобы интерпретировать коды местоположения, обратитесь к справочнику Google Ads API . |
network_type | Всегда присутствует нить Это поле определяет рекламную сеть Google Ads, в которой произошло событие показа рекламы. Возможные значения: Search Display YouTube GoogleTv cross-network |
network_subtype | Будет иметь нить В этом поле указывается «подтип» рекламной сети Google Ads, в которой произошло событие показа объявления. Возможные значения зависят от типа основной сети. ПоискОбычный поиск GoogleGoogleSearch SearchPartners ОтображатьИздатели мобильных веб-сайтовmGDN Google AdMob ЮтубСеть видео YouTubeYouTubeVideos YouTubeSearch VideoPartners GoogleTVСеть GoogleTV VideosGoogleTvVideos кросс-сетевойМаксимальная производительность кросс-сетиcross-network |
video_id | Предоставляется только в том случае, если нить Идентификатор видео YouTube, связанный с рекламным событием. dQw4w9WgXcQ |
keyword | Предоставляется только в том случае, если нить Ключевое слово поиска, связанное с рекламным событием. +food +delivery |
match_type | Предоставляется только в том случае, если нить Тип соответствия для ключевых слов поиска. Точныйe p b |
placement | Предоставляется только в том случае, если нить Место размещения, связанное с рекламным событием. mobileapp::1-343200656 |
ad_group_id | Предоставляется только в том случае, если число Числовой идентификатор группы объявлений, созданной в результате события объявления. Это значение гарантированно уникально. 123456789 |
ad_group_name | Предоставляется только в том случае, если нить Название группы объявлений, определённое рекламодателем, в которой произошло событие показа рекламы. Это значение не гарантирует уникальность. My App AdGroup |
creative_id | Предоставляется только в том случае, если число Числовой идентификатор рекламного блока, создавшего событие. Это значение гарантированно уникально. 123456789 |
interaction_type | Эта сфера всегда будет связана с вовлеченностью. нить |
Примеры ответов
Пример ответа отслеживания конверсий, если запрос содержал ошибки:
{ "ad_events": [], "errors": ["INVALID_CURRENCY_CODE"], "attributed": false }
Пример отрицательного ответа отслеживания конверсий:
{ "ad_events": [], "errors": [], "attributed": false }
Ответ на отслеживание конверсий будет возвращен для всех запросов на отслеживание конверсий.
Пример утвердительного ответа отслеживания конверсий для пользователя из стран, не входящих в ЕЭЗ, для универсальной кампании приложений:
{ "ad_events": [{ "ad_event_id": "Q2owS0VRancwZHk0QlJDdXVMX2U1TQ", "conversion_metric": "conversion", "interaction_type": "engagement", "campaign_type": "ACI", "campaign_id": 123456789, "campaign_name": "My App Campaign", "ad_type": "ClickToDownload", "external_customer_id": 123456789, "location": 21144, "network_type": "Search", "network_subtype": "GoogleSearch", "video_id": null, "keyword": null, "match_type": null, "placement": null, "ad_group_id": null, "ad_group_name": "", "creative_id": null, "timestamp": 1432681913.123456 }], "errors": [], "attributed": true, "warnings": [] }
Пример утвердительного ответа отслеживания конверсий для пользователя из стран, не входящих в ЕЭЗ, для поисковой кампании:
{ "ad_events": [{ "ad_event_id": "Q2owS0VRancwZHk0QlJDdXVMX2U1TQ", "conversion_metric": "conversion", "interaction_type": "engagement", "campaign_type": "Search", "campaign_id": 123456789, "campaign_name": "My App Campaign", "ad_type": "ClickToDownload", "external_customer_id": 123456789, "location": 21144, "network_type": "Search", "network_subtype": "GoogleSearch", "video_id": null, "keyword": "+space +birds", "match_type": "b", "placement": null, "ad_group_id": 123456789, "ad_group_name": "My App AdGroup", "creative_id": 123456789, "timestamp": 1432681913.123456 }], "errors": [], "attributed": true, "warnings": [] }
Пример утвердительного ответа отслеживания конверсий для пользователя из стран, не входящих в ЕЭЗ, для медийной кампании:
{ "ad_events": [{ "ad_event_id": "Q2owS0VRancwZHk0QlJDdXVMX2U1TQ", "conversion_metric": "conversion", "interaction_type": "engagement", "campaign_type": "Display", "campaign_id": 123456789, "campaign_name": "My App Campaign", "ad_type": "ClickToDownload", "external_customer_id": 123456789, "location": 21144, "network_type": "Display", "network_subtype": "mGDN", "video_id": null, "keyword": null, "match_type": null, "placement": "mobile-app::2-343200656", "ad_group_id": 123456789, "ad_group_name": "My App AdGroup", "creative_id": 123456789, "timestamp": 1432681913.123456 }], "errors": [], "attributed": true, "warnings": [] }
Пример утвердительного ответа отслеживания конверсий для пользователя из стран, не входящих в ЕЭЗ, для кампании на YouTube:
{ "ad_events": [{ "ad_event_id": "Q2owS0VRancwZHk0QlJDdXVMX2U1TQ", "conversion_metric": "conversion", "interaction_type": "engagement", "campaign_type": "Video", "campaign_id": 123456789, "campaign_name": "My App Campaign", "ad_type": "ClickToDownload", "external_customer_id": 123456789, "location": 21144, "network_type": "YouTube", "network_subtype": "YouTubeVideos", "video_id": "dQw4w9WgXcQ", "keyword": null, "match_type": null, "placement": null, "ad_group_id": 123456789, "ad_group_name": "My App AdGroup", "creative_id": 123456789, "timestamp": 1432681913.123456 }], "errors": [], "attributed": true, "warnings": [] }
Пример ответа отслеживания приписанных конверсий, где конверсия приписывается обоим взаимодействиям рекламы Play + Search, но согласие на перекрестное использование 5(2)(b) + 5(2)(c) между CPS Play + Search отклонено:
{ "ad_events": [{ "ad_event_id": "Q2owS0VRancwZHk0QlJDdXVMX2U1TQ", "conversion_metric": "conversion", "interaction_type": "click", "campaign_type": "ACI", "campaign_id": 123456789, "campaign_name": "My App Campaign", "ad_type": "ClickToDownload", "external_customer_id": 123456789, "location": 21144, "network_type": "Display", "network_subtype": "", "video_id": null, "keyword": null, "match_type": null, "placement": null, "ad_group_id": null, "ad_group_name": "", "creative_id": null, "timestamp": 1432681913.123456 }, { "ad_event_id": "I8YUwWqxvOyqcwOcqBAkYZBMaOONSd", "conversion_metric": "conversion", "interaction_type": "click", "campaign_type": "ACI", "campaign_id": 123456789, "campaign_name": "My App Campaign", "ad_type": "ClickToDownload", "external_customer_id": 123456789, "location": 21144, "network_type": "Search", "network_subtype": "", "video_id": null, "keyword": null, "match_type": null, "placement": null, "ad_group_id": null, "ad_group_name": "", "creative_id": null, "timestamp": 1432681913.123456 }, ], "errors": [], "warnings": [], "attributed": true }
Пример ответа отслеживания приписанных конверсий, в котором конверсия приписывается как взаимодействиям с рекламой Play + Search, так и согласию на перекрестное использование 5(2)(b) + 5(2)(c) между CPS Play + Search, аналогичен сегодняшнему поведению конверсий:
{ "ad_events": [{ "ad_event_id": "Q2owS0VRancwZHk0QlJDdXVMX2U1TQ", "conversion_metric": "conversion", "interaction_type": "click", "campaign_type": "ACI", "campaign_id": 123456789, "campaign_name": "My App Campaign", "ad_type": "ClickToDownload", "external_customer_id": 123456789, "location": 21144, "network_type": "Display", "network_subtype": "", "video_id": null, "keyword": null, "match_type": null, "placement": null, "ad_group_id": null, "ad_group_name": "", "creative_id": null, "timestamp": 1432681913.123456 }, ], "errors": [], "warnings": [], "attributed": true }
Пример ответа отслеживания приписанных конверсий, в котором конверсия приписывается взаимодействиям с рекламой Play, Search и YouTube, а согласие на перекрестное использование 5(2)(b) + 5(2)(c) принимается между CPS Play + Search, но отклоняется CPS YouTube:
{ "ad_events": [{ "ad_event_id": "Q2owS0VRancwZHk0QlJDdXVMX2U1TQ", "conversion_metric": "conversion", "interaction_type": "click", "campaign_type": "ACI", "campaign_id": 123456789, "campaign_name": "My App Campaign", "ad_type": "ClickToDownload", "external_customer_id": 123456789, "location": 21144, "network_type": "Display", "network_subtype": "", "video_id": null, "keyword": null, "match_type": null, "placement": null, "ad_group_id": null, "ad_group_name": "", "creative_id": null, "timestamp": 1432681913.123456 }, { "ad_event_id": "I8YUwWqxvOyqcwOcqBAkYZBMaOONSd", "conversion_metric": "conversion", "interaction_type": "click", "campaign_type": "ACI", "campaign_id": 123456789, "campaign_name": "My App Campaign", "ad_type": "ClickToDownload", "external_customer_id": 123456789, "location": 21144, "network_type": "Youtube", "network_subtype": "YouTubeVideos", "video_id": null, "keyword": null, "match_type": null, "placement": null, "ad_group_id": null, "ad_group_name": "", "creative_id": null, "timestamp": 1432681913.123456 }, ], "errors": [], "warnings": [], "attributed": true }
Запрос на межсетевую атрибуцию
Когда Google Ads отвечает утвердительно на запрос отслеживания конверсий, потребитель API должен уведомить Google Ads о своем решении по кросс-сетевой атрибуции после определения последнего клика.
Запрос на межсетевую атрибуцию идентичен исходному запросу отслеживания конверсий, но с путем запроса:
/pagead/conversion/app/1.0/cross_network
и добавление двух обязательных параметров:
Запрос на межсетевую атрибуцию | |
---|---|
ad_event_id | Необходимый Местоположение: Запрос Идентификатор |
attributed | Необходимый Местоположение: Запрос Получил ли Google Ads кредит за конверсию, совершенную потребителем API. Значение: |
Пример допустимого запроса на кросс-сетевую атрибуцию:
POST /pagead/conversion/app/1.0/cross_network ?dev_token=Z_eErE4DkvcKjDM1OVE4c4 &link_id=31FF8D67E5BB5DD5029DCC2734C2F884 &app_event_type=custom &app_event_name=level_achieved &rdid=0F7AB11F-DA50-498E-B225-21AC1977A85D &id_type=idfa &lat=0 &app_version=1.2.4 &os_version=9.3.2 &sdk_version=1.9.5r6 ×tamp=1432681913.123456 &value=1.99 ¤cy_code=USD &ad_event_id=Q2owS0VRancwZHk0QlJDdXVMX2U1TQ &attributed=1 Host: www.googleadservices.com User-Agent: MyAnalyticsCompany/1.0.0 (iOS 10.0.2; en_US; iPhone9,1; Build/13D15; Proxy) X-Forwarded-For: 216.58.194.174 Content-Type: application/json; charset=utf-8
Допустимый запрос на кросс-сетевую атрибуцию всегда получит общий ответ 200 без тела ответа.