设置 Cookie 授权状态
用于记录或更新客户对 Cookies 的授权状态。
当客户在 GDPR Cookie Consent 弹窗中保存 Cookie 偏好设置后,可以调用此接口更新客户对 Cookies 的授权状态。
请求信息
API 路径
POST https://{handle}.myshopline.com/api/privacy/set_tracking_consent
备注
handle 表示店铺的唯一标识符,值为店铺域名的前缀。例如,域名为 open001.myshopline.com 的店铺,其 handle 是 open001。
请求头
| 参数名 | 参数类型 | 是否必填 | 描述 |
|---|---|---|---|
| Content-Type | String | 是 | 值固定为 application/json。 |
| Cookie | String | 是 | 商家网页 Cookies,必须包含 _tracking_consent 和 _cmp_a。以上两个 Cookies 的值必须为合法且经过 URL 编码的 JSON 格式字符串。 |
请求体
| 参数名 | 参数类型 | 是否必填 | 描述 |
|---|---|---|---|
| preferences | Boolean | 是 | 是否同意使用功能型 Cookies(Functionality Cookies)。
|
| analytics | Boolean | 是 | 是否同意使用分析型 Cookies(Performance Cookies)。
|
| marketing | Boolean | 是 | 是否同意使用个性化与广告 Cookies(Targeting and Advertising Cookies)。
|
| max_age | Integer | 否 | 设置客户授权状态 Cookies(_tracking_consent 和 _cmp_a)的有效期。单位:秒。取值范围:1-31536000 默认值:31536000(365 天) |
响应信息
响应头
| 参数名 | 参数类型 | 描述 |
|---|---|---|
| Set-Cookie | String | 更新后的 _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-Cookie | String | 更新后的 _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 |
响应体
| 参数名 | 参数类型 | 描述 |
|---|---|---|
| code | String | 返回码,表示请求的处理结果。有效枚举值包含:
|
| success | Boolean | 表示接 口调用是否成功。有效枚举值包含:
|
| message | String | 返回被清理的 Cookie 列表或错误信息。
|
| data | Boolean | 表示客户授权状态 Cookies 是否已更新以及被客户拒绝使用的 Cookies 是否已删除。
|
样例
成功样例
如下为请求成功的样例,其中 _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
如下为请求失败的样例,原因是请求体中未包含必填参数 preferences,analytics 和 marketing。
请求
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
}
这篇文章对你有帮助吗?