实现

POST 架构

发送至网络钩子的 POST 请求将采用 JSON 格式,架构如下所示:

网络钩子 Proto 负载

// 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;
  // Asset group id represents the container for holding assets, associated
  // urls, hints and criteria that will be used to select assets and for
  // optimization. This field is only populated for Performance Max campaigns.
  int64 asset_group_id = 11;
}

字段说明

字段 说明
lead_id 唯一字符串,用于标识给定潜在客户。

处理建议:用于对接收的潜在客户进行去重。此字段在所有表单中都是唯一的。报告与特定潜在客户相关的问题时需要使用此 ID。

api_version 此潜在客户架构所属的 API 版本。此值将在迁移到新架构时使用,目前可以忽略。
form_id 在 Google Ads 中配置的每个表单的唯一 ID。当前产品允许在广告系列一级(而不是广告组或广告一级)附加表单。

影响:仅可在 form_id 一级(即广告系列一级)划分潜在客户。

客户端需要使用 8 字节整数进行处理。

campaign_id 所附潜在客户表单的 Google Ads 广告系列 ID 或订单项 ID(Display & Video 360)。

客户端需要使用 8 字节整数进行处理。

adgroup_id Google Ads 广告组 ID 用于区分广告系列中的特定广告组。(仅适用于来自视频广告和发现广告的潜在客户)

客户端需要使用 8 字节整数进行处理。

creative_id Google Ads 广告素材 ID 用于区分广告组中的特定广告素材。(仅适用于来自视频广告和发现广告的潜在客户)

客户端需要使用 8 字节整数进行处理。

gcl_id Google 点击 ID,这是一个唯一的参数,用于跟踪广告的每次点击。
google_key 广告客户为每个表单配置的密钥。

处理建议:在通过网络钩子处理接收的潜在客户之前,验证 google_key 与在 Google Ads 中进行配置相同,这样可以更确信潜在客户的有效性。确保此密钥保密,如果有理由相信此密钥已广泛泄露,请在 Google Ads 中更新。

is_test 此字段具有“可选”语义。如果值为 true,则将此潜在客户视为测试潜在客户。如果值为 false 或字段不存在,则将此潜在客户视为有效的正式版潜在客户。
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 (已废弃)
"FULL_NAME" 用户的全名。 “全名”
"FIRST_NAME" 用户的名字。 “名字”
"LAST_NAME" 用户的姓氏。 “Last Name”
“EMAIL” 用户的电子邮件地址。 "User Email"
"PHONE_NUMBER" 用户电话号码(采用 E.164 格式),例如"+11234567890" "User Phone"
"POSTAL_CODE" 用户的邮政编码。 "Postal Code"
"COMPANY_NAME" 用户所在公司的名称。 “公司名称”
"JOB_TITLE" 用户的职位。 “Job Title”(职位)
"WORK_EMAIL" 用户的工作电子邮件地址。 “工作电子邮件地址”
"WORK_PHONE" 用户的办公电话。 “工作电话”
"STREET_ADDRESS" 用户所在的街道地址。 “街道地址”
“CITY” 用户所在的城市。 “城市”
“REGION” 用户所在的地区。 “地区”
“COUNTRY” 用户所在的国家/地区。 “国家/地区”
"VEHICLE_MODEL" 您对哪种车型感兴趣? 不适用
"VEHICLE_TYPE" 您对哪种类型的汽车感兴趣? 不适用
"PREFERRED_DEALERSHIP" 请选择您的首选经销商 不适用
"VEHICLE_PURCHASE_TIMELINE" 您计划何时购买汽车? 不适用
"VEHICLE_CONDITION" 您对哪种车况感兴趣? 不适用
"VEHICLE_OWNERSHIP" 您有汽车吗? “N/A”
"VEHICLE_PAYMENT_TYPE" 您有兴趣通过哪种方式到手一部车? 不适用
"COMPANY_SIZE" 贵公司的规模有多大? 不适用
"ANNUAL_SALES" 您每年的销量是多少? 不适用
"YEARS_IN_BUSINESS" 您的企业经营多少年了? 不适用
"JOB_DEPARTMENT" 您在哪个部门工作? 不适用
"JOB_ROLE" 您的职位是什么? 不适用
"EDUCATION_PROGRAM" 您对哪个课程/培训计划感兴趣? 不适用
"EDUCATION_COURSE" 您对哪种课程感兴趣? 不适用
"PRODUCT" 您对哪种产品感兴趣? 不适用
“SERVICE” 您对哪种服务感兴趣? 不适用
“OFFER” 您对哪种优惠感兴趣? 不适用
"CATEGORY" 您对哪种类别感兴趣? 不适用
"PREFERRED_CONTACT_METHOD" 请选择您的首选联系方式 不适用
"PREFERRED_LOCATION" 请选择您的首选位置 不适用
"PREFERRED_CONTACT_TIME" 什么时间与您联系最合适? 不适用
"PURCHASE_TIMELINE" 您想何时购买? 不适用
"YEARS_OF_EXPERIENCE" 您有几年工作经验? 不适用
"JOB_INDUSTRY" 您从事哪个行业? 不适用
"LEVEL_OF_EDUCATION" 您的最高学历是什么? 不适用
"PROPERTY_TYPE" 您想要哪种类型的房子? 不适用
"REALTOR_HELP_GOAL" 您需要房地产经纪人为您提供哪方面的帮助? 不适用
"PROPERTY_COMMUNITY" 您对哪个社区感兴趣? 不适用
"PRICE_RANGE" 您想要什么价位的? 不适用
"NUMBER_OF_BEDROOMS" 您想要多少个卧室? 不适用
"FURNISHED_PROPERTY" 您想要找家具齐全的房子吗? 不适用
"PETS_ALLOWED_PROPERTY" 您要找允许养宠物的房子吗? 不适用
“NEXT_PLANNED_PURCHASE” 您接下来计划购买什么产品? 不适用
"EVENT_SIGNUP_INTEREST" 您要报名参加某项活动吗? 不适用
"PREFERRED_SHOPPING_PLACES" 您有兴趣在哪里购物? 不适用
"FAVORITE_BRAND" 您最喜欢哪个品牌? 不适用
"TRANSPORTATION_COMMERCIAL_LICENSE_TYPE" 您持有哪种类型的有效商业驾照? 不适用
"EVENT_BOOKING_INTEREST" 您是否有兴趣预约活动? 不适用
"DESTINATION_COUNTRY" 您的目的地是哪个国家/地区? 不适用
"DESTINATION_CITY" 您的目的地是哪个城市? 不适用
"DEPARTURE_COUNTRY" 您从哪个国家/地区出发? 不适用
"DEPARTURE_CITY" 您从哪个城市出发? 不适用
"DEPARTURE_DATE" 您于哪一天出发? 不适用
"RETURN_DATE" 您的回程日期是哪一天? 不适用
"NUMBER_OF_TRAVELERS" 您要与多少人一起旅行? 不适用
"TRAVEL_BUDGET" 您的旅行预算是多少? 不适用
"TRAVEL_ACCOMMODATION" 您在旅行途中想要住在哪里? 不适用
asset_group_id 系统仅会为效果最大化广告系列填充此字段。 表示包含潜在客户表单的容器 ID。

客户端需要使用 8 字节整数进行处理。

潜在客户处理

潜在客户处理程序应作出响应,并返回以下 HTTP 代码:

HTTP 响应 响应正文 (JSON) 可重试的错误?
200 {} 不适用
4XX {"message: Free form error text, describing what was wrong with request"}
5XX {"message: Intermittent retraible error optional message"}

重复消息

同一个潜在客户不保证仅准确地提交一次,因此潜在客户处理网络钩子应合理处理重复项。