标签是 Pushwoosh 提供的最有用的工具之一,它支持一系列复杂的功能。通过使用标签,您可以细分受众,并根据用户的属性向特定用户发送有针对性的推送通知。
标签可以包含与特定用户或设备关联的任何任意数据。这些数据可能包括用户名、ID、城市、最喜欢的足球队、偏好的新闻类别或任何其他关于用户的相关信息。
首先确定您的业务需求,并决定您希望如何细分受众。考虑年龄、位置、应用内购买历史或任何其他用于定位用户的相关标准等因素。
标签值可以帮助您使推送营销活动更加智能。每个标签能够存储_几乎无限数量的值_。基本上,这意味着一个标签就足以记录您数据库中每个最终用户的特定类型信息。
每个账户只有少数几个标签可用,但考虑到每个标签几乎无限的空间,仅用几个标签就足以收集关于您用户的大量信息,并设置非常复杂的目标定位模式。
- Integer — 用于整数数据(获得的游戏内现金数量、达到的级别、年龄)。
- String — 用于字符串值(用户名、电子邮件、标识符)。
- List — 与 String 类型相同,但每个用户可以同时设置多个值(音乐偏好、新闻类别、美食偏好)。
- Boolean — true / false 类型的标签。
- Date — 用于日历日期。基本上,这是一个整数类型的标签,存储 Unix Epoch 时间戳(自动从/转换为公历日期)。
- Price — 允许根据指定货币以“*.XX”格式设置值 了解更多。
- Version — 用于版本控制。允许的格式示例是 w.x.y.z (Major.Minor.Patch.Build)。每个版本部分的最大值为 9999,因此最大版本号不能大于 9999.9999.9999.9999。
每种标签类型都有一组特定的适用运算符。标签运算符定义了用于细分目的的标签与其值之间的关系。
- Integer 标签运算符:
is、is not、are、not in、not set、any
- String 标签运算符:
is、is not、are、not in、not set、any
- List 标签运算符:
in、not in、not set、any
- Boolean 标签运算符:
is (true/false)、not set、any
- Date 标签运算符:
exactly on、on or after、on or before、between、not set、any
- Price 标签运算符:
is、is not、greater or equals、less or equals、between、in、not in、not set、any
- Version 标签运算符:
is、is not、greater or equals、less or equals、between、in、not in、not set、any
此参数描述了标签在同一账户中与不同应用相关的行为。特定于应用的标签在同一账户的每个应用中可以有不同的值集。相反,非特定于应用的标签则为所有使用此标签的应用存储相同的值。
假设您有两个应用,一个新闻应用和一个游戏应用,并且您只想定位那些明确同意接收您推送的用户。因此,您创建了一个名为“Subscribed”的布尔标签,并为希望接收您推送的用户设置 "true" 值,为不希望被通知的用户设置 "false" 值。
您的一个用户 Anna 安装了您的两个应用。她可以接受收到一些突发新闻的通知,但选择不接收来自游戏应用的任何推送。
如果“Subscribed”标签是特定于应用的,那么一切都会按计划进行。但是,如果此标签是非特定于应用的,那么您的每个应用都会覆盖另一个应用设置的值,这可能会破坏您的目标定位并导致用户不满。
另一方面,如果您想执行跨应用目标定位并追踪在不同应用中使用相同用户名的用户,非特定于应用的标签可能会派上用场。
Pushwoosh 中的所有标签在设计上都是用户特定的,当通过 UserID 而不是 HWID 设置时,会分配给该用户的所有设备。
"application": "XXXXX-XXXXX", // Pushwoosh 应用代码
"UserSpecificStringTag": "string value",
"UserSpecificIntegerTag": 42
这些标签是 Pushwoosh 开箱即用的,因此您不必(实际上也不应该)手动设置它们。它们中的大多数是从应用中设置,并通过 registerDevice 和其他 API 调用发送到我们的服务器,还有一些是由服务器本身设置的。
| 名称 | 类型 | 设置位置 | 描述 |
|---|
| Application Version | Version | SDK | 设备上安装的应用的当前版本 |
| Browser Type | String | SDK | 当设备为您的 Web 项目注册时,其类型——移动设备或桌面设备——会自动被跟踪 |
| City | String | 服务器 | 设备最新注册的地理位置 |
| Country | String | 服务器 | 设备最新注册的地理位置 |
| Device Model | String | SDK | 指示安装应用的设备型号 |
| First Install | Date | 服务器 | 指示设备首次注册通知的时间 |
| In-App Product | List | SDK | 应用用户购买的应用内产品 |
| Last In-App Purchase Date | Date | SDK | 设备上最近一次应用内购买的日期 |
| Language | String | SDK | 根据 ISO-639-1 标准的设备区域设置的双字母小写缩写;取自设备设置 |
| Last Application Open | Date | 服务器 | 设备上最近一次应用启动的时间 |
| OS Version | Version | SDK | 设备上运行的操作系统的版本 |
| Platform | String | SDK | 用户使用您项目的平台。 |
| Push Alerts Enabled | Boolean | SDK | 指示设备设置中是否允许推送提醒 |
| SDK Version | Version | SDK | 设备上实现的 Pushwoosh SDK 的版本 |
| Unsubscribed Emails | Boolean | SDK | 指示用户是否已退订接收来自您应用的电子邮件 |
在这里,您可以发挥创造力以实现您的特定业务目标。可以根据适合您独特业务需求的细分逻辑或目标定位模式创建自定义标签。与您的营销团队合作,定义您的营销活动所需的其他自定义标签。
您可以在 Pushwoosh 控制面板中添加新标签,或使用 /addTag 方法。
POST https://api.pushwoosh.com/json/1.3/addTag
在您的账户中创建一个标签。
| 名称 | 类型 | 描述 |
|---|
| auth* | string | 来自 Pushwoosh 控制面板的 API 访问令牌。 |
| tag* | object | 标签参数。 |
| tag.name* | string | 标签名称。 |
| tag.type* | integer | 标签类型。请参阅下面的可能值。 |
| tag.application_specific | boolean | 定义标签值对于多个应用是应该不同还是应该跨多个应用相同。 |
"auth": "yxoPUlwqm…………pIyEX4H", // 必需,来自 Pushwoosh 控制面板的 API 访问令牌
"name": "TAG_NAME", // 必需
"type": 1, // 必需,请参阅下面的可能值
"application_specific": true, // 或 'false',可选。定义标签值对于多个应用是应该不同还是应该跨多个应用相同
"user_specific": true // 或 'false',可选,用于 application_specific 标签
可能的标签值类型:
- 1 - Integer
- 2 - String
- 3 - List
- 4 - Date
- 5 - Boolean
- 6 - Decimal. 例如:19.95
- 7 - Version. 例如:“1.0.0.0”
添加并配置标签后,它就可以开始从您的用户那里收集信息了。请按照以下步骤实施它:
- 按照相关的集成指南,将 Pushwoosh SDK 集成到您的项目中。
- 使用
setTags 函数分配标签并收集用户数据。
以下是使用 setTags 函数针对不同框架的实现示例。
iOS Native
@"Alias" : aliasField.text,
@"FavNumber" : @([favNumField.text intValue]),
@"price" : [PWTags incrementalTagWithInteger:5],
@"List" : @[ @"Item1", @"Item2", @"Item3" ]
[[PushNotificationManager pushManager] setTags:tags];
文档
Android Native
pushwoosh.setTags(Tags.intTag("intTag", 42));
文档
Cordova
PushNotification.prototype.setTags = function( config, success, fail )
文档
Flutter
Future<void> setTags(Map tags) async {
await _channel.invokeMethod("setTags", {"tags" : tags});
文档
React Native
pushNotification.setTags({
"string_tag" : "Hello world",
"list_tag":["hello", "world"]
文档
Unity
为设备设置一个 Integer 标签。
public virtual void SetIntTag(string tagName, int tagValue)
为设备设置一个 String 标签。
public virtual void SetStringTag(string tagName, string tagValue)
为设备设置一个 List 标签。
public virtual void SetListTag(string tagName, List<object> tagValues)
文档
Unreal Engine
FPushwooshModule& pushwoosh = FPushwooshModule::Get();
pushwoosh.SetTags("{ \"intTag\" : 1, \"stringTag\" : \"example\", \"listTag\" : [ \"a\", \"b\", \"c\" ] }");
文档
Expo
Pushwoosh.setTags({ "key": keyValue, "value": inputValue });
文档
.NET MAUI
@"Alias" : aliasField.text,
@"FavNumber" : @([favNumField.text intValue]),
@"price" : [PWTags incrementalTagWithInteger:5],
@"List" : @[ @"Item1", @"Item2", @"Item3" ]
[[PushNotificationManager pushManager] setTags:tags];
文档
Outsystems
输入参数
Tags – 包含 TagName 和 TagValue 的标签记录列表。
TagName 必须始终为 Text 类型。
TagValue 可以是 Text、Integer、Boolean、Date 等。
了解更多
虽然在大多数情况下(99%),标签是从应用中设置的,但您也可以通过 Pushwoosh API 设置标签。以下是向 /setTags 端点发出的典型请求示例:
POST https://api.pushwoosh.com/json/1.3/setTags
"application": "XXXXX-XXXXX", // 必需,Pushwoosh 应用代码
"hwid": "8f65bXXXf378eXXXbeceXXX4e153XXX2", // 必需,在 /registerDevice API 中使用的硬件设备 ID
"StringTag": "string value", // 字符串标签示例
"IntegerTag": 42, // 整数标签示例
"ListTag": ["string1", "string2"], // 列表标签示例
"DateTag": "2024-10-02 22:11", // 注意:时间必须为 UTC
"BooleanTag": true // 有效值:true, false
有关更多详细信息,请参阅 setTags API 文档
设备的位置是根据其最后一次启动您应用时的 IP 地址确定的。GeoIP 将位置数据提交给 Pushwoosh,Pushwoosh 将从 GeoIP 收到的位置保存为特定设备的 City 标签值。
在某些情况下,GeoIP 提交的位置与城市名称不同——例如,当它指的是城市的某个区域或其他行政单位时。在使用默认的 City 标签进行细分时请务必小心:确保选择正确的值。
例如,如果您要定位来自慕尼黑的用户,您必须用一系列 City 标签值来覆盖它,包括“Munich”本身(以及所有相应的值,例如 GeoIP 可能返回并保存为标签值的不同拼写变体)和几个附近的地区。