태그는 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
이 매개변수는 동일한 계정의 다른 앱과 관련하여 태그의 동작을 설명합니다. 애플리케이션 특정 태그는 동일한 계정의 각 앱에 대해 다른 값 집합을 가질 수 있습니다. 반면에 애플리케이션 비특정 태그는 이 태그를 사용하는 모든 앱에 대해 동일한 값을 저장합니다.
예를 들어, 뉴스 앱과 게임 앱, 두 개의 앱이 있고, 명시적으로 푸시 수신에 동의한 사용자만 타겟팅하고 싶다고 가정해 보겠습니다. 그래서 “Subscribed”라는 불리언 태그를 만들고, 푸시 수신을 원하는 사용자에게는 "true" 값을, 알림을 받고 싶지 않은 사용자에게는 "false" 값을 설정합니다.
사용자 중 한 명인 Anna 는 두 앱을 모두 설치했습니다. 그녀는 속보에 대한 알림을 받는 것은 괜찮지만, 게임 앱의 모든 푸시는 거부했습니다.
만약 “Subscribed” 태그가 애플리케이션 특정이라면, 모든 것이 계획대로 진행될 것입니다. 그러나 이 태그가 애플리케이션 비특정인 경우, 각 앱이 다른 앱에서 설정한 값을 덮어쓰게 되어 타겟팅을 망치고 불만을 유발할 수 있습니다.
반면에, 애플리케이션 비특정 태그는 교차 애플리케이션 타겟팅을 수행하고 다른 애플리케이션에서 동일한 사용자 이름을 가진 사용자를 추적하려는 경우에 유용할 수 있습니다.
Pushwoosh 의 모든 태그는 기본적으로 사용자 특정이며, HWID 대신 UserID 로 설정될 때 모든 사용자의 기기에 할당됩니다.
" 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 기기가 웹 프로젝트에 등록될 때, 모바일 또는 데스크톱 유형이 자동으로 추적됩니다 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 - 정수
2 - 문자열
3 - 리스트
4 - 날짜
5 - 불리언
6 - 십진수. 예: 19.95
7 - 버전. 예: “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 태그를 사용할 때는 주의하세요: 올바른 값을 선택해야 합니다.
예를 들어, 뮌헨의 사용자를 타겟팅하려는 경우, “Munich” 자체(GeoIP 에 의해 반환되고 태그 값으로 저장될 수 있는 다른 철자 변형과 같은 모든 해당 값을 포함)와 여러 인근 지역을 포함한 여러 City 태그 값으로 이를 포괄해야 합니다.