自定义受众群体
概述
- GET accounts/:account_id/custom_audiences
- GET accounts/:account_id/custom_audiences/:custom_audience_id




- 传递的用户 id 正确且未格式错误。
- 传递的受众名称正确,并与先前的成员更新一致。
- 请确认 POST 命令的响应。
- 请确认 ID Sync 像素已正确实施,并且按照 ID Sync 流程,已有足够的用户访问相关站点以完成用户映射。未映射的用户在成员更新中将不会转化为可定向用户。
- 受众的最小规模为 100 名用户(匹配后)。如果匹配的受众少于 500 名用户,则不会在 X Ads UI 中提供用于定向。
- 通常处理受众文件需要 4–6 小时,但这取决于文件大小。文件处理完成后,受众会在 X Ads UI 中可用。
- 匹配率 = 90 天内活跃的 X 用户数 / 提供的用户数量
- 你可以提供一个测试受众文件,并使用“keltonlynn”作为广告主 handle。我们随后可以验证该文件是否能够被正确导入并加载到 X UI 中。
p_user_id
)?
- 这是你公司用于唯一标识每位客户的标识符。
- 可以是电子邮箱地址、设备 ID、X @handle 或 ID。
- 我们会通过加密电子邮件提供。请将你的公有 PGP 密钥发送至mpp-inquiry@x.com,我们会先向你发送测试邮件以验证一切正常。验证完成后,我们会发送 HMAC Key。
- X 将提供一个测试文件(包含示例电子邮箱地址、设备 ID 等),以及一个用于对照验证结果的 hash 文件。
- 没有,完整数据匹配文件没有大小限制。
- 一旦 X 收到文件,大约需要 1 天时间来处理该文件。
CRM

合作伙伴 ID 匹配要求
p_user_id
)到 X ID(tw_id
)的映射关系。此操作将定期每 2-3 个月执行一次,以确保数据的及时更新。匹配完成后,X 将通过电子邮件向公司提供此文件的基准匹配率。
此文件的格式应为:
命名规范:FullDataMatch.[CompanyName].txt
哈希算法:HMAC_SHA-256
格式:
第 1 列:通用标识符的 HMAC 哈希值
第 2 列:合作伙伴用户 ID(每个用户唯一,在文件中可重复)
列分隔符(CSV):使用逗号分隔哈希后的通用用户标识符和合作伙伴 ID
行分隔值
- 例如:如果用户记录 A 具有合作伙伴用户 ID 1 和通用标识符 1、2 和 3:
common user identifier 1 | p_user_1 |
common user identifier 2 | p_user_1 |
common user identifier 3 | p_user_1 |
p_user_id
的形式提供用户列表,为客户创建自定义受众,用于在 X 上进行精准投放。
- 行分隔值
p_user_id
-
- (与上述第 1 部分完整数据匹配中提供的相同。如果在完整数据匹配中提供的值已进行哈希处理,那么公司需在受众文件中提供相同的哈希值。如果提供的值未进行哈希处理,那么公司需提供未哈希的值。)
标准匹配要求
- 行分隔的值
- 已进行 hash 处理的常见用户标识符(例如电子邮件地址)
- 遵循下文列出的文件命名约定
- 遵循下文“Hashing Directions”中对电子邮件地址进行 hash 处理的说明
自定义细分 List 文件命名与操作
- audiencename:自定义受众的名称。该字段是在 ads.x.com 广告系列设置界面中选择受众时显示的名称,例如 brand_loyalty_card_holders。
- partnername:代表广告主传送 data 的公司名称,例如 company_name。
- handle:将可访问自定义受众的 X 账号(@handle),例如 @pepsi、@dietpepsi
- operation:new、add、remove、removeall、replace(详见下文)
- timestamp:标准 Unix 纪元时间(秒),用于确保每个上传的受众文件都是唯一的
- filetype:文件应为 *.txt 格式
创建和更新受众
- 可用于维护从该广告主选择退出的用户的完整列表。
- X 仅遵循此文件中提供的最新列表,并在所有现有和未来受众中对匹配生效。
哈希说明
电子邮件规范化
@
It92I6Ev2B.
Com
规范化后:testemail_organisational_baseball+884@
it92i6ev2b.
com
hash 值:74d9584eded0ad1e5572a1c1849f3716751d371d6117a6155dad5363f4b4fbec
注意:编码后的 HMAC 和密钥的字符数可能会随输入和编码方式而变化,因此具体字符数并不固定。
设备 ID 规范化
X 用户 ID 规范化
@
username 中去除空格,但 User ID 无需规范化。为实现规范化,@username 应转换为小写,且用户名中不应包含 @ 符号。
原始 ID 格式为:
- User ID: 27674040
- @username: testusername
ID 同步集成
p_id
发送 data 时,必须执行 ID 同步流程,以生成广告主或合作伙伴的用户 id 与 X 用户 id 的映射。这样,广告主即可在 X 上直接定向其自有用户分群。合作伙伴在发送成员更新时,还必须将参数 user_identifier_type
的值设置为 TALIST_PARTNER_USER_ID
或 TAWEB_PARTNER_USER_ID
。
- 仅限 Web:可按下述方式在广告主网站上放置像素来实现。
- List:可使用 CRM 页面所述的任一方法来实现。
像素 URL
基础 URL |
https://analytics.x.com/i/adsct |
像素参数
参数 | 说明 |
p_id | 由 X 分配的合作伙伴 id |
p_user_id | 合作伙伴系统中的用户 id |
ID 同步像素:
p_user_id
示例为 abc 为例,构建的像素如下:
列号 | 列名 | 列类型 | 说明 |
1 | Partner ID | string | “partner id” 是 X 提供给合作伙伴,用于唯一标识每个合作伙伴的 ID。 |
2 | 合作伙伴系统中的用户 id | string | p_user_id 是合作伙伴用于标识用户的唯一 ID。包含这些选择退出用户的文件应通过 TON upload endpoint 上传,上传的 data 路径应发送至此处的 Global Opt Out endpoint:PUT accounts/:account_id/custom_audiences/global_opt_out。 |
p_id
发送 data 的合作伙伴必须将 user_identifier_type
设置为 TALIST_PARTNER_USER_ID
或 TAWEB_PARTNER_USER_ID
。
其他步骤与实时受众 API 集成指南中列出的内容相同。
自定义受众用户数据
- IDFA - 全小写并包含短横线;例如:
4b61639e-47cc-4056-a16a-c8217e029462
- AdID - 需使用设备上的原始格式,不要大写,且保留短横线;例如:
2f5f5391-3e45-4d02-b645-4575a08f86e
- Android id - 需使用设备上的原始格式,不要大写,且不含短横线或空格;例如:
af3802a465767e36
- 全小写,去除首尾空格;例如:
support@x.com
- 不含 @,全小写并去除首尾空格;例如:
jack
- 标准整数;例如:
143567
SHA256
进行哈希,且不使用盐。此外,最终输出的哈希必须为小写。例如:49e0be2aeccfb51a8dee4c945c8a70a9ac500cf6f5cb08112575f74db9b1470d,而不是49E0BE2AECCFB51A8DEE4C945C8A70A9AC500CF6F5CB08112575F74DB9B1470D
自定义受众:Web

p_user_ids
)。这通过 ID 同步流程实现,该流程在 p_user_ids
与 X 用户 ID 之间建立映射。随后使用此映射生成可用于定向的 X 用户 ID 列表。这些自定义受众将根据在 ads.x.com 的 Custom Audiences Web 广告系列设置中由标签指定的广告主特定 @handle 提供。
X 将提供可部署在合作伙伴标签和站点上的安全像素,以便将 ID(p_user_ids
)匹配到 X 用户 ID。ID 同步流程完成后,合作伙伴将创建定向文件,并通过一个 HTTPS endpoint 提供给 X。X 会定期摄取这些定向文件,并在 X 的 UI 中提供。
X 安全像素
X 安全像素如下所示:
https://analytics.x.com/i/adsct?p_user_id=xyz&p_id=123
p_user_id
- xyz 表示由合作伙伴提供的合作伙伴用户 ID
p_id
- 123 表示该合作伙伴的唯一 ID(由 X 提供)
合作伙伴 HTTPS Endpoint 与定向用户文件
合作伙伴需要向 X 提供一个 HTTPS endpoint 和凭据(用户名/密码),用于定期摄取定向文件。示例 HTTPS endpoint 如下所示:
- Partner Targeting User File
- Targeting Conversion File
- 199.16.156.0/22
- 199.59.148.0/22
列号 | 列名 | 列类型 | 描述 |
---|---|---|---|
1 | partner id | string | “partner id” 是 X 提供给合作方用于唯一标识每个合作方的 ID。 |
2 | advertiser id | string | “advertiser id” 是该广告主的 @handle。 |
3 | p_user_id | string | “p_user_id” 是合作方用于标识用户的唯一 ID。 |
3 | confidence score | integer | “confidence score” 为可选项。建议取值范围为 0-100。若用例为再营销(retargeting),则分数为 “100” 表示被直接再营销的用户;0-99 的任何分数表示相似受众的置信度等级。 |
4 | segment label | string | “segment label” 为可选项。合作方可使用 “segment label” 指定产品类别等。建议使用该 “segment label”,因为它是在 ads.x.com 界面中自定义受众(Custom Audiences)的人类可读名称。 |
受众 API 集成
概述
- 已弃用 TON Upload:
- GET accounts/:account_id/custom_audience_changes
- GET accounts/:account_id/custom_audience_changes/:custom_audience_change_id
- POST accounts/:account_id/custom_audience_changes
- PUT accounts/:account_id/custom_audiences/global_opt_out
- 已弃用 Real Time Audiences:
- POST custom_audience_memberships
- Custom Audience:
- 所有 Custom Audience endpoint 的请求与响应中将移除
list_type
参数。此前该参数用于标识 Audience 的用户标识符类型(例如 email、X User ID 等),但现在 Audiences 可以在同一 Audience 中接受多种用户标识符,因此该值不再适用。
- 所有 Custom Audience endpoint 的请求与响应中将移除
- 通用:
- Audience 回溯时间窗口更新为匹配过去 90 天内活跃的用户(此前为 30 天)
- 受众可用于定向所需的最低匹配用户数下调至 100 个(此前为 500 个)
先决条件
- Ads API 访问权限
- 如需访问 Audience endpoint,需加入 allowlist。请填写此表单;如果最初接受日期早于 2018-08-01,请接受新的 X Ads Products and Services Agreement
流程步骤 | Audience API | (已弃用)TON Upload |
---|---|---|
创建空壳 Audience | 可通过 [POST custom_audience endpoint]/x-ads-api/audiences 创建 | 可通过 [POST custom_audience endpoint]/x-ads-api/audiences 创建 |
添加新用户 | 在 Audience endpoint 中使用 operation_type Update | 在 POST custom_audience_changes endpoint 中使用 operation ADD |
移除用户 | 在 Audience endpoint 中使用 operation_type Delete | 在 POST custom_audience_changes endpoint 中使用 operation REMOVE |
用户选择退出 | 在 Audience endpoint 中使用 operation_type Delete ,并提供该用户所属的相应 custom_audience_id | 使用 Global opt-out endpoint |
- 操作总数:2500 次
- 最大 payload 大小:5,000,000 字节
创建新的自定义受众
id
。如果是从头创建受众,此步骤必不可少。若要更新现有受众,请跳到下一节。
将用户添加到受众
id
,并使用如下示例负载发起请求:
POST https://ads-api.x.com/11/accounts/18ce54d4x5t/custom_audiences/1nmth/users
operation_type
的 Update
。新的 Audience 接口支持为单个用户传入多个用户键。JSON 对象数组中的每个对象都对应一个用户。根据上面的示例负载,该请求会向 Audience 添加两个用户:一个包含 email
和 handle
,另一个包含 email
和 twitter_id
。
从受众中移除用户
operation_type
设置为 Delete
,并且系统会使用将用户添加到受众时提供的任意键来匹配用户。例如,如果某个用户是通过 email
和 twitter_id
添加到受众的,那么移除该用户时可使用这两个键中的任意一个,即使用 email
或 twitter_id
,也可以同时使用二者。
此外,可以在同一个请求中同时向 Audience 添加和移除用户。该 endpoint 支持在单个请求中包含多个 operation_type
。
选择退出的用户
DELETE
操作。可通过以下几种方式实现:
- 跟踪用户分别属于哪些 Audiences,并将这些用户从各自的 Audience 中逐一移除。
- 将该用户从与某个 Ads 账户关联的所有 Audiences 中全部移除。
- 我们强烈建议以接近实时的批量方式调用此 endpoint,以避免出现处理时间更长的突发队列,并减少对系统的不必要负载。这也能让用户更快用于广告投放定向。
- 成功的 API 调用会返回
success_count
和total_count
,对应于请求中接收的user
对象数量。 - 此 endpoint 具备原子性,即要么整个请求成功,要么在出现任何错误时整个请求失败。若返回错误响应,建议 API 使用方先修复错误,再使用完整载荷重试该请求。
- 发生失败时,建议合作伙伴采用带重试的指数退避策略。例如:第一次失败后立即重试;第二次失败后于 1 分钟后重试;第三次连续失败后于 5 分钟后重试,依此类推。
API 参考
关键词洞察
end_time
- start_time
)为 7 天。
请注意,结果限定在单一地理位置(国家)范围内。
Resource URL
https://ads-api.x.com/12/insights/keywords/search
Parameters
Name | Description |
---|---|
granularity required | 指定由 start_time 和 end_time 所表示的时间范围内返回数据的粒度。例如,当设置为 HOUR 时,将返回 start_time 与 end_time 之间每个小时的一个数据点。Type: enum Possible values: DAY , HOUR |
keywords required | 以逗号分隔的关键词字符串,用于缩小搜索范围。所有关键词之间为 OR 逻辑关系。 Note: 最多可使用 10 个关键词( keywords 与 negative_keywords 合计)。Type: string Example: developers |
start_time required | 将检索结果限定为在 start_time 与 end_time 时间窗口内收集的数据。采用 ISO 8601 格式表示。Type: string Example: 2017-07-10T00:00:00Z |
end_time optional | 将检索结果限定为在 start_time 与 end_time 时间窗口内收集的数据。采用 ISO 8601 格式表示。Note: 默认为当前时间。 Type: string Example: 2017-07-11T00:00:00Z |
location optional | 可从 GET targeting_criteria/locations endpoint 获取的定向值,用于根据账户用户所在位置缩小结果范围。请注意,目前仅支持国家级位置。 Type: string Example: 0ce8b9a7b2742f7e |
negative_keywords optional | 以逗号分隔的需排除的关键词字符串。所有排除关键词之间为 OR 逻辑关系。 Note: 最多可使用 10 个关键词( keywords 与 negative_keywords 合计)。Type: string Example: rain |
定向受众权限
GET accounts/:account_id/tailored_audiences/:tailored_audience_id/permissions
检索与指定定制受众关联的部分或全部权限详情。 Resource URLhttps://ads-api.x.com/5/accounts/:account_id/tailored_audiences/:tailored_audience_id/permissions
Parameters
Name | Description |
---|---|
account_id required | 被使用的账户标识符。出现在资源路径中,通常是除 GET accounts 外所有 Advertiser API 请求的必填参数。指定的账户必须与已认证用户关联。 Type: string Example: 18ce54d4x5t |
tailored_audience_id required | 本次请求中所操作的定制受众的引用。 Type: string Example: 1nmth |
count optional | 指定每个请求尝试检索的记录数。 Type: int Default: 200 Min, Max: 1 , 1000 |
cursor optional | 指定用于获取下一页结果的游标。参见 Pagination 了解更多信息。 Type: string Example: 8x7v00oow |
granted_account_ids optional | 通过指定以逗号分隔的标识符列表,将响应限定为所需的账户。最多可提供 200 个 ID。 Type: string Example: 18ce54aymz3 |
sort_by optional | 按受支持的属性进行升序或降序排序。参见 Sorting 了解更多信息。 Type: string Example: created_at-asc |
tailored_audience_permission_ids optional | 通过指定以逗号分隔的标识符列表,将响应限定为所需的定制受众权限。最多可提供 200 个 ID。 Type: string Example: ri |
with_total_count optional | 包含 total_count 响应属性。Note: 此参数与 cursor 互斥。Note: 包含 total_count 的请求将具有更低的请求速率限制,当前为每 15 分钟 200 次。Type: boolean Default: false Possible values: true , false |
GET https://ads-api.x.com/5/accounts/18ce54d4x5t/tailored_audiences/1nmth/permissions
Example Response
POST accounts/:account_id/tailored_audiences/:tailored_audience_id/permissions
创建新的权限对象,使指定受众可与给定账户共享。 注意:为定向受众创建或修改权限时,必须由尝试进行修改的账户拥有该受众。您可以在该受众的响应中查看is_owner
属性以确认所有权。
注意:受众只能在同一业务主体下的广告账户之间共享;如果拥有该受众的广告账户启用了 SHARE_AUDIENCE_OUTSIDE_BUSINESS
账户功能,则可在业务主体之外进行共享。
Resource URL
https://ads-api.x.com/5/accounts/:account_id/tailored_audiences/:tailored_audience_id/permissions
Parameters
Name | Description |
---|---|
account_id required | 目标账户的标识符。出现在资源路径中,通常是除 GET accounts 外所有 Advertiser API 请求的必填参数。指定的账户必须与已认证用户关联。 Type: string Example: 18ce54d4x5t |
granted_account_id required | 您希望授予该定向受众访问权限的账户。 Type: string Example: 18ce54aymz3 |
permission_level required | 要授予 granted_account_id 的该定向受众的访问级别。Type: enum Possible values: READ_ONLY , READ_WRITE |
tailored_audience_id required | 您在本次请求中操作的定向受众的引用。 Type: string Example: 2906h |
POST https://ads-api.x.com/5/accounts/18ce54d4x5t/tailored_audiences/2906h/permissions?granted_account_id=18ce54aymz3&permission_level=READ_ONLY
Example Response
DELETE accounts/:account_id/tailored_audiences/:tailored_audience_id/permissions/:tailored_audience_permission_id
撤销指定的 Tailored Audience 共享权限。 注意:创建或修改 Tailored Audience 的权限要求该受众归属于尝试修改权限的账户。您可以通过查看特定受众返回结果中的is_owner
响应属性来检查 Tailored Audience 的所有权。
撤销后,我们保证被授予的账户(granted_account_id
)将无法在后续广告系列中定向该受众。现有广告系列将继续使用共享受众运行;广告系列不会停止,且该受众不会从广告系列中移除。撤销受众共享权限后,将无法复制该广告系列。
Resource URL
https://ads-api.x.com/5/accounts/:account_id/tailored_audiences/:tailored_audience_id/permissions/:tailored_audience_permission_id
Parameters
Name | Description |
---|---|
account_id required | 被使用的账户标识符。出现在资源路径中,并且通常是除 GET accounts 之外所有 Advertiser API 请求的必需参数。指定的账户必须与已认证用户关联。 Type: string Example: 18ce54d4x5t |
tailored_audience_id required | 本次请求中所操作的 Tailored Audience 的引用。 Type: string Example: 1nmth |
tailored_audience_permission_id required | 本次请求中所操作的 Tailored Audience 权限的引用。 Type: string Example: ri |
DELETE https://ads-api.x.com/5/accounts/18ce54d4x5t/tailored_audiences/1nmth/permissions/ri
Example Response
目标受众
GET accounts/:account_id/custom_audiences/:custom_audience_id/targeted
获取针对给定custom_audience_id
的活动或全部投放单元与广告系列列表
Name | Description |
---|---|
account_id required | 目标账户的标识符。出现在资源路径中,通常是除 GET accounts 外所有 Advertiser API 请求所需的参数。指定的账户必须与已验证用户关联。 Type: string Example: 18ce54d4x5t |
custom_audience_id required | 本次请求中所操作的自定义受众的引用。 Type: string Example: 2906h |
with_active optional | 当为 false 时,包含 servable=false 状态的投放单元。Type: boolean Default: true Possible values: true , false |
cursor optional | 指定一个游标以获取下一页结果。更多信息参见 Pagination。 Type: string Example: 8x7v00oow |
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/custom_audiences/2906h/targeted
Example Response
自定义受众用户
POST accounts/:account_id/custom_audiences/:custom_audience_id/users
此 endpoint 允许合作伙伴向指定的custom_audience_id
添加、更新或移除用户。该 endpoint 也支持为每位用户同时提供多种用户标识符类型。
请求中 users
字段所提供的所有 data,除 partner_user_id
外,必须使用 SHA256
进行哈希并完成规范化。
批量请求
- 针对此 endpoint,当前最大批处理大小为
2500
。批处理大小由每个请求中的操作数(Update
/Delete
)决定。例如,在一个数组中包含超过 2500 个操作对象({"operation_type": "Update/Delete", [..] }
)将导致错误。 - 此 endpoint 可接受的最大 POST 请求正文大小为
5,000,000
字节。 - 此 endpoint 的请求速率限制为每 1 分钟窗口 1500 次。
- 所有参数通过请求正文发送,且必须将
Content-Type
设为application/json
。 - 批量请求以整体为单位成败一致;无论成功或失败,所有 API 响应都会保留初始请求的项目顺序。
success_count
和 total_count
。这两个值必须始终相等,表示后端已处理的请求记录数量。若请求正文中发送的记录数与 success_count
和 total_count
不相等,应视为错误情况,需要重试。
批量错误
- 请求级错误(例如超过最大批处理大小)会在响应的
errors
对象下显示。 - 项目级错误(例如缺少必填参数)会在响应的
operation_errors
对象下显示。 operation_errors
中错误的索引对应输入项的索引,并包含相应的错误消息。
https://ads-api.x.com/12/accounts/:account_id/custom_audiences/:custom_audience_id/users
名称 | 说明 |
---|---|
operation_type 必填 | 针对每个 users 组执行的操作类型。Type: enum Possible values: Update , Delete |
params 必填 | 一个 JSON 对象,包含 users 数组以及 effective_at 和 expires_at 时间戳。Type: JSON |
users 必填 | 由 JSON 对象组成的数组,包含单个用户的全部参数。 Type: JSON |
effective_at 可选 | 自定义受众关联生效的 UTC 时间。遵循 ISO 8601 格式。默认使用当前日期和时间。 Type: string Example: 2017-07-05T07:00:00Z |
expires_at 可选 | 自定义受众关联失效的 UTC 时间。必须晚于 effective_at 。遵循 ISO 8601 格式。默认为自请求时间戳起 13 个月后。Type: string Example: 2017-07-05T07:00:00Z |
users
对象采用多键方式,以下分别说明该对象中各元素:
名称 | 说明 |
---|---|
email 可选 | 用户的电子邮件地址。 Type: Array[String] |
device_id 可选 | IDFA/AdID/Android ID Type: Array[String] |
handle 可选 | 用户所属的 @handle。 Type: Array[String] |
twitter_id 可选 | 用户所属的 X ID。 Type: Array[String] |
phone_number 可选 | 用户的电话号码。 Type: Array[String] |
partner_user_id 可选 | 该用户在合作伙伴系统中的 ID。 Type: Array[String] |
POST https://ads-api.x.com/12/accounts/18ce54d4x5t/custom_audiences/1nmth/users
自定义受众权限
GET accounts/:account_id/custom_audiences/:custom_audience_id/permissions
检索与指定自定义受众相关的部分或全部权限的详细信息。 Resource URLhttps://ads-api.x.com/12/accounts/:account_id/custom_audiences/:custom_audience_id/permissions
Parameters
Name | Description |
---|---|
account_id required | 被使用账号的标识符。出现在资源路径中,通常是所有 Advertiser API 请求(不包括 GET accounts)的必需参数。指定的账号必须与已认证用户关联。 Type: string Example: 18ce54d4x5t |
custom_audience_id required | 你在请求中操作的自定义受众的引用。 Type: string Example: 1nmth |
count optional | 指定每个请求尝试检索的记录数。 Type: int Default: 200 Min, Max: 1 , 1000 |
cursor optional | 指定用于获取下一页结果的游标。更多信息参见 Pagination。 Type: string Example: 8x7v00oow |
granted_account_ids optional | 通过指定以逗号分隔的标识符列表,将响应限定为所需账号。最多可提供 200 个 ID。 Type: string Example: 18ce54aymz3 |
sort_by optional | 按受支持的属性进行升序或降序排序。更多信息参见 Sorting。 Type: string Example: created_at-asc |
custom_audience_permission_ids optional | 通过指定以逗号分隔的标识符列表,将响应限定为所需的自定义受众权限。最多可提供 200 个 ID。 Type: string Example: ri |
with_total_count optional | 包含 total_count 响应属性。Note: 此参数与 cursor 互斥。Note: 包含 total_count 的请求将具有更低的请求速率限制,当前为每 15 分钟 200 次。Type: boolean Default: false Possible values: true , false |
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/custom_audiences/1nmth/permissions
Example Response
POST accounts/:account_id/custom_audiences/:custom_audience_id/permissions
创建一个新的权限对象,允许将指定受众共享给某个账户。 注意:创建或修改自定义受众的权限,必须由拥有该受众的账户执行。你可以在相应受众的响应中查看is_owner
属性以确认所有权。
注意:受众只能在同一业务主体下的广告账户之间共享;或当拥有该受众的广告账户启用了 SHARE_AUDIENCE_OUTSIDE_BUSINESS
账户功能时,方可跨业务共享。
Resource URL
https://ads-api.x.com/12/accounts/:account_id/custom_audiences/:custom_audience_id/permissions
Parameters
名称 | 说明 |
---|---|
account_id 必填 | 被使用的账户标识符。出现在资源路径中,并且通常是所有 Advertiser API 请求(GET accounts 除外)的必填参数。指定的账户必须与已认证用户关联。 Type: string Example: 18ce54d4x5t |
granted_account_id 必填 | 你希望授予自定义受众权限的账户。 Type: string Example: 18ce54aymz3 |
permission_level 必填 | granted_account_id 对该自定义受众应具有的访问级别。Type: enum Possible values: READ_ONLY , READ_WRITE |
custom_audience_id 必填 | 本次请求中所操作的自定义受众的引用。 Type: string Example: 2906h |
DELETE accounts/:account_id/custom_audiences/:custom_audience_id/permissions/:custom_audience_permission_id
撤销指定的自定义受众(Custom Audience)共享权限。 注意:创建或修改自定义受众的权限,要求该受众由尝试修改权限的账户拥有。您可以通过查看特定受众响应中的is_owner
属性来检查该自定义受众的所有权。
撤销后,我们保证被授予的账户(granted_account_id
)将无法在未来的广告系列中定向该受众。现有广告系列将继续使用共享受众运行;广告系列不会停止,且该受众不会从广告系列中移除。撤销受众共享权限后,无法复制该广告系列。
资源 URL
https://ads-api.x.com/12/accounts/:account_id/custom_audiences/:custom_audience_id/permissions/:custom_audience_permission_id
参数
名称 | 描述 |
---|---|
account_id 必填 | 目标账户的标识符。出现在资源路径中,通常是除 GET accounts 外所有 Advertiser API 请求所需的参数。指定的账户必须与已认证用户关联。 Type: string Example: 18ce54d4x5t |
custom_audience_id 必填 | 请求中所操作的自定义受众引用。 Type: string Example: 1nmth |
custom_audience_permission_id 必填 | 请求中所操作的自定义受众权限引用。 Type: string Example: ri |
DELETE https://ads-api.x.com/12/accounts/18ce54d4x5t/custom_audiences/1nmth/permissions/ri
示例响应
自定义受众
GET accounts/:account_id/custom_audiences
获取与当前账户关联的部分或全部自定义受众的详细信息。 Resource URLhttps://ads-api.x.com/12/accounts/:account_id/custom_audiences
Parameters
Name | Description |
---|---|
account_id required | 被利用账户的标识符。该值出现在资源路径中,且通常是除 GET accounts 之外所有 Advertiser API 请求的必填参数。指定的账户必须与已认证用户关联。 Type: string Example: 18ce54d4x5t |
count optional | 指定每个请求尝试检索的记录数。 Type: int Default: 200 Min, Max: 1 , 1000 |
cursor optional | 指定用于获取下一页结果的游标。更多信息参见 Pagination。 Type: string Example: 8x7v00oow |
permission_scope optional | 允许将响应过滤为你拥有的列表或与你共享的列表。默认情况下,未指定此参数时,你仅能看到自己拥有的受众。 Type: enum Default: OWNER Possible values: OWNER , SHARED |
q optional | 可选的 query(查询),用于按 name 限定资源范围。Note: 执行不区分大小写的前缀匹配。 Type: string Min, Max length: 1 , 255 |
sort_by optional | 按支持的属性进行升序或降序排序。更多信息参见 Sorting。 Type: string Example: created_at-asc |
custom_audience_ids optional | 通过指定以逗号分隔的标识符列表,将响应限定为所需的自定义受众。最多可提供 200 个 ID。 Type: string Example: 1nmth |
with_deleted optional | 在请求中包含已删除的结果。 Type: boolean Default: false Possible values: true , false |
with_total_count optional | 在响应中包含 total_count 属性。Note: 此参数与 cursor 互斥。Note: 包含 total_count 的请求将适用更低的请求速率限制,目前为每 15 分钟 200 次。Type: boolean Default: false Possible values: true , false |
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/custom_audiences?custom_audience_ids=1nmth
Example Response
GET accounts/:account_id/custom_audiences/:custom_audience_id
检索与当前账户关联的指定自定义受众。 Resource URLhttps://ads-api.x.com/12/accounts/:account_id/custom_audiences/:custom_audience_id
Parameters
Name | Description |
---|---|
account_id required | 目标账户的标识符。出现在资源路径中,通常是除 GET accounts 外所有 Advertiser API 请求的必填参数。指定的账户必须与已认证用户关联。 Type: string Example: 18ce54d4x5t |
custom_audience_id required | 本次请求中要操作的自定义受众的标识。 Type: string Example: 2906h |
with_deleted optional | 是否在结果中包含已删除项。 Type: boolean Default: false Possible values: true , false |
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/custom_audiences/2906h
Example Response
POST accounts/:account_id/custom_audiences
为当前账户创建一个新的占位符自定义受众(Custom Audience)。 Resource URLhttps://ads-api.x.com/12/accounts/:account_id/custom_audiences
Parameters
Name | Description |
---|---|
account_id required | 被调用账户的标识符。该参数出现在资源路径中,且通常是除 GET accounts 以外所有 Advertiser API 请求的必填项。指定的账户必须与已认证用户关联。 Type: string Example: 18ce54d4x5t |
name required | 此受众的显示名称。必须使用唯一的名称值,否则会返回错误。 Type: string Example: ads api users |
description optional | 此受众的描述。 Type: string Example: Collection of all users of the Ads API |
POST https://ads-api.x.com/12/accounts/18ce54d4x5t/custom_audiences?name=developers
Example Response
PUT accounts/:account_id/custom_audiences/:custom_audience_id
更新与当前账户关联的特定自定义受众(Custom Audience)。 Resource URLhttps://ads-api.x.com/12/accounts/:account_id/custom_audiences/:custom_audience_id
Parameters
Name | Description |
---|---|
account_id required | 被使用账户的标识符。该值出现在资源路径中,且通常是所有广告主 API 请求的必填参数(GET accounts 除外)。指定的账户必须与已认证的用户关联。 Type: string Example: 18ce54d4x5t |
custom_audience_id required | 本次请求中所操作的自定义受众引用。 Type: string Example: 2906h |
name optional | 此受众的显示名称。必须使用唯一的名称,否则将返回错误。 Type: string Example: ads api users |
description optional | 此受众的描述。 Type: string Example: Collection of all users of the Ads API |
PUT https://ads-api.x.com/12/accounts/18ce54d4x5t/custom_audiences/2906h?name=developers_changed
Example Response
POST batch/accounts/:account_id/custom_audiences
允许批量创建 Custom Audiences。有关受众的说明,请参阅Custom Audiences 概览页面。 注意:此批量 endpoint 目前处于封闭测试阶段,仅向部分广告主开放。在此测试期间,仅支持基于移动端自定义受众的 Flexible Audiences。 批量请求- 当前最大批量大小为 10。
- 所有参数通过请求正文发送,且必须将
Content-Type
设置为application/json
。 - 批量请求作为一个整体同时失败或成功;无论成功还是失败,所有 API 响应都会保留与初始请求一致的项目顺序。
- 请求级错误(例如超过最大批量大小)会在响应中的
errors
对象下显示。 - 项目级错误(例如缺少必填参数)会在响应中的
operation_errors
对象下显示。
- Flexible Audiences 创建后不可变更。
- 以树形结构传入 Custom Audiences,并通过布尔逻辑组合来创建 Flexible Audiences。
- 创建一个 Flexible Audience 最多可使用 10 个 Custom Audiences 的叶子节点。
https://ads-api.x.com/12/batch/accounts/:account_id/custom_audiences
参数
名称 | 描述 |
---|---|
account_id 必填 | 被使用账户的标识符。出现在资源路径中,通常是除 GET accounts 之外所有 Advertiser API 请求的必需参数。指定的账户必须与已认证用户关联。 Type: string Example: 18ce54d4x5t |
audience_type 必填 | 要创建的受众类型。 Type: enum Possible values: FLEXIBLE , MOBILE_AUDIENCE |
child_segments 必填 | 一个数组,包含用于定义你希望触达的 Custom Audience 成员子集的对象。每个对象应包含 custom_audience_id 、frequency 、frequency_comparator 、lookback_window 、negate ,并在某些情况下包含额外的 child_segments 。Type: array |
name 必填 | 受众的显示名称。必须使用唯一名称,否则将导致错误。 Type: string Example: my_flexible_audience_name |
operation_type 必填 | 针对每个条目执行的操作类型。 Type: enum Possible values: Create , Update , Delete |
boolean_operator 有时必填 | 在其父(包含)对象中子分段之间的逻辑关系。如果父对象的 child_segments 非空,则为必填。 Type: enum Possible values: AND , OR |
lookback_window 有时必填 | 一个整数值,指定用户在多少天范围内执行了特定操作并由此符合给定自定义受众条件。 Type: int Possible values: 1 , 7 , 14 , 30 |
segments 有时必填 | 一个对象,包含 boolean_operator 和 child_segments ,用于定义你希望触达的 Custom Audience 成员子集。Type: object |
custom_audience_id 有时必填 | 作为子分段使用的自定义受众的 id。 Type: string Example: tyfo |
frequency 可选 | 一个整数值,指定在回溯窗口内用户执行特定操作并符合给定自定义受众条件的发生次数。 Type: int Default value: 1 |
frequency_comparator 可选 | 与请求中提供的 frequency 进行比较的比较符。注意:下列取值中, GTE 表示大于等于,LT 表示小于,依此类推。Type: string Possible values: NUM_GTE , NUM_GT , NUM_EQ , NUM_LTE , NUM_LT Default value: NUM_GTE |
negate 可选 | 对该分段取反,从而在组合中将其排除。 Type: boolean Default value: true Possible values: true , false |
POST https://ads-api.x.com/12/batch/accounts/18ce54d4x5t/custom_audiences
DELETE accounts/:account_id/custom_audiences/:custom_audience_id
删除当前账户下的指定自定义受众(Custom Audience)。 Resource URLhttps://ads-api.x.com/12/accounts/:account_id/custom_audiences/:custom_audience_id
Parameters
Name | Description |
---|---|
account_id required | 被使用的账户标识符。该值出现在资源路径中,通常是所有 Advertiser API 请求的必需参数(GET accounts 除外)。指定的账户必须与已认证用户关联。 Type: string Example: 18ce54d4x5t |
custom_audience_id required | 请求中所操作的自定义受众的标识引用。 Type: string Example: 2906h |
DELETE https://ads-api.x.com/12/accounts/18ce54d4x5t/custom_audiences/2906h
Example Response
禁止触达的 List
GET accounts/:account_id/do_not_reach_lists
检索与当前账户关联的部分或全部 Do Not Reach List 的详细信息。 注意:每个account_id
至多只能拥有一个 Do Not Reach List
Resource URL
https://ads-api.x.com/12/accounts/:account_id/do_not_reach_lists
Parameters
Name | Description |
---|---|
account_id required | 目标账户的标识符。该值出现在资源路径中,通常是所有 Advertiser API 请求(不包括 GET accounts)的必需参数。指定的账户必须与已通过身份验证的用户关联。 Type: string Example: 18ce54d4x5t |
with_deleted optional | 在请求中包含已删除的结果。 Type: boolean Default: false Possible values: true , false |
GET https://ads-api.x.com/12/accounts/18ce54bgxky/do_not_reach_lists
Example Response
POST accounts/:account_id/do_not_reach_lists
为当前账户创建一个新的 Do Not Reach List。 注意:一个account_id
最多只能拥有一个 Do Not Reach List
Resource URL
https://ads-api.x.com/12/accounts/:account_id/do_not_reach_lists
Parameters
名称 | 说明 |
---|---|
account_id 必填 | 目标账户的标识符。出现在资源路径中,并且通常是除 GET accounts 外所有 Advertiser API 请求所必需的参数。指定的账户必须与已认证用户关联。 Type: string Example: 18ce54d4x5t |
description 可选 | 此受众的说明。 Type: string Example: A list of users to exclude |
POST https://ads-api.x.com/12/accounts/18ce54bgxky/do_not_reach_lists?description=A list of users to exclude
Example Response
POST batch/accounts/:account_id/do_not_reach_lists/:do_not_reach_list_id/users
此 endpoint 允许将用户添加到指定的do_not_reach_list_id
、对其进行更新或移除。此 endpoint 仅接受电子邮箱作为有效的用户标识符类型。
请求中 emails
字段提供的所有数据必须先进行规范化,并使用 SHA256
进行哈希。
注意
- 一个
account_id
至多只能拥有一个 Do Not Reach List - 添加到此列表的用户必须设置
expires_at
时间戳,且该时间必须早于当前时间戳起算的 13 个月之后 - Do Not Reach List API 不接受
effective_at
时间戳,并默认使用当前时间戳 - Do Not Reach List 不会将用户从该账户的任何或全部自定义受众中移除,而是对该账户所投放的所有广告活动充当排除定向
- 当前最大批量大小为
2500
(仅限此 endpoint)。批量大小由每个请求中的操作数(Update
/Delete
)决定。例如,在一个数组中包含超过 2500 个操作对象({"operation_type": "Update/Delete", [..] }
)将导致错误。 - 此 endpoint 可接受的最大请求 POST 正文大小为
5,000,000
字节。 - 此 endpoint 的请求速率限制为每 1 分钟窗口 1500 次
- 所有参数通过请求正文发送,并且必须设置
Content-Type
为application/json
。 - 批量请求作为一个整体共同成功或失败,且所有 API 响应(无论错误或成功)都会保留初始请求的项目顺序。
success_count
和 total_count
。这两个值必须始终相等,它们表示后端已处理的请求记录数量。当请求正文中发送的记录数与 success_count
和 total_count
不相等时,应视为错误情况,需要重试。
批量错误
- 请求级错误(例如超过最大批量大小)会在响应的
errors
对象下显示。 - 项目级错误(例如缺少必需参数)会在响应的
operation_errors
对象下显示。 operation_errors
中错误的索引对应输入项中的索引,并附有相应的错误信息
https://ads-api.x.com/12/batch/accounts/:account_id/do_not_reach_lists/:do_not_reach_list_id/users
参数
Name | Description |
---|---|
account_id required | 被使用的账户标识符。出现在资源路径中,并且通常是除 GET accounts 之外所有 Advertiser API 请求的必需参数。指定的账户必须与已认证用户关联。 Type: string Example: 18ce54d4x5t |
do_not_reach_list_id required | 在该请求中所操作的 Do Not Reach List 的引用。 Type: string Example: 2906h |
operation_type required | 针对每个 users 分组执行的操作类型。Type: enum Possible values: Update , Delete |
params required | 包含 emails 数组和 expires_at 时间戳的 JSON 对象。Type: JSON |
users required | 由 JSON 对象组成的数组,包含单个用户的全部参数。 Type: JSON |
expires_at optional | 用户关联关系应过期的 UTC 时间。指定时间必须晚于当前时间戳。以 ISO 8601 表示。默认值为从当前时间戳起的 13 个月后。 Type: string Example: 2017-07-05T07:00:00Z |
users
对象采用多键方式,下面对该对象的每个元素进行说明:
名称 | 说明 |
---|---|
email 可选 | 用户的电子邮件地址。 Type: Array[String] |
phone_number 可选 | 用户的电话号码。 Type: Array[String] |
DELETE accounts/:account_id/do_not_reach_lists/:do_not_reach_list_id
删除当前账户下指定的 Do Not Reach List。 资源 URLhttps://ads-api.x.com/12/accounts/:account_id/do_not_reach_lists/:do_not_reach_list_id
参数
无
示例请求
DELETE https://ads-api.x.com/12/accounts/18ce54bgxky/do_not_reach_lists/4ofrp
示例响应