세분화 언어
Pushwoosh는 태그 값을 기반으로 세분화된 세그먼트를 구축하기 위한 강력한 세분화 엔진을 제공합니다. 세분화 언어는 특정 기준에 맞는 사용자 그룹을 설명하고 이들을 단일 오디언스 세그먼트로 취급하기 위해 세분화 기준을 작성하고 결합하는 특정 방법입니다.
이 문서는 세분화 언어의 기본 개념과 구문을 설명하고, 다양한 사례에 대한 세분화 기준을 구축하는 포괄적인 예제를 제공합니다.
기본 사항
Anchor link to사용자 기반의 각 기기에는 태그 값을 통해 특정 속성이 연결되어 있습니다.
예를 들어, 도쿄에 사는 28세의 제인이라는 사용자가 있다고 가정해 보겠습니다. 해당 사용자의 기기에는 다음과 같은 태그가 설정됩니다:
- Name: Jane
- City: Tokyo
- Age: 28
제인을 타겟팅하려면 다음과 같이 세그먼트를 설명해야 합니다:
T("Name", eq, "Jane") * T("Age", eq, 28) * T("City", eq, "Tokyo")
이 조건들의 조합은 오디언스 세그먼트라고도 하는 사용자 그룹을 설명하기 위해 세분화 언어에서 사용되는 필터 표현식입니다.
필터 표현식
Anchor link to필터 표현식은 필요한 세그먼트를 설명하는 조건 또는 조건의 조합을 포함하는 문자열입니다.
각 조건은 해당 조건에 지정된 기준과 일치하는 기기 세그먼트를 설명합니다.
예를 들어, 다음 조건은 도쿄에 거주하는 사용자 세그먼트를 구축합니다:
T("City", e, "Tokyo")
여기서
- T는 태그(조건 유형)입니다.
- eq는 적용할 연산자입니다.
- “Tokyo”는 사용자의 기기와 연결된 태그 값입니다.
조건 유형
Anchor link to세분화를 위해 다음과 같은 조건 유형을 사용할 수 있습니다:
- A (Application) – 특정 앱이 설치된 기기 세그먼트를 설명합니다. 별칭: App, Application;
- T (Tag) – 지정된 태그 값을 가진 기기 세그먼트를 설명합니다.
- AT (App-specific tag) – 앱별 태그에 대해 앱 코드와 함께 적용됩니다. 별칭: Tag;
- Event – 특정 Pushwoosh 이벤트를 트리거한 기기 세그먼트를 설명합니다.
- Geo – 특정 지리적 반경 내에 있는 기기 세그먼트를 설명합니다.
- BTTS – 최적 발송 시간을 기반으로 한 기기 세그먼트를 설명합니다.
- Updated – 마지막 업데이트 타임스탬프를 기반으로 한 기기 세그먼트를 설명합니다.
- Segment – 코드로 다른 필터/세그먼트를 참조합니다.
- Static (또는 S) – 미리 정의된 정적 세그먼트를 참조합니다.
조건 연산
Anchor link to정교한 세그먼트를 구축하기 위해 필터 표현식 내의 조건에 다음 연산을 적용할 수 있습니다:
합집합 (+)
Anchor link to세그먼트를 결합합니다. 즉, 지정된 조건 중 하나 이상을 충족하는 사용자들의 새로운 세그먼트를 구축합니다.

예를 들어, 도쿄나 오사카에 거주하는 사용자를 타겟팅하려면 다음 조건으로 세그먼트를 설명해야 합니다:
T("City", eq, "Tokyo") + T("City", eq, "Osaka")
교집합 (*)
Anchor link to조건에 의해 설명된 두 세그먼트에 모두 속하는 사용자 세그먼트를 구성합니다. 따라서 지정한 각 조건을 모두 준수하는 사용자만 포함됩니다.

다음 표현식은 도쿄에 거주하면서 이름을 지정한 사용자 세그먼트를 설명합니다:
T("City", eq, "Tokyo") * T("Name", any)
차집합 (\)
Anchor link to설명된 세그먼트 중 하나에 속하고 다른 하나에는 속하지 않는 사용자 세그먼트를 구축합니다.

도쿄에 거주하지만 이름을 알려주지 않은 사용자는 다음과 같이 설명됩니다:
T("City", eq, "Tokyo") \ T("Name", any)
필터 표현식에서 조건으로 수행할 연산의 순서를 결정합니다.
예를 들어, 다음 필터 표현식은 먼저 나이가 18세인 12345-67890 구독자 세그먼트를 얻은 다음, 해당 세그먼트의 모든 남성을 뺍니다:
( A("12345-67890") * T("Age", eq, 18) ) \ T("Gender", eq, "Male")
태그 조건 연산자
Anchor link to각 태그 유형에 대해 고유한 연산자가 적용됩니다.
정수 태그 연산자
Anchor link to- eq - 지정된 값과 같음
- noteq - 지정된 값과 다름
- lte - 지정된 값보다 작거나 같음
- gte - 지정된 값보다 크거나 같음
- in - 지정된 값 중 하나
- notin - 지정된 값 중 어느 것과도 다름
- between - 지정된 범위 내
- any - 태그에 어떤 값이든 설정된 기기
- notset - 태그에 값이 설정되지 않은 기기
문자열 태그 연산자
Anchor link to- eq - 지정된 값과 같음
- noteq - 지정된 값과 다름
- startswith - 지정된 접두사로 시작
- endswith - 지정된 접미사로 끝남
- contains - 지정된 하위 문자열을 포함
- in - 지정된 값 중 하나와 같음
- notin - 지정된 값 중 어느 것과도 다름
- any - 태그에 어떤 값이든 설정된 기기
- notset - 태그에 값이 설정되지 않은 기기
목록 태그 연산자
Anchor link to- in - 지정된 태그 값 중 하나를 가진 기기
- notin - 기기와 연결된 지정된 태그 값이 없음
- any - 태그에 어떤 값이든 설정된 기기
- notset - 태그에 값이 설정되지 않은 기기
날짜 태그 연산자
Anchor link to- eq - 지정된 날짜와 같음
- noteq - 지정된 날짜와 다름
- lte - 지정된 날짜 이전 또는 당일
- gte - 지정된 날짜 이후 또는 당일
- in - 지정된 날짜 중 하나와 같음
- notin - 지정된 날짜 중 어느 것과도 다름
- between - 지정된 범위 내
- any - 태그에 어떤 값이든 설정된 기기
- notset - 태그에 값이 설정되지 않은 기기
- match - 지정된 연도의 월과 월의 일과 일치.
- daysago eq - 현재 날짜로부터 지정된 일수 전과 같음
- daysago noteq - 현재 날짜로부터 지정된 일수 전과 다름
- daysago lte - 현재 날짜로부터 지정된 일수 전 또는 그보다 작거나 같음
- daysago gte - 현재 날짜로부터 지정된 일수 전 또는 그보다 크거나 같음
- daysago between - 지정된 일수 사이
- minutesago lte - 현재 시각으로부터 지정된 분 수 이전 또는 그보다 작거나 같음
- minutesago gte - 현재 시각으로부터 지정된 분 수 이전 또는 그보다 크거나 같음
불리언 태그 연산자
Anchor link to- eq - 지정된 값과 같음
- noteq - 지정된 값과 다름
- any - 태그에 어떤 값이든 설정된 기기
- notset - 태그에 값이 설정되지 않은 기기
가격 태그 연산자
Anchor link to- eq - 지정된 값과 같음
- noteq - 지정된 값과 다름
- lte - 지정된 값보다 작거나 같음
- gte - 지정된 값보다 크거나 같음
- in - 지정된 값 중 하나와 같음
- notin - 지정된 값 중 어느 것과도 다름
- between - 지정된 범위 내
- any - 태그에 어떤 값이든 설정된 기기
- notset - 태그에 값이 설정되지 않은 기기
버전 태그 연산자
Anchor link to- eq - 지정된 값과 같음
- noteq - 지정된 값과 다름
- lte - 지정된 값보다 작거나 같음
- gte - 지정된 값보다 크거나 같음
- in - 지정된 값 중 하나와 같음
- notin - 지정된 값 중 어느 것과도 다름
- between - 지정된 범위 내
- any - 태그에 어떤 값이든 설정된 기기
- notset - 태그에 값이 설정되지 않은 기기
이벤트 조건 연산자
Anchor link to이벤트 횟수
Anchor link to- count gte - 이벤트를 n번 이상 또는 정확히 n번 트리거한 기기
- count lte - 이벤트를 n번 이하 또는 정확히 n번 트리거한 기기
- count eq - 이벤트를 정확히 n번 트리거한 기기
- count noteq - 이벤트를 n번이 아닌 횟수로 트리거한 기기
이벤트 날짜
Anchor link to- date gte - 지정된 날짜 이후 또는 정확히 그 날짜에 이벤트를 트리거한 기기
- date lte - 지정된 날짜 이전 또는 정확히 그 날짜에 이벤트를 트리거한 기기
- date eq - 지정된 날짜에 정확히 이벤트를 트리거한 기기
- date noteq - 지정된 날짜가 아닌 다른 날에 이벤트를 트리거한 기기
- date in - 지정된 날짜 중 하나에 이벤트를 트리거한 기기
- date notin - 지정된 날짜가 아닌 다른 날에 이벤트를 트리거한 기기
- date between - 지정된 기간 내에 이벤트를 트리거한 기기
- date daysago eq - 이벤트 트리거 날짜가 현재 날짜로부터 지정된 일수 전과 같음
- date daysago noteq - 이벤트 트리거 날짜가 현재 날짜로부터 지정된 일수 전과 다름
- date daysago lte - 이벤트 트리거 날짜가 현재 날짜로부터 지정된 일수 전 또는 그보다 작거나 같음
- date daysago gte - 이벤트 트리거 날짜가 현재 날짜로부터 지정된 일수 전 또는 그보다 크거나 같음
- date daysago between - 이벤트 트리거 날짜가 지정된 일수 사이임
- date minutesago lte - 이벤트 트리거 날짜가 현재 시각으로부터 지정된 분 수 이전 또는 그보다 작거나 같음
- date minutesago gte - 이벤트 트리거 날짜가 현재 시각으로부터 지정된 분 수 이전 또는 그보다 크거나 같음
이벤트 플랫폼
Anchor link to이벤트가 트리거된 플랫폼으로 이벤트를 필터링합니다.
- platforms - 플랫폼 목록 (예: [“ios”, “android”])
이벤트 속성
Anchor link to이벤트 조건은 이벤트 속성 값을 기반으로 필터링할 수 있습니다. 속성은 해당 연산자와 함께 다양한 데이터 유형을 지원합니다.
정수 이벤트 속성
Anchor link to- attribute “name” eq - 속성이 지정된 값과 같음
- attribute “name” noteq - 속성이 지정된 값과 다름
- attribute “name” gte - 속성이 지정된 값보다 크거나 같음
- attribute “name” lte - 속성이 지정된 값보다 작거나 같음
- attribute “name” between - 속성이 지정된 범위 내에 있음
- attribute “name” in - 속성이 지정된 값 중 하나와 같음
- attribute “name” notin - 속성이 지정된 값 중 어느 것과도 다름
- attribute “name” any - 속성에 어떤 값이든 설정됨
- attribute “name” notset - 속성에 값이 설정되지 않음
문자열 이벤트 속성
Anchor link to- attribute “name” eq - 속성이 지정된 값과 같음
- attribute “name” noteq - 속성이 지정된 값과 다름
- attribute “name” startswith - 속성이 지정된 접두사로 시작
- attribute “name” endswith - 속성이 지정된 접미사로 끝남
- attribute “name” contains - 속성이 지정된 하위 문자열을 포함
- attribute “name” in - 속성이 지정된 값 중 하나와 같음
- attribute “name” notin - 속성이 지정된 값 중 어느 것과도 다름
- attribute “name” any - 속성에 어떤 값이든 설정됨
- attribute “name” notset - 속성에 값이 설정되지 않음
불리언 이벤트 속성
Anchor link to- attribute “name” eq - 속성이 true 또는 false와 같음
- attribute “name” noteq - 속성이 true 또는 false와 다름
날짜 이벤트 속성
Anchor link to- attribute “name” eq - 속성이 지정된 날짜와 같음
- attribute “name” noteq - 속성이 지정된 날짜와 다름
- attribute “name” gte - 속성이 지정된 날짜 이후 또는 당일
- attribute “name” lte - 속성이 지정된 날짜 이전 또는 당일
- attribute “name” between - 속성이 지정된 날짜 범위 내에 있음
- attribute “name” in - 속성이 지정된 날짜 중 하나와 같음
- attribute “name” notin - 속성이 지정된 날짜 중 어느 것과도 다름
- attribute “name” daysago eq/noteq/gte/lte/between - 며칠 전과 관련된 속성
- attribute “name” minutesago gte/lte - 몇 분 전과 관련된 속성
- attribute “name” any - 속성에 어떤 값이든 설정됨
- attribute “name” notset - 속성에 값이 설정되지 않음
가격 이벤트 속성
Anchor link to- attribute “name” eq - 속성이 지정된 가격 값과 같음
- attribute “name” noteq - 속성이 지정된 가격 값과 다름
- attribute “name” gte - 속성이 지정된 가격보다 크거나 같음
- attribute “name” lte - 속성이 지정된 가격보다 작거나 같음
- attribute “name” between - 속성이 지정된 가격 범위 내에 있음
- attribute “name” in - 속성이 지정된 가격 중 하나와 같음
- attribute “name” notin - 속성이 지정된 가격 중 어느 것과도 다름
- attribute “name” any - 속성에 어떤 값이든 설정됨
- attribute “name” notset - 속성에 값이 설정되지 않음
목록 이벤트 속성
Anchor link to- attribute “name” in - 속성이 지정된 값 중 하나를 포함
- attribute “name” notin - 속성이 지정된 값 중 어느 것도 포함하지 않음
- attribute “name” any - 속성에 어떤 값이든 설정됨
- attribute “name” notset - 속성에 값이 설정되지 않음
추가 조건 유형
Anchor link toGeo 조건
Anchor link to지정된 반경 내의 지리적 위치를 기반으로 기기를 타겟팅합니다.
구문: Geo("<app-code>", <latitude>, <longitude>, <range-in-km>)
BTTS 조건
Anchor link to최적 알림 발송 시간(하루 중 시간, 0-23)으로 기기를 타겟팅합니다.
연산자:
- any - 최적 발송 시간 값이 설정된 경우
- eq - 정확한 시간 일치
- noteq - 시간과 다름
- gte - 시간보다 크거나 같음
- lte - 시간보다 작거나 같음
Updated 조건
Anchor link to마지막 업데이트 타임스탬프로 기기를 필터링합니다.
연산자:
- gte - 지정된 날짜 이후 또는 당일에 업데이트됨
- lte - 지정된 날짜 이전 또는 당일에 업데이트됨
- between - 날짜 범위 내에 업데이트됨
Segment 조건
Anchor link to코드로 다른 필터/세그먼트를 참조합니다.
Static 조건
Anchor link to미리 정의된 정적 세그먼트를 참조합니다. Static 또는 약어 S를 사용할 수 있습니다.
애플리케이션 조건 기기 존재 플래그
Anchor link to애플리케이션 조건은 기기 및 토큰 필터링을 제어하기 위한 추가 플래그를 지원합니다:
- with_tokens - 푸시 알림 토큰이 있는 기기
- without_tokens - 푸시 알림 토큰이 없는 기기
- with_devices - 등록된 기기가 있는 사용자
- without_devices - 등록된 기기가 없는 사용자/프로필
필터 표현식 예제
Anchor link to기본 예제
Anchor link to- 앱이 설치되어 있고 푸시 토큰이 있는 iOS 및 Android 기기:
A("11111-11111", ["ios","android"], [with_tokens])- 앱이 설치되어 있지만 푸시 토큰이 없는 iOS 및 Android 기기:
A("11111-11111", ["ios","android"], [without_tokens])- 푸시 토큰 유무에 관계없이 앱이 설치된 iOS 및 Android 기기:
A("11111-11111", ["ios","android"], [with_tokens, without_tokens])- 앱에서 무언가를 구매한 모든 앱 구독자:
AT("11111-11111", "In-App Purchase", gte, 1)고급 예제
Anchor link to- 최근 7일 이내에 앱을 연 도쿄 사용자:
T("City", eq, "Tokyo") * Event("11111-11111", "App Open", date daysago lte 7)- 최근 30일 이내에 50달러 이상 구매한 사용자:
Event("11111-11111", "Purchase", attribute "total_price" gte 50.00, date daysago lte 30)- 이름이 “J”로 시작하거나 “e”로 끝나는 사용자:
T("Name", startswith, "J") + T("Name", endswith, "e")- 최근에 구매하지 않은 뉴욕 100km 이내의 활성 iOS 사용자:
A("11111-11111", ["ios"], [with_tokens]) * Geo("11111-11111", 40.7128, -74.0060, 100) \ Event("11111-11111", "Purchase", date daysago lte 30)- 최적 발송 시간이 오전 9시에서 오후 5시 사이인 사용자:
BTTS("11111-11111", gte 9) * BTTS("11111-11111", lte 17)- 지난 한 시간 동안 Android 또는 iOS에서 특정 이벤트를 트리거한 사용자:
Event("11111-11111", "Button Click", platforms ["android", "ios"], date minutesago lte 60)- 지난 3개월 동안 업데이트되었고 앱 버전이 4.2 이상인 기기:
Updated("11111-11111", gte "2024-07-01 00:00:00") * AT("11111-11111", "App Version", gte, "4.2")