跳转到主要内容
如需了解 X Ads API 历史版本的最新信息,请参阅下文。
VersionPath上线日期弃用日期生命周期结束日期
12.0/12/2022 年 10 月 27 日待定待定
11.0/11/2022 年 3 月 31 日待定待定
10.0/10/2021 年 8 月 31 日2022 年 3 月 31 日2022 年 10 月 27 日
9.0/9/2021 年 3 月 2 日2021 年 8 月 31 日2022 年 3 月 31 日
8.0/8/2020 年 9 月 8 日2021 年 3 月 2 日2021 年 8 月 31 日
7.0/7/2020 年 3 月 3 日2020 年 9 月 1 日2021 年 3 月 2 日
6.0/6/2019 年 8 月 28 日2020 年 3 月 3 日2020 年 9 月 1 日
5.0/5/2019 年 2 月 28 日2019 年 8 月 28 日2020 年 3 月 3 日
4.0/4/2018 年 8 月 28 日2019 年 2 月 28 日2019 年 8 月 28 日
3.0/3/2018 年 2 月 1 日2018 年 8 月 28 日2019 年 2 月 28 日
2.0/2/2017 年 7 月 10 日2018 年 2 月 1 日2018 年 8 月 1 日
1.0/1/2016 年 3 月 31 日2017 年 7 月 7 日2018 年 1 月 10 日
0.0/0/2013 年 2 月 21 日不适用2016 年 10 月 31 日

概述

每个月,我们都会对 X Ads API 进行更新并推出多项新功能。这些更新几乎总是向后兼容,但我们每年确实会有少量破坏性变更。我们收到开发者反馈,指出 Ads API 变化节奏较快,在实现新功能、处理弃用以及测试变更时,对其开发周期带来了挑战。为改善在我们 Ads 平台上的开发者体验,我们引入了对 endpoint 进行版本管理的概念。 我们将讨论的部分概念定义如下: 版本(Version):指在任何 Ads API 请求的 URL 路径中出现的版本号,例如:GET //accounts。这种版本管理方式称为 URI 版本化。 破坏性变更(Breaking Changes):指为维持既有功能而需要开发者投入资源的任何变更。这包括用于调查需要进行的修改、确定被弃用的功能/endpoint,以及最终落地全部变更所需的资源。破坏性变更的示例包括:
  • 从 API 请求/响应中移除某个参数
  • 修改任何参数或 endpoint 的名称
  • 值的表示形式发生变化(preview_url → card_uri)
  • endpoint 行为发生变化(例如,异步 vs 同步统计)
  • 添加/更改可选或必填参数(例如,将 name 设为请求中的必填字段)
弃用(Deprecation):被弃用的版本或产品将不再受支持,建议开发者停止使用这些 API。 停用(Sunset):一旦某个产品或 API 停用,其对应的一组 endpoints 将无法再通过 API 访问。

版本策略

该策略的主要原则如下:
  1. 所有破坏性变更都将归入一个新版本
  2. 每当宣布新版本时,现有版本的弃用期为 6 个月
  3. 任何时间点,API 将同时接受来自两个版本的请求,但其中较旧的版本不再受支持
  4. 为加速新产品的采用,这些产品将持续发布(不受版本节奏限制)
  5. 所有 API 响应都会包含一个 x-current-api-version,其值为当前 API 版本;此外,调用任何已弃用的 API endpoint 时还会返回 x-api-warn 头。
如因根本性产品需求变更而必须进行 API 破坏性更改(例如弃用多个年龄段定向),我们将提前 90 天发布通知宣布该破坏性更改,并在通知发布至少 90 天后部署该更改。

v9

今天(2021 年 3 月 3 日),X Ads API 的第 9 版(v9)现已发布。本次版本旨在提升功能对齐程度、简化广告系列创建流程,并为我们的 Cards 和 Mobile App Promotion endpoint 引入重要更新。 与以往版本一样,将提供为期 6 个月的过渡期以迁移至 v9。自 2021 年 8 月 31 日起,现有的第 8 版(v8)Ads API 将不再可用。我们鼓励所有开发者尽快迁移至最新版本的 Ads API,以避免任何服务中断。
注意: 自本次发布起,Ads API 的第 7 版(v7)已结束生命周期,不再可用。
如需了解完整详情,请参阅开发者论坛上的公告

v8

今天(2020 年 9 月 20 日),我们发布了 X Ads API 第 8 版,旨在引入全新的 Tailored Audiences 功能、提升与 ads.x.com 的功能对齐,并改进开发者体验。 与以往版本相同,将提供为期 6 个月的过渡期以迁移到 v8。自 2021-03-02 起,Ads API 第 7 版将不再可用。我们鼓励所有开发者尽快迁移到最新的 API 版本,以避免任何服务中断。 有关完整详情,请参见开发者论坛公告

v7

今天(2020 年 3 月 20 日),我们发布了 X Ads API 的第 7 个版本,旨在与 ads.x.com 的功能更加对齐。 与以往版本一样,将提供 6 个月的过渡期以迁移到 v7。自 2020-09-01 起,Ads API 的第 6 个版本将不再可用。我们鼓励所有开发者尽快迁移到最新的 API 版本,以避免任何服务中断。Ads API 的第 5 个版本已结束生命周期,且不再提供。 完整详情请参阅开发者论坛上的公告

v6

今天(2019 年 8 月 28 日),X 发布 Ads API v6,更新重点在于提升一致性与改进开发者体验。 此次版本包含用于检索 Tweets 的新 endpoint、Promoted Accounts 的统计数据、按名称搜索实体的功能,以及当前正在处理的异步分析作业数量信息。此外,我们对使用 media 的 endpoints 以及定位条件相关的 endpoints 进行了以一致性为重点的更新。最后,我们对部分参数名称和响应属性进行了小幅调整,并弃用 Scoped Timeline endpoint。 完整详情请参阅开发者论坛上的公告

v5

今天(2019 年 2 月 28 日),X 推出 Ads API v5,本次更新重点在于提升规模化能力与效率。 本次发布包括:用于确定在指定时间范围内哪些实体处于活跃状态的新 endpoint;针对 Media Creatives(即 X Audience Platform 上的 In-stream 视频与图片)的统计数据;按卡片 URI 获取多个卡片的能力;以及在检索定向条件和其他实体方面更灵活的选项。此外,我们修复了一些缺陷,并更新了参数名称和响应属性。最后,非媒体类 App 卡片以及 POST accounts/:account_id/account_media endpoint 已被弃用。 与以往版本一样,将提供 6 个月的过渡期以迁移到 v5。自 2019-08-28 起,Ads API 的第 4 版将不再可用。我们鼓励所有合作伙伴尽快迁移到最新的 API 版本,以避免任何服务中断。Ads API 的第 3 版已达到生命周期终点,现已停止提供。

新增

确定哪些实体处于活跃状态 Active Entities endpoint 用于指示广告实体的分析度量是否发生变化。该功能旨在与分析类 endpoints 搭配使用:Active Entities 通过指定实体类型和日期范围(最长 90 天),返回一个实体 ID 数组,供你的平台据此请求分析数据。未被返回的 ID 不应在后续分析请求中查询。 此 endpoint 支持以下实体类型:CAMPAIGNFUNDING_INSTRUMENTLINE_ITEMMEDIA_CREATIVEPROMOTED_TWEET MEDIA_CREATIVE 统计 X Ads API 的分析 endpoints 现已为 Media Creative 实体提供度量。Media Creative 是在 X Audience Platform 上推广 in-stream 广告或图片的方式。X Ads UI 会在“In-stream videos”和“Display creatives”选项卡下显示 Media Creative 度量。同步synchronous和异步asynchronous分析 endpoints 现均支持 MEDIA_CREATIVE 实体枚举。 获取多个 card v3 发布中提供按 card URI 检索单个 card 的基础上进一步改进,现在可通过 GET accounts/:account_id/cards/all endpoint 获取多个 card。你可以在单个请求中检索最多 200 个 card,而无需为每个 card 分别发起请求。 需要注意两点:
  1. URL 路径现为 accounts/:account_id/cards/all(先前路径已不可用)。此变更旨在与按 ID 检索 card 的 endpoint 保持一致。
  2. 必填请求参数现命名为 card_uris(复数)。
检索的灵活性 GET accounts/:account_id/targeting_criteria endpoint 现支持多个 line item ID。参数 line_item_ids(最多可传 200 个 ID)为必填项。此前仅接受单个 line item,增加了同步难度。此次变更使你能在更短时间内检索更多定向信息。 以下 endpoints 也已支持多个 line item ID,但对于这些 endpoint,line_item_ids 参数为可选:

已更改

检索草稿活动和广告项目 检索草稿活动和广告项目的方式已更新。现在,将 with_draft(boolean) 参数设为 true 时,会同时返回草稿和非草稿实体。此行为与检索已删除实体的方式一致(即使用 with_deleted)。此前,同时获取草稿和非草稿实体至少需要两次请求;现在一次 API 调用即可完成。 | v4 | v5 | | :--- | :--- | :--- | | draft_only | with_draft | | Network Activation Duration 定向 X Ads API 修复了一个显示问题:在添加 Network Activation Duration 定向后,响应中的定向 type 会带有 _IN_SEC 后缀。由于 Network Activation Duration 始终以月为单位表示,出现“秒”的引用会引发混淆。此修复使表示方式更一致并降低了困惑。 | v4 | v5 | | :--- | :--- | :--- | | NETWORK_ACTIVATION_DURATION_IN_SEC | NETWORK_ACTIVATION_DURATION | | 总计数与游标 在 v5 中,with_total_count 和 cursor 是互斥的。在同一请求中同时指定二者将返回 EXCLUSIVE_PARAMETERS 错误代码。在 v5 之前,当指定了 cursor 时,with_total_count 会被忽略。此更改使这种关系更加明确。

已移除

将从 X Ads API 的响应中移除三个字段:preview_url、account_id 和 parent_ids。对这三项的工程改动很小。
  • 在 v4 中,我们已宣布 cards 的 preview_url 响应参数始终为 null。本次迁移的最后一步是从所有 cards 的响应中删除 preview_url。
  • 将从以下资源中移除 account_id 响应属性,因为广告账户 ID 已包含在 URL 以及 request.params 中。(此列表中有意不包含资金工具,因为在可行的情况下,父级 ID 应当出现在响应对象中,而账户 ID 是资金工具的父级实体。)
    • Account media
    • App event providers
    • App event tags
    • Campaigns
    • Cards
    • Line items
    • Promotable users
    • Targeting criteria
  • 对于 GET accounts/:account_id/targeting_criteria 请求,我们将不再返回 parent_ids 字段,因为它始终是空数组。
非媒体 App 卡片 在 v5 中,不再支持非媒体 App 卡片。此前已移除创建或编辑非媒体 App 卡片的能力。现在,针对该资源的剩余 endpoint 将被弃用。
  • 注意:这不影响图片和视频类型的 App 下载卡片。
Account media 创建 在 v5 中,POST accounts/:account_id/account_media endpoint 不再可用。该资源的其他 endpoint 不受影响。此变更的原因是:当向 Media Library 添加媒体时,某些情况下这些资产会自动添加为 Account Media 实体,而尝试将已存在的资产再次添加到 Account Media 资源会导致错误。以下情形会出现该问题:
  • 添加到 Media Library 的 AMPLIFY_VIDEO 资产会自动作为 Account Media 资产添加,并带有 PREROLL 创意类型。
  • 添加到 Media Library 的特定尺寸图片会自动作为 Account Media 资产添加。创意类型(例如 INTERSTITIAL)取决于图片尺寸。(关于尺寸,请参见我们的 Enumerations 页面。)

v4

X Ads API 第 4 版于今天(2018 年 8 月 28 日)上线。 本次发布对我们的 Audiences 产品进行了改进,引入了由更强大的受众处理后端驱动的新 API 接口。第 4 版还新增一组用于管理用户、账户和税务设置的 endpoint。此外,accounts/:account_id/videos 相关的 endpoint 将被弃用。本次发布还包含少量参数和响应字段名称的变更。 与第 3 版相同,我们提供 6 个月的过渡期。自 2019-02-28 起,X Ads API 第 3 版将不再可用。我们鼓励所有合作伙伴尽快迁移到最新的 API 版本,以避免服务中断。有关我们的版本策略的详细信息,请参见 Versions 页面。

新增

Audience API 全新的 Audiences API 构建在我们新一代的受众处理后端之上,具备更高的稳健性和可靠性。该新 endpoint 允许合作伙伴为同一用户提供多种用户标识符类型,从而使我们能够利用更多信号进行匹配。新的 Audience endpoint 的参考文档见此处。我们计划在今年剩余时间内持续为该产品发布更新和改进。 以下 endpoint 因功能重叠将在 v4 中不再提供(它们在 v3 中仍可使用,并将在 v3 停用后完全下线):
  • TON Upload:
    • GET accounts/:account_id/tailored_audience_changes
    • GET accounts/:account_id/tailored_audience_changes/:tailored_audience_change_id
    • POST accounts/:account_id/tailored_audience_changes
    • PUT accounts/:account_id/tailored_audiences/global_opt_out
  • Real Time Audiences:
    • POST tailored_audience_memberships
最后,在版本 4 中,将从_所有_ Tailored Audiences endpoints 的请求与响应中移除 list_type 参数。 Settings Endpoints 我们现已支持账户管理员设置和更新用户、账户及税务设置。User settings 对应于指定广告账户的用户级联系偏好。通过 PUT accounts/:account_id endpoint,广告主可更新其账户名称和行业类型。最后,tax settings endpoints 允许在征收增值税(VAT)的国家/地区的广告主更新公司名称、地址、VAT ID,以及账户归属(由广告主自有,或由代理商代表广告主管理)等信息。

变更

Universal Lookalike 重命名 我们正在更新以下两个 endpoint 中 lookalike_expansion 参数的枚举值:POST accounts/:account_id/line_itemsPUT accounts/:account_id/line_items/:line_item_id
v3v4
NARROWDEFINED
BALANCEDEXPANDED
全面使用 country_code 作为在 X Ads API 中推进一致性的一部分,我们将以下 endpoint 的参数名从 app_country_code 重命名为 country_code 这不会影响这些参数的行为或可接受的取值,仅为命名变更。 preview_url 始终为 null 正如 v3 公告所述,所有现有卡片现在都具有 card_uri。因此,preview_url 的值将始终为 null 提醒:使用卡片的 card_uri 值将其与 Tweet 关联。参见以下示例请求。 $ twurl -X POST -H ads-api.x.com “/4/accounts/18ce54d4x5t/tweet?text=Version 4&card_uri=card://958225772740714496”

已移除

视频 endpoint 在 v4 中,accounts/:account_id/videos endpoint 将不再可用。随着引入 Media Library endpoints,此 endpoint 已被弃用。请参阅以下用法对比。
  • v3 videos endpoint: twurl -H ads-api.x.com "/3/accounts/18ce54d4x5t/videos"
  • v4 针对视频的 media library endpoint: twurl -H ads-api.x.com "/4/accounts/18ce54d4x5t/media_library?media_type=VIDEO"
Media Library endpoints 与 videos endpoints 功能完全对等,并且还支持处理图像和 GIF 等附加能力。请合作伙伴在所有媒体管理场景中仅使用 Media Library。 Tweet 视图中的 as_user_id GET accounts/:account_id/tweet/preview/:tweet_id endpoint 上提供的 as_user_id 参数将不再受理。预览将始终以该 Tweet 作者的身份呈现。

v3

X Ads API 第 3 版已于 2018 年 2 月 1 日发布。X Ads API 第 2 版将于 2018 年 8 月 1 日停止支持。 本次发布包含全新的 Audience Intelligence 产品、对 Media Library 的访问,以及改进的卡片工作流。我们还宣布弃用 PUT accounts/:account_id/targeting_criteria endpoint。最后,第 3 版包含少量参数和响应变更,并降低了批处理大小上限。 第 2 版一样,我们为合作伙伴提供 6 个月的过渡期。自 2018-08-01 起,Ads API 的 v2 将被关闭。我们鼓励所有合作伙伴和开发者尽快迁移到 v3。 Audience Intelligence Audience Intelligence 提供与特定 X 受众最相关的热门 hashtags、@handles 和事件的实时洞察。例如,输入“美国 18–34 岁男性”,您将看到 #nintendoswitch、#cardinal 和 @ricegum 在该受众中处于热度上升趋势。 Audience Intelligence 的endpoints将提供以下功能:
  • 基于输入受众,检索最相关的 hashtags、@handles 和事件。
  • 基于输入受众,检索关键的人口统计信息(如年龄、性别和家庭收入)。
  • 基于关键词,检索 Tweet 量的时间序列。
Media Library Media Library 提供对广告账户中的图片、GIF 和视频的管理能力。这些媒体对象可用于 Tweets 并用于创建卡片。它们也可以在多个创意中复用,无需多次上传相同素材。 库中的对象通过 media_key 标识。Media key 是字符串值,例如:13_875943225764098048。在 Ads API 中,我们正逐步在所有媒体中采用 media key。 改进的卡片工作流 我们所有与卡片相关的 endpoints 现已支持 media key。这使得 Media Library 中的对象可用于创建或更新卡片。 此外,我们引入了两个用于检索卡片详情的新 endpoints。通过指定 card_uri 或 id,这些 endpoints 可用于查找用于 Tweets 或 Scheduled Tweets 的卡片。此前,这是不可能的。

其他更改

除这些新功能外,我们还在第 3 版中引入了以下更改。 新增
  • GET insights/keywords/search endpoint 的响应现在包含 related_keywords 属性,其中提供与输入关键词相关的 30 个术语。
变更
  • 定向条件的最大批处理大小现为 500。
  • 响应属性 card_uri 和 preview_url 现在互斥。卡片具有 card_uri 时,preview_url 为 null;卡片没有 card_uri 时,仅返回 preview_url。
    • 自 2018-01-29 起创建的所有卡片都将具有 card_uri。
    • 到第 4 版时,所有现有卡片都将具有 card_uri。
  • 不能再创建使用 5:2 比例图片的卡片。尽管现有的 5:2 图片卡片仍可使用,我们仍建议合作伙伴改用表现更佳的 1.91:1 或 1:1 纵横比(在支持的情况下)。
移除 注意 Video Website Cards 和 Scheduled Tweets 现已退出测试阶段。请参阅此帖了解自发布以来我们对 Scheduled Tweets 所做的更改。其中包括为 Scheduled Tweets 生成 HTML预览的功能。

v2

X Ads API 的版本 2 于 2017 年 7 月 10 日发布。版本 1 将于 2018 年 1 月 10 日停止维护。 重大变更/弃用
  • total_count 现为可选响应属性。仅当 with_total_count 设为 true 时才会返回
  • line_itemscampaigns 请求与响应对象中的 pauseddraft_only 字段被单一的 entity_status 参数取代
  • POST accounts/:account_id/tweetGET accounts/:account_id/tweet/preview endpoint 上的 status 参数已重命名为 text
  • GET targeting_criteria/locations endpoint 的 location_type 枚举现为复数形式:COUNTRY 改为 COUNTRIESREGION 改为 REGIONS,以此类推。唯一例外是在 v2 中,CITY 改为 METROS,以准确反映该位置类型指代指定市场区域(DMA)或“都会区”
  • PUT accounts/:account_id/promoted_tweets endpoint 上的 display_properties 不再受支持。该值也将不再作为响应的一部分返回
  • 因上述变更,不再支持更新(PUT)promoted_tweets 实体
  • GET accounts/:account_id/promoted_tweets endpoint 上的 line_item_id 参数已移除
  • 在 v2 endpoint 上将不再能够创建 5:2 Website Card
  • 不再返回 data_type 响应属性
新功能
  1. Cards v2
  2. 草稿 campaign/line item 的创建与激活
  3. 预定发布的 Tweets
  4. 异步作业摘要
Cards v2
  • 在将卡片与 Tweet 关联时,应使用 card_uri 请求参数,而不是将 preview_url 追加到 Tweet 文本
  • 如果在响应中未返回 card_uri 参数(卡片创建步骤期间),则使用 preview_url
  • 所有新的卡片格式将在 API 中原生提供,并利用 card_uri 参数
新卡片格式: 草稿 Campaigns 草稿 campaigns 之前可通过 GET accounts/:account_id/camapaigns endpoint 查看。随 v2 推出,现在可通过 API 创建/激活草稿 campaigns。
草稿 Campaign草稿 Line Item
funding_instrument_idcampaign_id
nameobjective
start_timeproduct_type
placements
说明
  • 草稿 Line Item 或 Campaign 只能将 entity_statusDRAFT 转换为 PAUSEDACTIVE
  • 若要激活整个 Campaign(包含多个 Line Item),该 Campaign 下的每个 Line Item 以及 Campaign 本身都必须将 entity_status 设为 ACTIVE
  • 若要更改任何 Campaign 或 Line Item 的 entity_status,请使用相应的 PUT endpoint。
Scheduled Tweets

v1

X Ads API 的第 1 版于 2016 年 3 月 31 日发布,并将于 2018 年 1 月 10 日终止生命周期。 第 1 版的变更:
  • 版本化支持
  • 不再支持 CUSTOM 目标
  • Batch endpoints 现已全面可用
  • 触达预估更新:
  • 为提供更准确的触达预估,该 endpoint 现已支持预算维度。以下参数现为必填:
    • [new] campaign_daily_budget_amount_local_micro
    • currency
    • bid
    • objective
  • 响应对象已更新,现在会为响应值返回取值范围。
  • infinite_count 已重命名为 infinite_bid_count,以避免对其用途产生误解
  • countinfinite_bid_count 外,还将返回以下新数据指标:
    • impressions
    • engagements
    • estimated_daily_spend_local_micro
  • “定向受众”的 data type 变更
  • 在我们所有的响应中,Tailored Audiences 的 data_type 已从 tailored_audiences 变更为 tailored_audience
  • “共享定向受众”现已以仅限 API 的测试版形式提供。共享定向受众允许在多个广告账户之间共用同一受众。使用 POST accounts/:account_id/tailored_audiences/:tailored_audience_id/permissions(及相关)endpoint 来管理你希望在多个广告账户间共享的定向受众权限。
  • 在为广告主账户收集绩效分析方面有重大改进:
  • 为与我们的最佳实践保持一致,我们现在仅允许通过同步统计 endpoint提取最长7 天的 data。
  • 为简化提取度量,我们已将 metrics 参数替换为新的 metric_groups 参数。开发者只需在特定请求中指定希望返回的度量组即可。
    • 对于不适用于特定实体的度量请求,将在响应中被排除,并以 null 值表示。这些度量不会计入你的分析费用上限。
  • 该响应已被大幅简化,并将更贴近我们在 UI 中呈现度量的方式。
    • 之前我们针对每个投放位置分别提供单独的度量(搜索中的 Promoted Tweets、时间线中的 Promoted Tweets、个人资料与 Tweet 详情中的 Promoted Tweets、X Audience Platform)。现在我们将为每个位置返回一组标准化的度量,取代 promoted_tweet_timeline_impressionspromoted_tweet_search_impressionspromoted_tweets_profile_impressionspromoted_tweets_tpn_impressions。当在以下任一类别下请求时,将以单一度量 impressions 提供(适用于所有度量):
    • ALL_ON_TWITTER
    • PUBLISHER_NETWORK
    • 当你发起请求时,将只会返回一个 impressions 度量,便于与我们 UI 中的数值对齐。
    • 你必须分别发起两次查询才能获取 ALL_ON_TWITTERPUBLISHER_NETWORK 的 data,因为二者不能合并。
  • 基于开发者的反馈,异步统计 endpoint 现已上线!
    • 一组用于以异步方式请求统计数据的新 endpoint,适用于无需立即获取的数据或历史数据拉取。
    • 使用一个新的单一 endpoint 将统计作业排队。我们会在资源允许时拉取你请求的 data。
    • 你可以查询作业状态 endpoint 以确定 data 是否可用。
    • 一旦 data 可用,我们将提供一个提取 id,供你下载 JSON 响应,该响应将与同步 endpoint 的响应一致。
    • 在单个作业中最多查询90 天的 data,涵盖最多20 个实体
  • 请查看我们的 analytics v1 迁移指南,其中包含 v0 度量到 v1 度量的映射关系
  • 沙盒改进 * 您现在可以在沙盒环境中创建多个测试广告账户。 * 您现在可以仅在沙盒环境中为测试广告账户创建多个资金工具。这样您即可测试我们提供的所有资金工具类型。此前,只有 CREDIT_CARD 资金来源可用于测试。 * 想测试某个 beta 功能?您现在可以在沙盒环境中为账户切换功能开/关,以满足测试需求。

v0

X Ads API 的 0 版于 2013 年 2 月 21 日正式发布,支持至 2016 年 10 月 31 日。 所有 0 版的分析类 endpoint 均已弃用,并将在 2016 年 10 月 31 日后不再提供。这些 endpoint 已在 1 版中由 3 个分析类 endpoint 取代。 “覆盖范围预估” endpoint 在 1 版中具有新的行为。
I