跳到内容

消息统计

这些方法返回您已发送消息的统计数据。使用它们可以列出已发送的消息、获取消息的每小时指标、查看消息在投递漏斗的哪个阶段流失了受众、读取每台设备的消息日志,以及统计电子邮件中的链接点击次数。

messages:list

Anchor link to

显示已发送消息的列表。

POST https://api.pushwoosh.com/api/v2/messages:list

名称
是否必需
描述
Authorization是服务器 API 令牌。必须以下列格式提供:Authorization: Api <Server Key>。
请求正文参数
Anchor link to
名称
是否必需
类型
描述
platforms否Array消息平台。可能的值:"IOS"、"ANDROID"、"OSX"、"WINDOWS"、"AMAZON"、"SAFARI"、"CHROME"、"FIREFOX"、"IE"、"EMAIL"、"HUAWEI_ANDROID"、"SMS"。
date_range否Object报告期,按消息创建日期筛选。date_from 和 date_to 必须遵循 YYYY-MM-DD 格式(例如 “2000-01-01”);两天都完全包含在内,因此将 date_from 和 date_to 设置为同一日期会返回该整天的数据。日期以 UTC 解释,而不是您账户的时区。
campaign否String营销活动代码
filters是Object消息筛选器。
source否String消息来源。例如:AB_TEST、API、AUTO_PUSH、CP、CSV、CUSTOMER_JOURNEY、EMAIL_API、EMAIL_CP、GEO_ZONE、PUSH_ON_EVENT、RSS。
messages_codes否Array从 /createMessage API 响应中获取的消息代码。
messages_ids否Array从消息历史记录中获取的消息 ID
message_type否String消息流筛选器。可选值:"TRANSACTIONAL"、"BROADCAST"、"ALL"。省略时默认为 "ALL"。
params否Object指定是否显示消息详情和指标。设置 with_details: true 以在响应中包含 “details” 对象,设置 with_metrics: true 以包含 “metrics” 对象。
application是StringPushwoosh 应用程序代码。
per_page否Integer每页结果数,1 到 499。省略该参数以获取默认的 500 个结果的页面大小;明确传递 500 或更多将被拒绝并返回 400。
page否Integer用于分页的从零开始的页码。请参阅下面的深度分页限制。

message_type 还决定了不带日期的请求最多可追溯多久。

请求示例
Anchor link to
{
"filters": {
"platforms": [], // IOS、ANDROID、OSX、WINDOWS、AMAZON、SAFARI、CHROME、FIREFOX、IE、EMAIL、HUAWEI_ANDROID、SMS
"date_range": {
"date_from": "string", // 必需格式:2000-01-01
"date_to": "string" // 必需格式:2000-01-01
},
"source": "API", // AB_TEST、API、AUTO_PUSH、CP、CSV、CUSTOMER_JOURNEY、EMAIL_API、EMAIL_CP、GEO_ZONE、PUSH_ON_EVENT、RSS
"campaign": "string", // 营销活动代码
"messages_ids": [], // 消息 ID
"messages_codes": [], // 消息代码
"message_type": "ALL", // TRANSACTIONAL、BROADCAST、ALL(默认)
"application": "string" // Pushwoosh 应用程序代码
},
"params": {
"with_details": true, // 将消息详情添加到响应中(“details”对象)
"with_metrics": true // 将消息指标添加到响应中(“metrics”对象)
},
"per_page": 20, // <= 499
"page": 0
}
响应代码和示例
{
"total": 0,
"items": [{
"id": 0,
"code": "string",
"created_date": "string",
"send_date": "string",
"status": "string",
"platforms": [],
"source": "string",
"push_info": {
"details": {
"title": "string",
"filter_name": "string",
"filter_code": "string",
"content": {
"key": "value"
},
"platform_parameters": {
"android_header": "string",
"android_root_params": {
"key": "value"
},
"ios_title": "string",
"ios_subtitle": "string",
"ios_root_params": {
"key": "value"
},
"chrome_header": "string",
"chrome_root_params": {
"key": "value"
},
"firefox_header": "string",
"firefox_root_params": {
"key": "value"
},
"conditions": [ // 标签条件 (参见 /developer/api-reference/messages-api/#tag-conditions)
TAG_CONDITION1,
TAG_CONDITION2,
...,
TAG_CONDITIONN
],
"conditions_operator": "AND", // 条件数组的逻辑运算符;可能的值:AND、OR
"data": {
"key": "value"
}
},
"follow_user_timezone": true
},
"metrics": [{
"sends": 0,
"opens": 0,
"deliveries": 0,
"inbox_opens": 0,
"unshowable_sends": 0,
"errors": 0,
"platform": 0
}]
},
"email_info": {
"details": {
"template": "string",
"filter_name": "string",
"filter_code": "string",
"subject": {
"key": "value"
},
"from_name": "string",
"from_email": "string",
"reply_name": "string",
"reply_email": "string",
"follow_user_timezone": true,
"conditions": [ // 标签条件 (参见 Messages-api - tag-conditions)
TAG_CONDITION1,
TAG_CONDITION2,
...,
TAG_CONDITIONN
],
"conditions_operator": "AND" // 条件数组的逻辑运算符;可能的值:AND、OR
},
"metrics": [{
"sends": 0,
"opens": 0,
"deliveries": 0,
"hard_bounces": 0,
"soft_bounces": 0,
"rejects": 0,
"confirmed_sends": 0,
"unsubs": 0,
"complaints": 0,
"errors": 0
}]
}
}]
}

totalsByIntervals

Anchor link to

根据消息代码返回指标和转化数据,按小时汇总。

POST https://api.pushwoosh.com/api/v2/statistics/messages/totalsByIntervals

授权通过请求标头中的 API 访问令牌处理。

请求正文参数
Anchor link to
参数名称
类型
描述是否必需
message_codestring从 /createMessage API 响应中获取的消息代码。是
platforms[int]平台否
请求示例
Anchor link to
{
"message_code": "XXXXX-XXXXXXXXX-XXXXXXXX", // 必需。唯一消息标识符
"platforms": [1, 3, 7, 10, 11, 12] // 可选。平台代码列表
}
响应字段
Anchor link to
名称类型描述
metricsarray包含消息指标的数组
timestampstring指标的时间。
platformint平台代码(例如 iOS、Android)。
sendsstring已发送消息数。
opensstring已打开消息数。
deliveriesstring已送达消息数。
inbox_opensstring收件箱打开次数。
unshowable_sendsstring操作系统设置中通知已关闭的设备接受的消息数。不显示横幅,但消息仍会到达应用,如果发送时启用了保存消息到收件箱,则会出现在消息收件箱中。计为成功发送,而非错误。
errorsstring错误数。
conversionobject包含转化数据
sendsstring已发送消息总数。
opensstring已打开消息总数。
eventsarray包含事件及其统计信息的数组
namestring事件名称(例如,添加到购物车)。
hitsstring点击次数。
conversionfloat相对于打开的转化率。
revenuefloat收入(仅适用于带有 __amount 和 __currency 属性的事件)。
响应示例
Anchor link to
{
"metrics": [{
"timestamp": "2024-08-03 15:00:00", // 指标的时间戳,格式为 "YYYY-MM-DD HH:MM:SS"
"platform": 3, // 平台代码
"sends": "55902", // 已发送消息数
"opens": "382", // 已打开消息数
"deliveries": "22931", // 已送达消息数
"inbox_opens": "0", // 收件箱中已打开消息数
"unshowable_sends": "2", // 发送到通知已关闭的设备,不显示横幅
"errors": "0" // 遇到的错误数
}],
"conversion": {
"sends": "55902", // 已发送消息总数
"opens": "772", // 已打开消息总数
"events": [{
"name": "cart_add", // 事件名称
"hits": "96", // 事件的点击次数
"conversion": 0.12, // 相对于打开的转化率
"revenue": 0 // 事件产生的收入(仅适用于带有金额/货币属性的事件)
}]
}
}

投递漏斗

Anchor link to

使用投递漏斗查看一条消息或一个营销活动的受众在哪个阶段流失(错误、未送达、未打开)以及原因。与按小时返回总计的 totalsByIntervals 不同,漏斗按阶段和流失原因对受众进行细分,每个渠道一条记录,并按平台细分。阶段序列因渠道而异:请参阅下方 GetDeliveryFunnelResponse 字段 中的 stage,了解每个渠道包含哪些阶段。这两个方法都需要服务器 API 令牌。

这两个方法返回相同的响应结构 GetDeliveryFunnelResponse,下面统一说明。

getDeliveryFunnel

Anchor link to

返回一条消息的漏斗。

POST https://api.pushwoosh.com/api/v2/statistics/messages/getDeliveryFunnel

名称
是否必填
说明
Authorization是服务器 API 令牌。必须按以下格式提供:Authorization: Api <Server Key>。
请求正文参数
Anchor link to
名称
是否必填
类型
说明
message_code是字符串从 /createMessage API 响应中获得的消息代码。
platforms否整数数组用于筛选漏斗的平台代码。省略则返回消息发送到的所有平台。
请求示例
Anchor link to
{
"message_code": "A444-AAABBBCC-00112233", // 来自 /createMessage 的消息代码
"platforms": [1, 14] // 可选。iOS、Email
}
GetDeliveryFunnelResponse 字段
Anchor link to
名称
类型说明
channels数组消息发送到的每个渠道对应一条记录。
window_from、window_to字符串或 null漏斗覆盖的时间段,基于可用数据确定。当 funnel_state 不是 FUNNEL_STATE_READY 时为 null。
funnel_state字符串FUNNEL_STATE_READY:下方漏斗已填充。FUNNEL_STATE_NO_EVENTS:此消息尚未发生任何事件。FUNNEL_STATE_EXPIRED:消息发送时间过久,其漏斗数据已不再可用。在这两种非 READY 情况下,channels 均为空。未知、非本账户或已删除的 message_code 不属于这些状态,见下方 404 响应。

channels[]

名称类型说明
channel字符串CHANNEL_MOBILE_PUSH(iOS、macOS、Android、Amazon、Huawei)、CHANNEL_WEB_PUSH(Safari、Chrome、Firefox)、CHANNEL_EMAIL、CHANNEL_OTHER(SMS、即时通讯应用、Wallet、Windows、Baidu、Xiaomi)、CHANNEL_APP_INBOX。
funnel数组该渠道的漏斗阶段,见下方 funnel[]。
deliveries_form字符串STAGE_DELIVERIES 阶段携带哪种细分:DELIVERIES_FORM_PER_DEVICE(四行互不重叠,按设备是否会显示提示以及是否已确认拆分)或 DELIVERIES_FORM_BASIC(两行,不按提示状态拆分)。
basic_form_reason字符串仅当 deliveries_form 为 DELIVERIES_FORM_BASIC 时才有意义:BASIC_FORM_REASON_RETENTION(消息太旧,无法按设备细分)、BASIC_FORM_REASON_UNAVAILABLE(此账户或此消息不支持按设备细分,例如系统消息)、BASIC_FORM_REASON_NO_DELIVERIES(尚未接受任何投递)、BASIC_FORM_REASON_NOT_APPLICABLE(该渠道完全没有提示状态,例如邮件或 App Inbox)。否则为 BASIC_FORM_REASON_UNSPECIFIED:除非 deliveries_form 为 DELIVERIES_FORM_BASIC,否则忽略此字段。
confirmed_deliveries对象已确认投递的 count 及按 platforms 的细分。不受 STAGE_DELIVERIES 计数上限约束,因此可能与其不同。

funnel[](单个阶段)

名称类型说明
stage字符串STAGE_AUDIENCE(消息定向的所有人)、STAGE_SENT(已被推送服务或邮件提供商接受)、STAGE_ERRORS(在被接受前被拒绝)、STAGE_DELIVERIES(已接受,按确认情况拆分)、STAGE_OPENED(打开消息的唯一设备,App Inbox 则为用户点击打开的条目)、STAGE_INTERACTIONS(仅限邮件:点击、退订、投诉)、STAGE_REACHED/STAGE_READ(仅限 App Inbox,取代 STAGE_DELIVERIES)。
count字符串该阶段的总计,以数字字符串形式表示。
pieces数组该阶段自身的细分。对于 STAGE_ERRORS 为空,该阶段改用 errors。每个元素包含 kind(KIND_PASSED 表示进入下一阶段,KIND_REASON 表示未进入,KIND_SUBSET 与另外两者重叠,永远不参与求和)、category(见下方每个阶段的取值列表)、count 以及按 platforms 的细分。
errors数组仅限 STAGE_ERRORS:category(见下方取值列表)、count、platforms,以及 codes:归入该分类的原始提供商错误代码(platform、code、name、count)。有关每个 name 的含义及修复方法,请参阅发送错误。
platforms数组该阶段的总计,按平台细分。

category 取值

STAGE_AUDIENCE:

  • ELIGIBLE_AUDIENCE(通过):未被下列任何原因排除。
  • FREQUENCY_CAPPING:因频次限制而跳过。
  • CONTROL_GROUP:被划入对照组。
  • UNSUBSCRIBED:收件人已退订。
  • BOUNCED:收件人地址此前曾退回。
  • COMPLAINT:收件人此前曾将消息标记为垃圾邮件。
  • FILTERED_BY_CATEGORY:收件人已选择退出此消息所属的类别。

STAGE_ERRORS:

  • NO_TOKEN:设备没有可发送的推送令牌或地址。
  • NO_DEVICE:未找到匹配的设备。
  • PLATFORM_DISABLED:该平台在此应用中已被禁用。
  • INVALID_TOKEN:提供商将设备令牌或地址判定为无效并拒绝。
  • QUOTA_EXCEEDED:提供商对发送进行了限速。
  • INVALID_CONTENT:消息无法按已组合的内容发送。最常见的原因是模板本身构建失败,例如损坏的 Connected Content 或 Liquid 块,而非被提供商拒绝。
  • INVALID_CONFIGURATION:账户自身的提供商配置有误,例如凭据错误、Firebase 项目已删除,或使用了不允许的 APNs topic。
  • PROVIDER_ERROR:提供商返回了不属于上述类别的错误。
  • INTERNAL_ERROR:Pushwoosh 未能处理该次发送。
  • UNCLASSIFIED_ERROR:不符合上述任何类别的流失。预计极少出现。

STAGE_DELIVERIES,DELIVERIES_FORM_PER_DEVICE:

  • DISPLAYABLE_CONFIRMED(通过):设备显示了提示并确认已接收。
  • DISPLAYABLE_NO_CONFIRMATION:设备本应显示提示,但尚未确认已接收。
  • NOT_DISPLAYABLE_CONFIRMED(通过):静默推送已确认接收。
  • NOT_DISPLAYABLE_NO_CONFIRMATION:静默推送尚未确认接收。

STAGE_DELIVERIES,DELIVERIES_FORM_BASIC:

  • CONFIRMED_BY_DEVICE(通过):设备已确认接收。
  • NO_CONFIRMATION:尚未确认。

邮件渠道还会额外添加一个与 CONFIRMED_BY_DEVICE 重叠的子集:

  • BOUNCED_HARD(子集):该地址永久无法送达。
  • BOUNCED_SOFT(子集):该地址暂时无法送达,例如邮箱已满。

BOUNCED_HARD 还可能进一步细分为以下子集行:

  • BOUNCED_HARD_GENERAL:永久无法送达,没有更具体的原因。
  • BOUNCED_HARD_MAILBOX_FULL:收件人邮箱已满。
  • BOUNCED_HARD_MAILBOX_INACTIVE:收件人邮箱已不存在。
  • BOUNCED_HARD_SUPPRESSED:提供商已将该地址列入黑名单。
  • BOUNCED_HARD_UNDETERMINED:永久无法送达,原因未确定。

BOUNCED_SOFT 还可能进一步细分为以下子集行:

  • BOUNCED_SOFT_GENERAL:暂时无法送达,没有更具体的原因。
  • BOUNCED_SOFT_MAILBOX_FULL:发送时收件人邮箱已满。
  • BOUNCED_SOFT_CONTENT_REJECTED:收件人邮件服务器拒绝了消息内容。
  • BOUNCED_SOFT_SPAM:收件人邮件服务器将消息标记为垃圾邮件。
  • BOUNCED_SOFT_MESSAGE_TOO_LARGE:消息对收件人邮箱来说过大。
  • BOUNCED_SOFT_ATTACHMENT_REJECTED:收件人邮件服务器拒绝了附件。
  • BOUNCED_SOFT_CUSTOM_TIMEOUT_EXCEEDED:收件人邮件服务器响应耗时过长。
  • BOUNCED_SOFT_UNDETERMINED:暂时无法送达,原因未确定。
  • BOUNCED_UNDETERMINED:收件人服务器接受了邮件但从未确认投递;结果未知,且该地址未被列入屏蔽名单。计为软退回。

BOUNCED_UNCLASSIFIED 是一次退回(硬退回或软退回),但不符合上述任何子类型。预计极少出现,不应据此构建业务逻辑。

STAGE_OPENED,仅限邮件(其他渠道只报告该阶段的 count,不含子项):

  • OPENED_BY_RECIPIENT(通过):由真人打开。
  • MACHINE_OPENS_ONLY:仅被自动扫描程序打开。
  • OPEN_TYPE_UNKNOWN:无法判断是真人还是扫描程序打开的。
  • MACHINE_OPENS_AMPP(子集):当此消息无法获得人工/扫描程序拆分数据时,取代上述三行。改为统计 Apple Mail Privacy Protection 自身的机器打开数量,并与阶段总计重叠。

STAGE_INTERACTIONS,仅限邮件:

  • CLICKED_ONLY(通过):点击了链接,仍保持订阅。
  • CLICKED_AND_UNSUBSCRIBED:点击了链接并退订。
  • CLICKED_AND_COMPLAINED:点击了链接并将消息标记为垃圾邮件。
  • UNSUBSCRIBED_WITHOUT_CLICK:未点击即退订。
  • COMPLAINED_WITHOUT_CLICK:未点击即将消息标记为垃圾邮件。

STAGE_REACHED,仅限 App Inbox:

  • REACHED(通过):该条目至少被应用获取过一次。
  • NOT_FETCHED_YET:尚未被获取。

STAGE_READ,仅限 App Inbox:

  • READ(通过):已标记为已读。
  • DISMISSED_UNREAD:用户在未读的情况下将其删除。
  • UNREAD:仍未读地留在收件箱中。
  • EXPIRED_UNREAD:与 UNREAD 相同,但该条目此后已从收件箱中过期移除。
  • DISMISSED(子集):所有被删除的条目,无论已读与否。与 READ 和 DISMISSED_UNREAD 重叠。
响应代码
{
"channels": [{
"channel": "CHANNEL_MOBILE_PUSH",
"funnel": [
{ "stage": "STAGE_AUDIENCE", "count": "10000", "pieces": [
{ "kind": "KIND_PASSED", "category": "ELIGIBLE_AUDIENCE", "count": "10000", "platforms": [{ "platform": 1, "count": "10000" }] }
], "errors": [], "platforms": [{ "platform": 1, "count": "10000" }] },
{ "stage": "STAGE_SENT", "count": "9820", "pieces": [], "errors": [], "platforms": [{ "platform": 1, "count": "9820" }] },
{ "stage": "STAGE_ERRORS", "count": "180", "pieces": [], "errors": [
{ "category": "INVALID_TOKEN", "count": "180", "platforms": [{ "platform": 1, "count": "180" }], "codes": [
{ "platform": 1, "code": 1002, "name": "BadDeviceToken", "count": "180" }
] }
], "platforms": [{ "platform": 1, "count": "180" }] },
{ "stage": "STAGE_DELIVERIES", "count": "9820", "pieces": [
{ "kind": "KIND_PASSED", "category": "DISPLAYABLE_CONFIRMED", "count": "8000", "platforms": [{ "platform": 1, "count": "8000" }] },
{ "kind": "KIND_REASON", "category": "DISPLAYABLE_NO_CONFIRMATION", "count": "820", "platforms": [{ "platform": 1, "count": "820" }] },
{ "kind": "KIND_PASSED", "category": "NOT_DISPLAYABLE_CONFIRMED", "count": "900", "platforms": [{ "platform": 1, "count": "900" }] },
{ "kind": "KIND_REASON", "category": "NOT_DISPLAYABLE_NO_CONFIRMATION", "count": "100", "platforms": [{ "platform": 1, "count": "100" }] }
], "errors": [], "platforms": [{ "platform": 1, "count": "9820" }] },
{ "stage": "STAGE_OPENED", "count": "3120", "pieces": [], "errors": [], "platforms": [{ "platform": 1, "count": "3120" }] }
],
"deliveries_form": "DELIVERIES_FORM_PER_DEVICE",
"basic_form_reason": "BASIC_FORM_REASON_UNSPECIFIED",
"confirmed_deliveries": { "count": "8900", "platforms": [{ "platform": 1, "count": "8900" }] }
}],
"window_from": "2026-09-01T00:00:00Z",
"window_to": "2026-09-01T00:05:00Z",
"funnel_state": "FUNNEL_STATE_READY"
}

空的 channels 数组配合 funnel_state: "FUNNEL_STATE_NO_EVENTS" 表示此消息尚未发生任何事件,这不是错误。发送时间过久、漏斗数据已不可用的 message_code 同样会返回 200,channels 为空数组,funnel_state: "FUNNEL_STATE_EXPIRED"。

getCampaignDeliveryFunnel

Anchor link to

对一个营销活动所有消息的 getDeliveryFunnel 求和。唯一计数按每条消息单独计算:同一位订阅者被该活动的多条消息触达时,会在每条消息中各计一次。

POST https://api.pushwoosh.com/api/v2/statistics/messages/getCampaignDeliveryFunnel

名称
是否必填
说明
Authorization是服务器 API 令牌。必须按以下格式提供:Authorization: Api <Server Key>。
请求正文参数
Anchor link to
名称
是否必填
类型
说明
campaign_code是字符串营销活动代码。
platforms否整数数组用于筛选漏斗的平台代码。省略则返回该活动发送到的所有平台。
请求示例
Anchor link to
{
"campaign_code": "AAAAA-XXXXX", // 营销活动代码
"platforms": [1, 14] // 可选。iOS、Email
}

与上方 GetDeliveryFunnelResponse 结构相同。

响应代码

对于给定 campaign_code 和 platforms 的空受众,同样会返回 200,channels 为空数组,funnel_state: "FUNNEL_STATE_NO_EVENTS"。发送时间过久、漏斗数据已不可用的营销活动同样会返回 200,channels 为空数组,funnel_state: "FUNNEL_STATE_EXPIRED"。二者均不是错误。

getMessageLog

Anchor link to

显示有关已发送消息的详细信息。

POST https://api.pushwoosh.com/api/v2/statistics/getMessageLog

名称
是否必需
描述
Authorization必需来自 Pushwoosh 控制面板的 API 访问令牌。
请求正文参数
Anchor link to
名称
是否必需
类型
描述
message_id否Integer通过从消息历史记录中获取的消息 ID 选择消息事件。示例:12345678900。
message_code否String通过从 /createMessage API 响应中获取的消息代码选择消息事件。示例:"A444-AAABBBCC-00112233"。
campaign_code否String通过在消息负载中指定的营销活动代码选择消息事件。示例:"AAAAA-XXXXX"。
hwid否String 或 Array通过 HWID (硬件 ID) 或 HWID 数组选择消息事件。
date_from如果未提供 message_id、message_code 或 campaign_code,则为必需Datetime用于筛选消息的开始日期。格式:"YYYY-MM-DD HH:MM:SS"。示例:"2000-01-25 00:00:00"。
date_to如果未提供 message_id、message_code 或 campaign_code,则为必需Datetime用于筛选消息的结束日期。格式:"YYYY-MM-DD HH:MM:SS"。示例:"2000-01-26 00:00:00"。
limit否Integer单个响应中返回的最大消息事件数。最大值:100000。
pagination_token否String从上一个 /getMessageLog 响应中获取的分页令牌。用它来检索其他结果。
user_id否String通过自定义用户 ID选择消息事件。有关更多详细信息,请参阅 /registerUser。
application_code是String通过 Pushwoosh 应用程序代码选择消息事件
actions否Array按特定消息操作筛选结果。可能的值:"sent"、"delivered"、"opened"、"reject"、"create"、"inbox_delivered"、"inbox_read"、"inbox_opened"、"inbox_deleted"。默认情况下,"create" 事件会从响应中排除。在此数组中包含 "create" 以查看它们。"delivered" 事件另外要求在账户上启用送达统计。
platforms否Array用于筛选结果的目标平台数组。可能的值:"unknown"、"ios"、"blackberry"、"android"、"windows phone"、"osx"、"windows"、"amazon"、"safari"、"chrome"、"firefox"、"ie"、"email"、"fb messenger"、"baidu android"、"huawei android"、"sms"、"xiaomi"、"web"、"whatsapp"、"line"、"kakao"、"telegram"、"apple wallet"、"google wallet"、"viber"。
message_type否String按消息流筛选结果。"all"(如果省略则为默认值)返回所有内容,"broadcast" 仅返回群发消息 (message_id != 0),"transactional" 仅返回 message_id = 0 的消息,包括从 Customer Journey 发送的消息。
请求示例
Anchor link to
Terminal window
curl --location --request POST 'https://api.pushwoosh.com/api/v2/statistics/getMessageLog' \
--header 'Authorization: Key API_ACCESS_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"pagination_token": "PAGINATION_TOKEN_FROM_PREVIOUS_RESPONSE", // 可选,用于分页的令牌
"limit": 1000, // 可选,单个响应的最大条目数
"application_code": "XXXXX-XXXXX", // Pushwoosh 应用代码
"message_code": "A444-AAABBBCC-00112233", // 可选,从 /createMessage 请求获取的消息代码
"message_id": 1234567890, // 可选,从 Pushwoosh 控制面板获取的消息 ID
"campaign_code": "AAAAA-XXXXX", // 可选,要获取日志的营销活动代码
"hwid": "aaazzzqqqqxxx", // 可选,消息所针对的特定设备的硬件 ID
"user_id": "user_123", // 可选,消息所针对的用户的 ID
"date_from": "2000-01-25 00:00:00", // 可选,统计周期的开始
"date_to": "2000-02-10 23:59:59", // 可选,统计周期的结束
"actions": ["opened", "inbox_opened"], // 可选,用于结果过滤。可能的值:"sent"、"delivered"、"opened"、"reject"、"create"、"inbox_delivered"、"inbox_read"、"inbox_opened"、"inbox_deleted"。响应将包括所有具有指定操作的消息。
"platforms": ["ios", "chrome"], // 可选,用于结果过滤,仅限小写。可能的值:"unknown"、"ios"、"blackberry"、"android"、"windows phone"、"osx"、"windows"、"amazon"、"safari"、"chrome"、"firefox"、"ie"、"email"、"fb messenger"、"baidu android"、"huawei android"、"sms"、"xiaomi"、"web"、"whatsapp"、"line"、"kakao"、"telegram"、"apple wallet"、"google wallet"、"viber"
"message_type": "broadcast" // 可选,“all”(默认)、“broadcast”(message_id != 0)或“transactional”(message_id = 0,包括 Customer Journey 发送)
}'
响应代码和示例
{
"pagination_token": "PAGINATION_TOKEN_FOR_NEXT_REQUEST",
"data": [{
"timestamp": "2000-01-25T11:18:47Z",
"application_code": "XXXXX-XXXXX",
"message_id": 12345678900,
"message_code": "A444-AAABBBCC-00112233",
"campaign_code": "AAAAA-XXXXX",
"hwid": "aaazzzqqqqxxx",
"user_id": "user_123",
"platform": "android",
"action": "sent",
"status": "success",
"push_alerts_enabled": "true"
}, {
"timestamp": "2000-01-25T11:18:49Z",
"application_code": "XXXXX-XXXXX",
"message_id": 12345678900,
"message_code": "A444-AAABBBCC-00112233",
"campaign_code": "AAAAA-XXXXX",
"hwid": "aaazzzqqqqxxx",
"user_id": "user_123",
"platform": "android",
"action": "delivered",
"push_alerts_enabled": "true"
}, {
"timestamp": "2000-01-25T11:19:23Z",
"application_code": "XXXXX-XXXXX",
"message_id": 12345678900,
"message_code": "A444-AAABBBCC-00112233",
"campaign_code": "AAAAA-XXXXX",
"hwid": "aaazzzqqqqxxx",
"user_id": "user_123",
"platform": "android",
"action": "opened",
"push_alerts_enabled": "true"
}, {
"timestamp": "2000-01-25T11:19:30Z",
"application_code": "XXXXX-XXXXX",
"message_id": 12345678900,
"message_code": "A444-AAABBBCC-00112233",
"campaign_code": "AAAAA-XXXXX",
"hwid": "aaazzzqqqqxxx",
"user_id": "user_123",
"platform": "android",
"action": "reject",
"status": "failed",
"error_reason": "invalid device token",
"payload": "SOME_PAYLOAD_STRING"
}]
}

data 中的每个条目还带有 error_reason(字符串,当 status 为 "failed" 时填充失败原因)和一个可选的 payload(字符串)。

响应页面返回的结果可能比请求的 limit 少。这本身并不意味着导出已完成。

电子邮件统计

Anchor link to

linksInteractions

Anchor link to

显示电子邮件中链接点击的统计数据

POST https://api.pushwoosh.com/api/v2/statistics/emails/linksInteractions

名称
是否必需
描述
Authorization是来自 Pushwoosh 控制面板的 API 访问令牌。
请求正文参数
Anchor link to
名称
是否必需
类型描述
date_range否Object定义报告期。包含 date_from 和 date_to。
filters是Object电子邮件筛选器。
application是StringPushwoosh 应用程序代码(或者,指定 campaign、messages_ids 或 message_codes)。
messages_codes是Array消息代码(或者,指定 application、campaign 或 messages_ids)。
campaign是String营销活动代码(或者,指定 application、messages_ids 或 message_codes)。
messages_ids是Array消息 ID(或者,指定 application、campaign 或 message_codes)。
link_template如果指定了 application 或 campaign,则为必需。String按关键字筛选电子邮件链接交互。只有 URL 中包含指定文本的链接才会在 API 响应中返回。例如,如果您的电子邮件包含 https://example.com/news 和 https://example.com/shop 等链接,设置 "link_template": "shop" 将仅返回 https://example.com/shop 的交互。
email_content_code否String电子邮件内容的唯一标识符。
params否Object定义其他响应选项。包括 with_full_links,它会添加一个包含统计信息的完整链接列表。
请求示例
Anchor link to
Terminal window
curl --location --request POST 'https://api.pushwoosh.com/api/v2/statistics/emails/linksInteractions' \
--header 'Authorization: Api API_ACCESS_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"filters": {
"date_range": {
"date_from": "string", // 必需格式:2000-01-01
"date_to": "string" // 必需格式:2000-01-01
},
"campaign": "string", // 营销活动代码(您可以指定 application、messages_ids 或 message_codes)
"application": "string", // 应用程序代码(您可以指定 campaign、messages_ids 或 message_codes)
"messages_ids": [], // 消息 ID(您可以指定 application、campaign 或 message_codes)
"messages_codes": [], // 消息代码(您可以指定 application、campaign 或 message_ids)
"link_template": "string", // 链接模板(如果指定了 application 或 campaign 则为必需)
"email_content_code": "string" // 电子邮件内容的唯一标识符。
},
"params": {
"with_full_links": true // 指定是否显示详细统计信息。一个包含统计信息的完整链接列表将在 full_links 数组中传递。
}
}'
响应代码和示例
Anchor link to
{
"items": [{
"template": "string",
"link": "string",
"title": "string",
"clicks": 0,
"full_links": [{
"full_link": "string",
"clicks": 0
}]
}]
}

linksInteractionsDevices

Anchor link to

显示点击了电子邮件中链接的用户

POST https://api.pushwoosh.com/api/v2/statistics/emails/linksInteractionsDevices

名称
是否必需
描述
Authorization是来自 Pushwoosh 控制面板的 API 访问令牌。
请求正文参数
Anchor link to
名称
是否必需
类型描述
date_range否Object定义报告期。包含 date_from 和 date_to。
filters是Object电子邮件筛选器。
application是StringPushwoosh 应用程序代码(或者,指定 campaign、messages_ids 或 message_codes)。
messages_codes是Array消息代码(或者,指定 application、campaign 或 messages_ids)。
campaign是String营销活动代码(或者,指定 application、messages_ids 或 message_codes)。
messages_ids是Array消息 ID(或者,指定 application、campaign 或 message_codes)。
link_template如果指定了 application 或 campaign,则为必需。String按关键字筛选电子邮件链接交互。只有 URL 中包含指定文本的链接才会在 API 响应中返回。例如,如果您的电子邮件包含 https://example.com/news 和 https://example.com/shop 等链接,设置 "link_template": "shop" 将仅返回 https://example.com/shop 的交互。
email_content_code否String电子邮件内容的唯一标识符。
page否Integer用于分页的页码。
per_page否Integer每页结果数(≤ 1000)。
请求示例
Anchor link to
Terminal window
curl --location --request POST 'https://api.pushwoosh.com/api/v2/statistics/emails/linksInteractionsDevices' \
--header 'Authorization: Api API_ACCESS_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"filters": {
"date_range": {
"date_from": "string", // 必需格式:2000-01-01
"date_to": "string" // 必需格式:2000-01-01
},
"campaign": "string", // 营销活动代码(您可以指定 application、messages_ids 或 message_codes)
"application": "string", // 应用程序代码(您可以指定 campaign、messages_ids 或 message_codes)
"messages_ids": [], // 消息 ID(您可以指定 application、campaign 或 message_codes)
"messages_codes": [], // 消息代码(您可以指定 application、campaign 或 message_ids)
"link_template": "string", // 链接模板(如果指定了 application 或 campaign 则为必需)
"email_content_code": "string" // 电子邮件内容的唯一标识符。
},
"per_page": 100,
"page": 0
}'
响应代码和示例
Anchor link to
{
"total": 0,
"items": [{
"timestamp": "string",
"link": "string",
"hwid": "string"
}]
}

bouncedEmails

Anchor link to

POST https://api.pushwoosh.com/api/v2/statistics/emails/bouncedEmails

提供有关电子邮件投诉、软退回和硬退回的数据,包括每次退回的日期、电子邮件地址和原因。

授权通过请求标头中的 API 访问令牌处理。

请求正文参数
Anchor link to
参数名称类型描述是否必需
applicationstringPushwoosh 应用程序代码是
message_codestring消息代码。如果未提供 date range 或 campaign,则为必需
campaignstring营销活动代码。如果未提供 message_code 或 date range,则为必需
date_fromstring数据的开始日期,格式为 YYYY-MM-DDTHH:MM:SS.000Z(ISO 8601 标准)。如果未提供 message_code 或 campaign,则为必需
date_tostring数据的结束日期,格式为 YYYY-MM-DDTHH:MM:SS.000Z(ISO 8601 标准)。如果未提供 message_code 或 campaign,则为必需
per_pageint每页行数,最多 5000。是
pageint页码,从零开始。是
typestring退回类型:Complaint、Softbounce、Hardbounce。否
请求示例
Anchor link to
{
"application": "XXXXX-XXXXX", // 必需。Pushwoosh 应用代码
"message_code": "XXXXX-XXXXXXXXX-XXXXXXXX", // 如果未提供 campaign 或日期范围,则为必需。
// 唯一消息标识符
"campaign": "XXXXX-XXXXX", // 如果未提供 message_code 或日期范围,则为必需。
// 营销活动代码
"date_from": "2024-07-20T00:00:00.000Z", // 如果未提供 message_code 或 campaign,则为必需。
// 开始日期,ISO 8601 格式 "YYYY-MM-DDTHH:MM:SS.SSSZ"
"date_to": "2024-07-20T00:00:00.000Z", // 如果未提供 message_code 或 campaign,则为必需。
// 结束日期,ISO 8601 格式 "YYYY-MM-DDTHH:MM:SS.SSSZ"
"per_page": 1000, // 必需。每页结果数,最多 5000
"page": 5, // 可选。页码,从零开始
"type": "Softbounce" // 可选。退回类型:Complaint、Softbounce、Hardbounce
}
响应字段
Anchor link to
字段名称类型描述
totalint总行数。
bounced_emailsarray退回电子邮件详情的数组。
├── emailstring退回的电子邮件地址。
├── datestring退回日期(格式:YYYY-MM-DDTHH:MM:SS.000Z)。
├── reasonstring退回原因。
└── typestring退回类型:Complaint、Softbounce、Hardbounce。
响应示例
Anchor link to
{
"total": 25, // 总行数。
"bounced_emails": [{
"email": "example@example.com", // 退回的电子邮件地址
"date": "2024-07-20T00:00:00.000Z", // 退回日期,ISO 8601 格式
"reason": "Invalid recipient address", // 退回原因
"type": "Hardbounce" // 退回类型:Complaint、Softbounce、Hardbounce
}]
}