跳转到主要内容

1. 概述

为帮助企业更好地控制并优化其 WhatsApp 营销消息支出,YCloud 支持 Meta 于 2026 年为营销消息 API 推出的新定价功能,包括 最高出价(Max Price) 和 触达估算工具(Reach Estimation Tool)。 借助 YCloud API,企业可以设置愿意为每条成功送达的 WhatsApp 营销消息支付的最高价格,并根据营销活动成本和送达目标调整定价策略。设置最高出价后,Meta 对每条送达的消息收费将等于或低于该价格。在发送之前,企业还可以使用触达估算工具了解不同最高出价水平下的预估送达量和成本。 本指南介绍如何使用 YCloud API 执行以下操作:
  1. 在营销消息模板上设置 最高出价(Max Price) 和 国家/地区系数(Country multiplier)
  2. 在发送消息时可选应用 单条消息系数(per-message multiplier)
  3. 通过 消息状态 Webhook 获取最终扣费金额
  4. 在发送前评估不同 最高出价(Max Price) 水平下的送达量和成本

2. 核心概念

2.1 什么是最高出价(Max Price)?

最高出价是企业 愿意为每条成功送达的 WhatsApp 营销消息支付的最高金额。设置最高出价后,Meta 的送达收费将等于或低于该价格。实际扣费不会超过配置的价格上限。 根据营销活动的目标,企业可以将最高出价设置为等于、低于或高于 Meta 的官方公布费率: 最高出价是价格上限,而非固定费用。 设置最高出价并不意味着每条送达的消息都会按该价格计费。每条消息的价格是动态计算的,可能等于或低于配置的最高出价。

2.2 如何设置最高出价

2.2.1 在模板上设置最高出价 您可以为模板设置固定的最高出价(maxBid),并为不同国家或地区配置不同的系数(countryPriceAdjustments.multiplier)。例如,假设 maxBid 设置为 0.10 美元,印度系数为 0.8×,马来西亚系数为 1.3×:
  • 使用该模板向印度发送消息时,模板级最高出价为 0.10 美元 × 0.8 = 0.08 美元。
  • 使用该模板向马来西亚发送消息时,模板级最高出价为 0.10 美元 × 1.3 = 0.13 美元。
  • 将该模板发送到任何其他国家/地区时,模板级最高出价为 0.10 美元。
2.2.2 发送模板消息时调整系数 使用配置了最高出价的模板发送消息时,您可以应用大于 0 的单条消息系数,以提高或降低单条消息的有效最高出价。 2.2.3 计算有效最高出价
有效最高出价 = 模板 maxBid x 模板 countryPriceAdjustments.multiplier x per_message_bid_multiplier
示例: 您创建了一个模板,模板级最高出价设置如下:
  • maxBid:0.1 USD,
  • countryPriceAdjustments.multiplier:
    • IN:0.8x
    • MY:1.3x
如果有 4 位收件人,您在发送时指定了不同的单条消息系数**,** 则有效最高出价计算如下:

2.3 动态计费规则

每条成功送达的消息的价格都是针对其接收者动态计算的:
  • 模板上配置的最高价格(Max Price)仅代表商家愿意支付的最高金额。
  • 送达消息的最终费用是动态的;Meta 将按照该最高价格或更低的价格收取送达费用。
  • 同一次发送中不同接收者的实际消息价格可能会有所不同。
  • 未送达的消息不会产生送达费用。
  • 最高价格会影响竞价和送达机会,但并不能保证送达。实际结果还可能受到实时竞价、接收者状态以及 Meta 资格审核的影响。

2.4 什么是触达预估工具?

触达预估工具可帮助商家选择合适的最高价格。在发送之前,商家可以使用预估接口查看不同最高价格水平下的预估送达量和费用范围,然后根据其营销活动目标和预算选择定价策略。 预估数据仅供规划参考,不能保证实际送达结果或最终账单金额。实际结果可能会受到实时竞价、接收者状态以及 Meta 资格审核的影响。

3. 建议的接入流程

  1. 在发送前调用 reachEstimate,以对比不同价格水平下的预估表现。
  2. 创建营销模板时,通过 bidSpec 配置模板级别的最高价格。
  3. (可选)在发送消息时传入 per_message_bid_multiplier,以针对单个接收者调整最高价格。

4. 创建带有最高价格的模板

4.1 接口地址

创建营销消息模板时添加 bidSpec 对象。

4.2 请求参数

bidSpec 对象包含以下字段:

4.3 请求示例

4.4 规则

  • maxBid 必须大于 0,并且可以低于公布费率。
  • 如果省略 bidSpec,模板将采用标准的公布费率定价。

4.5 响应示例

模板创建成功后,响应将包含模板对象及其 bidSpec 配置。

5. 更新模板上的最高价格

5.1 接口地址

更新营销消息模板时添加 bidSpec 对象。

5.2 请求参数与示例

请参阅 创建带有最高价格的模板

4. 创建带有最高价格的模板

5.3 规则

  • 您无法向创建时未包含 bidSpec 的现有模板添加该项。您必须创建一个包含 bidSpec 的新模板。
  • 已批准的模板:每小时最多修改 100 次,每天最多修改 2,400 次。内容修改仍遵循每天 1 次和每 30 天 10 次的原有限制。
  • 已拒绝或已暂停的模板:修改次数无限制

6. 发送消息时设置单条消息出价系数

6.1 接口地址

直接发送消息时添加 bidSpec 对象。

6.2 请求参数

消息级别的 bidSpec 对象包含以下字段:

6.3 请求示例

6.4 规则

  • per_message_bid_multiplier 必须大于 0 且最多支持三位小数。大于 1 的值会增加生效的 Max Price,而介于 0 和 1 之间的值会降低它。
  • 该乘数仅适用于通过 bidSpec 启用了 Max Price 的营销模板。
  • 如果消息请求包含 bidSpec 对象,则 per_message_bid_multiplier 为必填。若要使用默认乘数 1,请省略整个 bidSpec 对象。

6.5 响应

发送端点继续使用标准的 WhatsApp 消息响应。传入 bidSpec 不会引入单独的响应结构。 当返回的状态为 accepted 时,totalPrice 是预估价格而非最终费用。

7. 最终费用与消息状态 Webhook

7.1 Webhook 事件

当 WhatsApp 消息的状态发生变化时,YCloud 会发送 whatsapp.message.updated Webhook 事件。对于使用 Max Price 发送的消息,Webhook 会标识定价模式,并在消息送达后提供最终费用。

7.2 Webhook 载荷示例

在此示例中:
  • 由于消息状态为 delivered 或 read,因此 totalPrice 为最终费用。
  • pricingCategory: marketing_lite_bidding 标识了 Max Price 定价类别。
  • bidPricingFlag: true 确认消息是使用 Max Price 定价发送的。

8. 发送前预估送达数和成本

8.1 端点

  • 端点:GET /v2/whatsapp/businessAccounts/{wabaId}/reachEstimate
  • 使用场景:在发送前使用触达预估端点,以查看不同价格水平下的预估送达数和成本范围。

8.2 请求参数

请求示例:

8.3 响应结构

estimates 中的每一项包含:

8.4 响应示例

解读:
  1. 当每条消息的最高限价(Max Price)为 395 / 1000 USD = USD 0.395 时,1,000 个接收者的预计送达率区间为 4.8% to 23.4%,预计费用区间约为 USD 344.46 to USD 396。
  2. 当每条消息的最高限价(Max Price)为 495 / 1000 USD = USD 0.495 时,1,000 个接收者的预计送达率区间为 6.3% to 26.3%,预计费用区间约为 USD 353.067 to USD 429.597。

常见问题

我可以在发送前知道特定接收者的实际送达价格吗?

不能。每个接收者的送达价格是动态的,无法提前预知。企业只需设置愿意支付的最高限价(Max Price)。成功送达的消息将按其实际送达价格扣费,且不会超过生效的最高限价。

为什么实际送达结果与估算不同?

估算接口仅提供参考值。实际结果可能会受到实时竞价、接收者状态以及 Meta 资格检查的影响。如果差异显著,请联系 YCloud 寻求帮助。

消息送达后会返回实际费用吗?

会。当消息状态为 delivered 或 read 时,totalPrice 表示根据接收者实际送达价格计算的最终扣费。当消息最初被接受或其状态为 sent 时,YCloud 返回的是预估价格而非最终扣费。