标签是 Pushwoosh 提供的最有用的工具之一,它支持一系列复杂的功能。通过使用标签,您可以细分受众,并根据用户的属性向特定用户发送有针对性的推送通知。
标签可以包含与特定用户或设备关联的任何任意数据。这些数据可能包括用户名、ID、城市、最喜欢的足球队、首选新闻类别或任何其他关于用户的相关信息。
首先确定您的业务需求,并决定如何细分受众。考虑年龄、位置、应用内购买历史或任何其他用于定位用户的相关标准等因素。
标签值可以帮助您使推送活动更加智能。每个标签能够存储_几乎无限数量的值_。基本上,这意味着一个标签就足以记录数据库中每个最终用户的特定类型信息。
每个账户只有少数几个标签可用,但考虑到每个标签近乎无限的空间,仅用几个标签就足以收集关于您用户的大量信息,并设置非常复杂的目标定位模式。
整数 (Integer) — 用于整数数据(例如,获得的游戏内现金数量、达到的级别、年龄)。
字符串 (String) — 用于字符串值(例如,用户名、电子邮件、标识符)。
列表 (List) — 与字符串类型相同,但每个用户可以同时设置多个值(例如,音乐偏好、新闻类别、美食偏好)。
布尔 (Boolean) — true / false 类型的标签。
日期 (Date) — 用于日历日期。基本上,这是一个整数类型的标签,存储 Unix Epoch 时间戳(自动从/转换为公历日期)。
价格 (Price) — 允许根据指定的货币以“*.XX”格式设置值 了解更多 。
版本 (Version) — 用于版本控制。允许的格式示例为 w.x.y.z (Major.Minor.Patch.Build)。每个版本部分的最大值为 9999,因此最大版本号不能大于 9999.9999.9999.9999。
每种标签类型都有一组特定的运算符 适用。标签运算符为细分目的定义了标签与其值之间的关系。
整数标签运算符:is、is not、are、not in、not set、any
字符串标签运算符:is、is not、are、not in、not set、any
列表标签运算符:in、not in、not set、any
布尔标签运算符:is (true/false)、not set、any
日期标签运算符:exactly on、on or after、on or before、between、not set、any
价格标签运算符:is、is not、greater or equals、less or equals、between、in、not in、not set、any
版本标签运算符: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 application code
" 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 Server 设备最近注册的地理位置 Country String Server 设备最近注册的地理位置 Device Model String SDK 指示应用安装的设备型号 First Install Date Server 指示设备首次注册接收通知的时间 In-App Product List SDK 应用用户购买的应用内产品 Last In-App Purchase Date Date SDK 设备上最近一次应用内购买的日期 Language String SDK 根据 ISO-639-1 标准的设备区域设置的双字母小写缩写;取自设备设置 Last Application Open Date Server 设备上最近一次应用启动的时间 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 " , // required, API access token from Pushwoosh Control Panel
" name " : " TAG_NAME " , // required
" type " : 1 , // required, see possible values below
" application_specific " : true , // or 'false', optional. Defines whether the tag value should be different for multiple apps or be the same across multiple apps
" user_specific " : true // or 'false', optional, used for application_specific tags
可能的标签值类型:
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 " , // required, Pushwoosh application code
"hwid" : " 8f65bXXXf378eXXXbeceXXX4e153XXX2 " , // required, hardware device ID used in /registerDevice API
"StringTag" : " string value " , // Example of a string tag
"IntegerTag" : 42 , // Example of an integer tag
"ListTag" : [ " string1 " , " string2 " ], // Example of a list tag
"DateTag" : " 2024-10-02 22:11 " , // Note: time must be in UTC
"BooleanTag" : true // Valid values: true, false
有关更多详细信息,请参阅 setTags API 文档
设备的位置是根据其最后一次启动您应用时的 IP 地址确定的。GeoIP 将位置数据提交给 Pushwoosh,Pushwoosh 将从 GeoIP 收到的位置保存为特定设备的 City 标签值。
在某些情况下,GeoIP 提交的位置与城市名称不同——例如,当它指的是城市的某个区域或其他行政单位时。在使用默认的 City 标签进行细分时请务必小心:确保选择正确的值。
例如,如果您打算定位来自慕尼黑的用户,您需要用一系列 City 标签值来覆盖它,包括“Munich”本身(以及所有相应的值,例如 GeoIP 可能返回并保存为标签值的不同拼写变体)和几个附近的区域。