设置 Cookie 授权状态

用于记录或更新客户对 Cookies 的授权状态。

当客户在 GDPR Cookie Consent 弹窗中保存 Cookie 偏好设置后,可以调用此接口更新客户对 Cookies 的授权状态。

请求信息

API 路径

POST https://{handle}.myshopline.com/api/privacy/set_tracking_consent

备注

handle 表示店铺的唯一标识符,值为店铺域名的前缀。例如,域名为 open001.myshopline.com 的店铺,其 handleopen001

请求头

参数名参数类型是否必填描述
Content-TypeString值固定为 application/json
CookieString商家网页 Cookies,必须包含 _tracking_consent_cmp_a。以上两个 Cookies 的值必须为合法且经过 URL 编码的 JSON 格式字符串。

请求体

参数名参数类型是否必填描述
preferencesBoolean是否同意使用功能型 Cookies(Functionality Cookies)。
  • true:同意使用功能型 Cookies
  • false:拒绝使用功能型 Cookies
该类 Cookies 用于让网站记住用户名和个性化选择,如国家、地区和语言,以提供个性化的功能。
analyticsBoolean是否同意使用分析型 Cookies(Performance Cookies)。
  • true:同意使用分析型 Cookies
  • false:拒绝使用分析型 Cookies
该类 Cookies 用于匿名收集客户与网站的互动数据,以分析和优化网站性能。
marketingBoolean是否同意使用个性化与广告 Cookies(Targeting and Advertising Cookies)。
  • true:同意使用个性化与广告 Cookies
  • false:拒绝使用个性化与广告 Cookies
该类 Cookies 用于允许广告商跨站追踪客户以展示广告,并衡量广告效果。
max_ageInteger设置客户授权状态 Cookies(_tracking_consent_cmp_a)的有效期。单位:秒。
取值范围:1-31536000
默认值:31536000(365 天)

响应信息

响应头

参数名参数类型描述
Set-CookieString更新后的 _tracking_consent Cookie,用于记录客户授权状态。Cookie 的值为 URL 编码后的 JSON 格式字符串。
例子:_tracking_consent=%7B%22con%22%3A%7B%22CMP%22%3A%7B%22a%22%3A%221%22%2C%22p%22%3A%221%22%2C%22s%22%3A%221%22%2C%22m%22%3A%221%22%7D%7D%2C%22lim%22%3A%5B%22GDPR%22%5D%2C%22v%22%3A%222.1%22%7D; Path=/; Max-Age=3600
Set-CookieString更新后的 _cmp_a Cookie,用于记录客户授权明细。Cookie 的值为 URL 编码后的 JSON 格式字符串。
例子:_cmp_a=%7B%22purposes%22%3A%7B%22a%22%3Atrue%2C%22p%22%3Atrue%2C%22m%22%3Atrue%2C%22t%22%3Atrue%7D%2C%22display_banner%22%3Atrue%2C%22merchant_geo%22%3A%22DE%22%2C%22sale_of_data_region%22%3Afalse%7D; Path=/; Max-Age=3600; SameSite=Lax

响应体

参数名参数类型描述
codeString返回码,表示请求的处理结果。有效枚举值包含:
  • SUCCESS:接口调用成功
  • INVALID_ARGUMENT:请求参数错误
successBoolean表示接口调用是否成功。有效枚举值包含:
  • true:接口调用成功
  • false:接口调用失败
messageString返回被清理的 Cookie 列表或错误信息。
  • 请求成功时返回被清理的 Cookies。例子:clear = _ga,_fbp。若无 Cookie 被清理,则返回 clear =
  • 请求失败时返回错误描述信息。
dataBoolean表示客户授权状态 Cookies 是否已更新以及被客户拒绝使用的 Cookies 是否已删除。
  • true:客户授权状态 Cookies 已更新且被客户拒绝使用的 Cookies 已删除。
  • false:客户授权状态 Cookies 未更新且被客户拒绝使用的 Cookies 未删除。错误详情可查看响应体中的 message 字段。

样例

成功样例

如下为请求成功的样例,其中 _tracking_consent_cmp_a Cookies 已更新,且被客户拒绝授权的 Cookies 已删除。

请求

curl --location --request POST 'https://your-handle.myshopline.com/api/privacy/set_tracking_consent' \
--header 'Content-Type: application/json' \
--header 'Cookie: _tracking_consent=%7B%22con%22%3A%7B%22CMP%22%3A%7B%22a%22%3A%221%22%2C%22p%22%3A%221%22%2C%22s%22%3A%221%22%2C%22m%22%3A%221%22%7D%7D%2C%22lim%22%3A%5B%22GDPR%22%5D%2C%22v%22%3A%222.1%22%7D; _cmp_a=%7B%22purposes%22%3A%7B%22a%22%3Atrue%2C%22p%22%3Atrue%2C%22m%22%3Atrue%2C%22t%22%3Atrue%7D%2C%22display_banner%22%3Atrue%2C%22merchant_geo%22%3A%22DE%22%2C%22sale_of_data_region%22%3Afalse%7D' \
--data-raw '{
"preferences": true,
"analytics": false,
"marketing": false,
"max_age": 86400
}'

响应头

Set-Cookie
_tracking_consent=%7B%22con%22%3A%7B%22CMP%22%3A%7B%22a%22%3A%220%22%2C%22p%22%3A%221%22%2C%22s%22%3A%22%22%2C%22m%22%3A%220%22%7D%7D%2C%22lim%22%3A%5B%22GDPR%22%5D%2C%22v%22%3A%222.1%22%2C%22reg%22%3A%22GDPR%22%7D; Path=/; Max-Age=86400
Set-Cookie
_cmp_a=%7B%22purposes%22%3A%7B%22a%22%3Afalse%2C%22p%22%3Atrue%2C%22m%22%3Afalse%2C%22t%22%3Afalse%7D%2C%22display_banner%22%3Atrue%2C%22merchant_geo%22%3A%22%22%2C%22sale_of_data_region%22%3Afalse%7D; Path=/; Max-Age=86400; SameSite=Lax

响应体

{
"code": "SUCCESS",
"success": true,
"message": "clear = n_u,lp_url,n_sess",
"data": true
}

失败样例 1

如下为请求失败的样例,原因是请求体中未包含必填参数 preferencesanalyticsmarketing

请求

curl --location --request POST 'https://your-handle.myshopline.com/api/privacy/set_tracking_consent' \
--header 'Cookie: _tracking_consent=%7B%22con%22%3A%7B%22CMP%22%3A%7B%22a%22%3A%221%22%2C%22p%22%3A%221%22%2C%22s%22%3A%221%22%2C%22m%22%3A%221%22%7D%7D%2C%22lim%22%3A%5B%22GDPR%22%5D%2C%22v%22%3A%222.1%22%7D; _cmp_a=%7B%22purposes%22%3A%7B%22a%22%3Atrue%2C%22p%22%3Atrue%2C%22m%22%3Atrue%2C%22t%22%3Atrue%7D%2C%22display_banner%22%3Atrue%2C%22merchant_geo%22%3A%22DE%22%2C%22sale_of_data_region%22%3Afalse%7D' \
--header 'Content-Type: application/json' \
--data-raw '{}'

响应体

{
"code": "INVALID_ARGUMENT",
"success": false,
"message": "The consent or analytics parameter is empty",
"data": false
}

失败样例 2

如下为请求失败的样例,原因是请求头中未包含 _tracking_consent_cmp_a Cookies。

请求

curl --location --request POST 'https://your-handle.myshopline.com/api/privacy/set_tracking_consent' \
--header 'Content-Type: application/json' \
--header 'Cookie: ' \
--data-raw '{
"preferences": true,
"analytics": false,
"marketing": false,
"max_age": 86400
}'

响应体

{
"code": "SUCCESS",
"success": true,
"message": "error, _tracking_consent is null",
"data": false
}
这篇文章对你有帮助吗?