标签是 Pushwoosh 提供的最实用的工具之一,可实现一系列复杂的功能。通过使用标签,您可以细分受众,并根据用户的属性向特定用户发送有针对性的推送通知。
标签可以包含与特定用户或设备关联的任何任意数据。这些数据可能包括用户名、ID、城市、最喜欢的足球队、偏好的新闻类别或任何其他关于用户的相关信息。
首先,确定您的业务需求,并决定您希望如何细分受众。考虑年龄、地理位置、应用内购买历史或任何其他用于定位用户的相关标准等因素。
标签值可以帮助您使推送营销活动更加智能。每个标签能够存储_几乎无限数量的值_。基本上,这意味着一个标签就足以记录数据库中每个最终用户的特定类型信息。
每个账户只有少数几个标签可用,但考虑到每个标签近乎无限的存储空间,仅需几个标签就足以收集关于您用户的大量信息,并设置非常复杂的目标定位模式。
- Integer(整数)— 用于整数数据(例如,获得的游戏内现金数量、达到的级别、年龄)。
- String(字符串)— 用于字符串值(例如,用户名、电子邮件、标识符)。
- List(列表)— 与字符串类型相同,但每个用户可以同时设置多个值(例如,音乐偏好、新闻类别、美食偏好)。
- Boolean(布尔值)— true / false 类型的标签。
- Date(日期)— 用于日历日期。基本上,这是一个整数类型的标签,存储 Unix Epoch 时间戳(自动从格里高利日期转换或转换成格里高利日期)。
- Price(价格)— 允许根据指定的货币以 “*.XX” 格式设置值 了解更多。
- Version(版本)— 用于版本控制。允许的格式示例为 w.x.y.z(主版本号.次版本号.补丁号.构建号)。每个版本部分的最大值为 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 应用代码
"userId": "the id of a specific user",
"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
为设备设置一个整数标签。
public virtual void SetIntTag(string tagName, int tagValue)
为设备设置一个字符串标签。
public virtual void SetStringTag(string tagName, string tagValue)
为设备设置一个列表标签。
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 可能返回并保存为标签值的不同拼写变体)和几个附近的区域。