Реализация

POST-схема

POST-запрос, отправленный на веб-перехватчик, будет в формате JSON со следующей схемой:

Полезная нагрузка прототипа вебхука

// Represent user lead data for single column
message UserLeadColumnData {
  // Human-readable text of the field type (e.g.: Full Name,  What is your
  // preferred dealership?). This field might not always be populated.
  optional string column_name = 1;

  // Column value based on column type
  oneof column_value {
    string string_value = 2;
  }
  // Column id. Populated for all types of fields. (e.g.: FULL_NAME)
  optional string column_id = 3;
}

// Message to construct webhook JSON payload
message WebhookLead {
  // Unique id to represent lead
  optional string lead_id = 1;
  // User inputted data per column
  repeated UserLeadColumnData user_column_data = 2;
  // API version
  optional string api_version = 3;
  // Form id to which lead belonged to.
  optional int64 form_id = 4;
  // Campaign id that the lead form is associated with
  optional int64 campaign_id = 5;
  // Key to be used by advertiser to verify the request
  // is from Google.
  optional string google_key = 6;
  // Denotes if the lead is a test lead.
  optional bool is_test = 7;
  // Click ID for the lead submission.
  optional string gcl_id = 8;
  // Adgroup id which generated the lead.
  optional int64 adgroup_id = 9;
  // Creative id which generated the lead.
  optional int64 creative_id = 10;
}

Описание поля

Поле Описание
lead_id Уникальная строка, идентифицирующая данный лид.

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

api_version Версия API, которой принадлежит эта схема лида. Это будет использоваться при переходе на новую схему, и пока его можно игнорировать.
form_id Уникальный идентификатор для каждой формы, настроенной в Google Рекламе. Текущий продукт позволяет прикреплять форму на уровне кампании (а не на уровне группы объявлений или объявлений).

Выводы: потенциальные клиенты могут быть разделены только на уровне form_id (т. е. на уровне кампании).

Для обработки клиентам необходимо использовать целое число длиной 8 байт.

campaign_id Идентификатор кампании Google Рекламы или идентификатор позиции (Display & Video 360) из прикрепленной формы для потенциальных клиентов.

Для обработки клиентам необходимо использовать 8-байтовое целое число.

adgroup_id Идентификатор группы объявлений Google Рекламы используется для различения конкретной группы объявлений в кампании. (Доступно только для потенциальных клиентов из видеообъявлений и объявлений Discovery)

Для обработки клиентам необходимо использовать 8-байтовое целое число.

creative_id Идентификатор объявления Google Рекламы используется для идентификации конкретного объявления в группе объявлений. (Доступно только для потенциальных клиентов из видеообъявлений и объявлений Discovery)

Для обработки клиентам необходимо использовать 8-байтовое целое число.

gcl_id Идентификатор клика Google — уникальный параметр, используемый для отслеживания каждого клика по объявлению.
google_key Ключ, настроенный рекламодателем для каждой формы.

Рекомендации по обработке: перед обработкой запроса, полученного через веб-перехватчик, проверка google_key аналогична настройке в Google Рекламе, чтобы быть более уверенным в достоверности запроса. Сохраняйте этот ключ в тайне и обновляйте его в Google Рекламе, если есть основания полагать, что он стал широко известен.

is_test Это поле имеет «необязательную» семантику. Если значение истинно, рассматривайте это отведение как тестовое. Если значение ложно или поле отсутствует, рассматривайте этот интерес как действительный производственный интерес.
user_column_data Повторяющийся кортеж «ключ-значение», передающий отправленные пользователем данные.
  • user_column_data.column_id : тип данных, отправленный пользователем.
  • User_column_data.column_value : для каждого типа данных будет указан тип значения, заполняемый в зависимости от типа данных. Все наши текущие типы данных имеют значение user_column_data.string_value .
  • user_column_data.column_name : Удобочитаемый текст типа данных, отправленный пользователем. Это поле может не всегда быть заполнено, вместо него используйте column_id .
user_column_data.column_id Содержимое User_column_data.string_value user_column_data.column_name (устарело)
"ПОЛНОЕ ИМЯ" Полное имя пользователя. "Полное имя"
"ИМЯ" Имя пользователя. "Имя"
"ФАМИЛИЯ" Фамилия пользователя. "Фамилия"
"ЭЛЕКТРОННАЯ ПОЧТА" Электронная почта пользователя. «Электронная почта пользователя»
"НОМЕР ТЕЛЕФОНА" Телефон пользователя в формате E.164 , например "+11234567890" . «Телефон пользователя»
"ПОЧТОВЫЙ ИНДЕКС" Почтовый индекс пользователя. "Почтовый индекс"
"НАЗВАНИЕ КОМПАНИИ" Название компании пользователя. "Название компании"
"ДОЛЖНОСТЬ" Должность пользователя. "Должность"
"WORK_EMAIL" Рабочий адрес электронной почты пользователя. «Рабочая электронная почта»
"РАБОЧИЙ ТЕЛЕФОН" Рабочий телефон пользователя. "Рабочий телефон"
"АДРЕС УЛИЦЫ" Адрес пользователя. "Адрес улицы"
"ГОРОД" Город пользователя. "Город"
"ОБЛАСТЬ" Регион пользователя. "Область"
"СТРАНА" Страна пользователя. "Страна"
"МАШИНА_МОДЕЛИ" Какая модель вас интересует? Н/Д
"ТИП МАШИНЫ" Какой тип транспортного средства вас интересует? Н/Д
"PREFERRED_DEALERSHIP" Выберите предпочитаемый вами дилерский центр Н/Д
"VEHICLE_PURCHASE_TIMELINE" Когда вы планируете приобрести автомобиль? Н/Д
"АВТОМОБИЛЬ_СОСТОЯНИЕ" Какое состояние автомобиля Вас интересует? Н/Д
"VEHICLE_OWNERSHIP" У вас есть автомобиль? "Н/Д"
"VEHICLE_PAYMENT_TYPE" Какой вариант владения автомобилем вас интересует? Н/Д
"РАЗМЕР КОМПАНИИ" Какого размера ваша компания? Н/Д
"ГОДОВОЙ ОБЪЕМ ПРОДАЖ" Каков ваш годовой объем продаж? Н/Д
"YEARS_IN_BUSINESS" Сколько лет вы занимаетесь бизнесом? Н/Д
"JOB_DEPARTMENT" Какой у вас отдел занятости? Н/Д
"JOB_ROLE" Какова ваша должность? Н/Д
"EDUCATION_PROGRAM" Какая программа вас интересует? Н/Д
"EDUCATION_COURSE" Какой курс вас интересует? Н/Д
"ПРОДУКТ" Какой продукт вас интересует? Н/Д
"УСЛУГА" Какими услугами вы интересуетесь? Н/Д
"ПРЕДЛОЖЕНИЕ" Какое предложение вас интересует? Н/Д
"КАТЕГОРИЯ" Какая категория вас интересует? Н/Д
"PREFERRED_CONTACT_METHOD" Выберите предпочтительный способ связи Н/Д
"ПРЕДПОЧТИТЕЛЬНОЕ МЕСТОПОЛОЖЕНИЕ" Выберите предпочитаемое местоположение Н/Д
"PREFERRED_CONTACT_TIME" В какое время лучше всего с вами связаться? Н/Д
"PURCHASE_TIMELINE" Когда вы собираетесь совершить покупку? Н/Д
"ГОДЫ ОПЫТА" Сколько лет опыта работы у вас есть? Н/Д
"JOB_INDUSTRY" В какой отрасли вы работаете? Н/Д
"УРОВЕНЬ ОБРАЗОВАНИЯ" Какой у вас самый высокий уровень образования? Н/Д
"PROPERTY_TYPE" Какой тип недвижимости вы ищете? Н/Д
"REALTOR_HELP_GOAL" В чем вам нужна помощь риэлтора? Н/Д
"PROPERTY_COMMUNITY" Какое сообщество вам интересно? Н/Д
"ЦЕНОВОЙ ДИАПАЗОН" Какой ценовой диапазон вы ищете? Н/Д
"NUMBER_OF_BEDROOMS" Сколько спален вы ищете? Н/Д
"МЕБЕЛЬНАЯ_СОБСТВЕННОСТЬ" Вы ищете полностью меблированную недвижимость? Н/Д
"PETS_ALLOWED_PROPERTY" Вы ищете недвижимость, в которой допускается размещение с домашними животными? Н/Д
"NEXT_PLANNED_PURCHASE" Какой следующий продукт вы планируете приобрести? Н/Д
"EVENT_SIGNUP_INTEREST" Хотите записаться на мероприятие? Н/Д
"PREFERRED_SHOPPING_PLACES" Где вам интересно совершать покупки? Н/Д
"ЛЮБИМЫЙ_БРЕНД" Какой ваш любимый бренд? Н/Д
"ТРАНСПОРТНАЯ_КОММЕРЧЕСКАЯ_ЛИЦЕНЗИЯ_ТИП" Какой тип действующей коммерческой лицензии у вас есть? Н/Д
"EVENT_BOOKING_INTEREST" Вы заинтересованы в бронировании мероприятия? Н/Д
"СТРАНА НАЗНАЧЕНИЯ" Какая у вас страна назначения? Н/Д
"DESTINATION_CITY" Какой у вас город назначения? Н/Д
"DEPARTURE_COUNTRY" Какая у вас страна отправления? Н/Д
"ГОРОД ОТПРАВЛЕНИЯ" Какой у вас город отправления? Н/Д
"ДАТА ОТБЫТИЯ" Какая у вас дата отъезда? Н/Д
"ДАТА ВОЗВРАТА" Какая дата вашего возвращения? Н/Д
"NUMBER_OF_TRAVELERS" Со сколькими людьми вы путешествуете? Н/Д
"TRAVEL_BUDGET" Каков ваш бюджет на поездку? Н/Д
"TRAVEL_ACCOMMODATION" Где вы хотите остановиться во время путешествия? Н/Д

Обработка потенциальных клиентов

Обработчики потенциальных клиентов должны ответить следующими HTTP-кодами:

HTTP-ответ Тело ответа (JSON) Повторяемая ошибка?
200 {} Н/Д
4XX {"сообщение: текст ошибки в произвольной форме, описывающий, что не так с запросом"} Нет
5XX {"сообщение: необязательное сообщение о периодической повторяемой ошибке"} Да

Дубликаты

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