태그는 Pushwoosh가 제공하는 가장 유용한 도구 중 하나로, 다양한 정교한 기능을 가능하게 합니다. 태그를 사용하면 잠재고객을 세분화하고 속성에 따라 특정 사용자에게 타겟 푸시 알림을 보낼 수 있습니다.
태그는 특정 사용자 또는 기기와 관련된 임의의 데이터를 포함할 수 있습니다. 이 데이터에는 사용자 이름, ID, 도시, 좋아하는 축구팀, 선호하는 뉴스 카테고리 또는 사용자에 대한 기타 관련 정보가 포함될 수 있습니다.
먼저 비즈니스 요구 사항을 파악하고 잠재고객을 어떻게 세분화할지 결정하는 것부터 시작하세요. 연령, 위치, 인앱 구매 내역 또는 사용자를 타겟팅하기 위한 기타 관련 기준과 같은 요소를 고려하세요.
태그 값은 푸시 캠페인을 더 스마트하게 만드는 데 도움이 될 수 있습니다. 각 태그는 _거의 무한한 수의 값_을 저장할 수 있습니다. 기본적으로 이는 하나의 태그만으로도 데이터베이스에 있는 각 최종 사용자에 대한 특정 유형의 정보를 기록하기에 충분하다는 것을 의미합니다.
각 계정에는 몇 개의 태그만 사용할 수 있지만, 각 태그에 대한 거의 무한한 공간을 고려할 때, 단 몇 개의 태그만으로도 사용자에 대한 엄청난 양의 정보를 수집하고 매우 복잡한 타겟팅 패턴을 설정하기에 충분합니다.
Integer — 정수 데이터(게임 내 획득한 현금, 달성 레벨, 나이)에 사용됩니다.
String — 문자열 값(사용자 이름, 이메일, 식별자)에 사용됩니다.
List — String 타입과 동일하지만, 각 사용자는 동시에 여러 값을 설정할 수 있습니다(음악 선호도, 뉴스 카테고리, 요리 선호도).
Boolean — true / false 유형의 태그입니다.
Date — 달력 날짜에 사용됩니다. 기본적으로 이것은 유닉스 에포크 타임스탬프를 저장하는 정수 유형 태그입니다(그레고리력 날짜에서/로 자동 변환됨).
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
태그를 생성할 때 값이 저장되는 방식을 선택합니다:
일반 (기본값, user_specific: false): 태그 값은 기기(HWID)별로 저장됩니다. 동일한 사용자의 각 기기는 독립적으로 다른 값을 가질 수 있습니다.
사용자별 (user_specific: true): 태그 값은 사용자(UserID)별로 저장됩니다. UserID를 통해 설정하면 해당 값은 사용자의 모든 기기에 한 번에 적용됩니다. 구독 등급, 로열티 포인트, 선호 언어와 같이 특정 기기가 아닌 개인에게 속하는 속성에 유용합니다.
한 사용자가 앱의 iOS 및 Android 버전을 모두 설치했습니다. subscription_tier 태그를 UserID를 통해 "premium"으로 설정하면 두 기기에 즉시 적용됩니다. 일반 태그를 사용하면 기기별로 별도로 설정해야 합니다.
" application " : " XXXXX-XXXXX " ,
" userId " : " the id of a specific user " ,
" subscription_tier " : " premium " ,
이러한 태그는 Pushwoosh에서 기본적으로 제공되므로 수동으로 설정할 필요가 없습니다(사실, 설정해서는 안 됩니다). 대부분은 애플리케이션에서 설정되어 registerDevice 및 기타 API 호출을 통해 서버로 전송되며, 일부는 서버 자체에서 설정됩니다.
이름 유형 설정 위치 설명 Application Version Version SDK 기기에 설치된 앱의 현재 버전 Browser Type String SDK 웹 프로젝트에 기기가 등록되면 모바일 또는 데스크톱 유형이 자동으로 추적됩니다 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 Control Panel 에서 새 태그를 추가하거나 /addTag 메서드를 사용할 수 있습니다.
POST https://api.pushwoosh.com/json/1.3/addTag
계정에 태그를 생성합니다.
이름 유형 설명 auth* string Pushwoosh Control Panel의 API 액세스 토큰입니다. tag* object 태그 매개변수입니다. tag.name* string 태그 이름입니다. tag.type* integer 태그 유형입니다. 아래에서 가능한 값을 참조하세요. tag.user_specific boolean true인 경우, 태그 값은 사용자 수준에 저장되며 UserID로 설정 시 사용자의 모든 기기에서 공유됩니다. false(기본값)인 경우, 태그는 기기 수준이며 HWID별로 설정됩니다.
" auth " : " yxoPUlwqm…………pIyEX4H " , // 필수, Pushwoosh Control Panel의 API 액세스 토큰
" name " : " TAG_NAME " , // 필수
" type " : 1 , // 필수, 아래 가능한 값 참조
" user_specific " : false // 선택. true = 사용자 수준; false = 기기 수준 (기본값)
가능한 태그 값 유형:
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 태그를 사용할 때는 주의하세요: 올바른 값을 선택해야 합니다.
예를 들어, 뮌헨의 사용자를 타겟팅하려는 경우, “Munich” 자체(GeoIP에 의해 반환되고 태그 값으로 저장될 수 있는 다양한 철자 변형과 같은 모든 해당 값을 포함)와 여러 인근 지역을 포함하는 여러 City 태그 값으로 이를 커버해야 합니다.