跳到内容

High-speed delivery 设置

在 Pushwoosh 中,受众细分是通过 Segments 定义的。

对于标准推送活动,Segment 是在发送 /createMessage 请求之后编译的。这意味着在消息发出之前可能会有短暂的延迟,特别是当 Segment 很复杂时。

使用 High-speed delivery,Segments 每 10 分钟预编译一次。这使得它们保持最新并随时可用,因此可以立即发送消息——无需等待 Segment 编译。

High-speed delivery 在时间至关重要时特别有用。例如,像 UEFA 和 FIBA 这样的体育组织可以使用它来发送每一秒都很重要的实时更新。

本指南以体育应用为例,说明如何设置 High-speed delivery。您将学习如何创建受众 Segment,以通知用户即将到来的比赛和现场事件。

为什么要使用 High-speed delivery

Anchor link to

体育组织使用 High-speed delivery 的先决条件如下:

  • 所有比赛都已提前安排好,因此您知道何时创建相应的 Segments,并可以预编译受众 Segments。
  • 每场比赛都关联一个唯一的 ID。例如,冠军联赛决赛的比赛 ID 是 0123。
  • 每个球队都关联一个唯一的 ID。例如,尤文图斯 ID 是 111,皇家马德里 ID 是 222 等。
  • 有一组您希望通知用户的现场事件(进球、阵容、开球等)。

所有用于 High-speed delivery 的 Segments 应提前创建——在示例用例中,最好在比赛开始前创建。Pushwoosh 将 Segment 条件应用于应用的用户群,并每 10 分钟预编译一次 Segments(此间隔可调整)。

当您发送包含推送内容和 Segment 名称的 /createMessage API 请求时,Pushwoosh 已经拥有预编译的接收者列表,允许立即发送推送通知。

创建 Tags

Anchor link to

首先,创建一组要应用的 Tags,并设置用户设备的 Tag 值。 创建 Tags(LIST 类型),对应现场比赛事件,如 kickoff(开球)、goal(进球)、red card(红牌) 等。

例如: MATCH-KICKOFF, MATCH-GOAL, MATCH-RED_CARD 创建 Tags

创建描述球队现场比赛事件的同一组 Tags。 例如: TEAM-KICKOFF, TEAM-GOAL, TEAM-RED_CARD

通过订阅这些 Tags,应用用户可以选择他们希望接收的通知:

  • 关于特定比赛的通知(例如,尤文图斯 - 皇家马德里比赛);
  • 关于喜爱球队比赛的通知(例如,仅尤文图斯比赛);
  • 关于比赛期间发生的事件的通知(例如,仅尤文图斯 - 皇家马德里比赛中的进球);
  • 关于喜爱球队特定事件的通知(例如,尤文图斯比赛的进球和阵容)。

设置 Tags

Anchor link to

现在,您可以通过 setTags API 请求填充先前指定的 Tag 值,并订阅用户到特定类别的推送通知。

例如: 当用户订阅接收冠军联赛决赛开球和进球更新时,调用包含比赛 ID 的 /setTags

{
"request": {
"application": "app_code",
"hwid": "device_hardware_id",
"tags": {
"MATCH_KICKOFF": "0123", // match ID
"MATCH_GOAL": "0123" // match ID
}
}
}

用户将收到关于冠军联赛决赛开球和进球的通知。 当用户订阅接收皇家马德里比赛的进球和红牌更新时,按如下方式调用 /setTags

{
"request": {
"application": "app_code",
"hwid": "device_hardware_id",
"tags": {
"TEAM_KICKOFF": "222", // team ID
"TEAM_GOAL": "222" // team ID
}
}
}

只要皇家马德里在比赛,该用户就会收到关于开球和进球的通知。

创建 Segments

Anchor link to

现在,您可以根据 Tags 及其值(比赛 ID 和球队 ID)为比赛事件创建 Segments。Segments 应在比赛开始前 30 分钟通过 /createFilter API 请求创建。

要通知用户上述示例中冠军联赛决赛的进球,请使用以下参数调用 /createFilterSegment 名称:0123_GOAL Segment 条件#TEAM-GOAL(111, 222) OR #MATCH-GOAL(0123)

{
"request": {
"auth": "auth_token",
"name": "0123_GOAL",
"conditions": [
["TEAM-GOAL", "IN", ["111", "222"]],
["MATCH-GOAL", "IN", ["0123"]]
],
"operator": "OR", // optional. Operator values: 'AND', 'OR'
"application" : "AAAAA-00000"
}
}

此请求将编译订阅了冠军联赛决赛(比赛 ID=0123)进球更新的用户 Segment,或者关注尤文图斯或皇家马德里(球队 ID=111, 222)的用户 Segment。

要在 Pushwoosh 控制面板中设置 High-Speed Delivery,请创建一个新 Segment,使用相应的 Tag 值,并将其关联到您要发送推送的应用。特定于应用的 Segments 每 10 分钟预编译一次,以保持受众 Segments 始终更新。

创建一个新 Segment

当比赛事件发生时(进球、比赛开球、红牌等),调用包含推送通知内容和 Segment 名称的 /createMessage

{
"request": {
"application": "AAAAA_00000",
"auth": "auth_token",
"notifications": [
{
"content": "12’ Juventus goal! Juventus 1 – 0 Real Madrid",
"filter": "0123_GOAL",
"send_date": "now"
}
]
}
}

一旦我们收到 /createMessage 调用,我们就已经拥有符合 Segment 标准的预编译设备列表,并立即向 APNs 和 FCM 网关发送通知。

删除 Segments

Anchor link to

比赛结束后,应删除所有相应的 Segments,以免计算资源浪费在重新编译不再相关的 Segments 上,特别是以牺牲接下来安排的比赛的 Segments 为代价。通过 /deleteFilter API 请求删除 Segments,例如:

{
"request": {
"auth": "auth_token",
"name": "0123_GOAL"
}
}

为避免手动删除 Segments,请通过 /createFilter 请求设置 Segment 过期日期,以便 Segment 在指定日期自动删除:

{
"request": {
"auth": "auth_token",
"name": "0123_GOAL",
"conditions": [
["TEAM-GOAL", "IN", ["111", "222"]],
["MATCH-GOAL", "IN", ["0123"]]
],
"operator": "OR", // optional. Values: 'AND', 'OR'
"application": "AAAAA-00000",
"expiration_date": "YYYY-MM-DD" // optional. Segment (Filter) expiry
}
}
Was this page useful?