Язык сегментации
Wavesend предлагает мощный механизм сегментации для создания детализированных сегментов на основе значений Tag. Язык сегментации — это особый способ написания и комбинирования критериев сегментации для описания определенной группы пользователей, которые соответствуют этим критериям, и рассмотрения их как единого сегмента аудитории.
В этой статье описаны основные концепции и синтаксис языка сегментации, а также приведены подробные примеры построения критериев сегментации для различных случаев.
Основы
Section titled “Основы”Каждое устройство в вашей пользовательской базе имеет определенные атрибуты, связанные с ним через значения Tag.
Например, предположим, что пользовательница по имени Джейн живет в Токио, и ее возраст — 28 лет. Для ее устройства будут установлены следующие Tag:
- Name: Jane
- City: Tokyo
- Age: 28
Чтобы нацелиться на Джейн, вам нужно будет описать Segment следующим образом:
T("Name", eq, "Jane") * T("Age", eq, 28) * T("City", eq, "Tokyo")
Эта комбинация условий является фильтрующим выражением, используемым в языке сегментации для описания групп пользователей, то есть сегментов аудитории.
Фильтрующие выражения
Section titled “Фильтрующие выражения”Фильтрующее выражение — это строка, содержащая условие или комбинацию условий, описывающих нужный вам Segment.
Условия
Section titled “Условия”Каждое условие описывает Segment устройств, которые соответствуют указанным в этом условии критериям.
Например, следующее условие создает Segment пользователей, которые живут в Токио:
T("City", e, "Tokyo")
где
- T — это
Tag(тип условия); - eq — это применяемый оператор;
- “Tokyo” — это значение
Tag, связанное с устройствами пользователей.
Типы условий
Section titled “Типы условий”Существует четыре типа условий, которые вы можете использовать для сегментации:
- A (Application) – описывает
Segmentустройств с установленным определенным приложением; - T (
Tag) – описываетSegmentустройств с указанными значениямиTag; - AT (App-specific tag) – применяется в сочетании с кодами приложений для
Tag, специфичных для приложения; - Event – описывает
Segmentустройств, вызвавших определенное событие Wavesend;
Операции с условиями
Section titled “Операции с условиями”Для создания сложных сегментов к условиям в фильтрующем выражении можно применять следующие операции:
Объединение (+)
Section titled “Объединение (+)”Объединяет сегменты, то есть создает новый Segment пользователей, которые соответствуют хотя бы одному из указанных условий.

Например, чтобы нацелиться на пользователей, которые живут в Токио или Осаке, вам нужно описать Segment следующими условиями:
T("City", eq, "Tokyo") + T("City", eq, "Osaka")
Пересечение (*)
Section titled “Пересечение (*)”Создает Segment пользователей, принадлежащих обоим сегментам, описанным условиями. Таким образом, будут включены только те пользователи, которые соответствуют каждому указанному вами условию.

Следующее выражение описывает Segment пользователей, которые одновременно живут в Токио и указали свои имена:
T("City", eq, "Tokyo") * T("Name", any)
Разность (\)
Section titled “Разность (\)”Создает Segment пользователей, которые принадлежат к одному из описанных сегментов и не принадлежат к другому.

Пользователи, которые живут в Токио, но не указали свои имена, будут описаны следующим образом:
T("City", eq, "Tokyo") \ T("Name", any)
Скобки
Section titled “Скобки”Определяют порядок выполнения операций с условиями в вашем фильтрующем выражении.
Например, следующее фильтрующее выражение сначала получит Segment подписчиков приложения 12345-67890, чей возраст равен 18, а затем вычтет из этого сегмента всех мужчин:
( A("12345-67890") * T("Age", eq, 18) ) \ T("Gender", eq, "Male")
Операторы условий для Tag
Section titled “Операторы условий для Tag”Для каждого типа Tag применяются свои операторы.
Операторы для Integer Tag
Section titled “Операторы для Integer Tag”- eq - равно указанному значению
- noteq - не равно указанному значению
- lte - меньше или равно указанному значению
- gte - больше или равно указанному значению
- in - любое из указанных значений
- notin - не равно ни одному из указанных значений
- between - в указанном диапазоне
- any - устройства с любыми значениями, установленными для
Tag - notset - устройства без установленного значения для
Tag
Операторы для String Tag
Section titled “Операторы для String Tag”- eq - равно указанному значению
- noteq - не равно указанному значению
- in - равно любому из указанных значений
- notin - не равно ни одному из указанных значений
- any - устройства с любыми значениями, установленными для
Tag - notset - устройства без установленного значения для
Tag
Операторы для List Tag
Section titled “Операторы для List Tag”- in - устройства с любым из указанных значений
Tag - notin - ни одно из указанных значений
Tagне связано с устройством - any - устройства с любыми значениями, установленными для
Tag - notset - устройства без установленного значения для
Tag
Операторы для Date Tag
Section titled “Операторы для Date Tag”- eq - равно указанной дате
- noteq - не равно указанной дате
- lte - до или в указанную дату
- gte - после или в указанную дату
- in - равно любой из указанных дат
- notin - не равно ни одной из указанных дат
- between - в указанном диапазоне
- any - устройства с любыми значениями, установленными для
Tag - notset - устройства без установленного значения для
Tag - match - соответствует указанному месяцу года и дню месяца.
- daysago eq - равно указанному количеству дней до текущего дня
- daysago noteq - не равно указанному количеству дней до текущего дня
- daysago lte - меньше или равно указанному количеству дней до текущего дня
- daysago gte - больше или равно указанному количеству дней до текущего дня
- daysago between - между указанным количеством дней
Операторы для Boolean Tag
Section titled “Операторы для Boolean Tag”- eq - равно указанному значению
- noteq - не равно указанному значению
- any - устройства с любыми значениями, установленными для
Tag - notset - устройства без установленного значения для
Tag
Операторы для Price Tag
Section titled “Операторы для Price Tag”- eq - равно указанному значению
- noteq - не равно указанному значению
- lte - меньше или равно указанному значению
- gte - больше или равно указанному значению
- in - равно любому из указанных значений
- notin - не равно ни одному из указанных значений
- between - в указанном диапазоне
- any - устройства с любыми значениями, установленными для
Tag - notset - устройства без установленного значения для
Tag
Операторы для Version Tag
Section titled “Операторы для Version Tag”- eq - равно указанному значению
- noteq - не равно указанному значению
- lte - меньше или равно указанному значению
- gte - больше или равно указанному значению
- in - равно любому из указанных значений
- notin - не равно ни одному из указанных значений
- between - в указанном диапазоне
- any - устройства с любыми значениями, установленными для
Tag - notset - устройства без установленного значения для
Tag
Операторы условий для “Event”
Section titled “Операторы условий для “Event””Количество Event
Section titled “Количество Event”- count gte - устройства, вызвавшие
Eventбольше или ровно n раз - count lte - устройства, вызвавшие
Eventменьше или ровно n раз - count eq - устройства, вызвавшие
Eventровно n раз - count noteq - устройства, вызвавшие
Eventлюбое количество раз, кроме n
Дата Event
Section titled “Дата Event”- date gte - устройства, вызвавшие
Eventпозже или ровно в указанную дату - date lte - устройства, вызвавшие
Eventраньше или ровно в указанную дату - date eq - устройства, вызвавшие
Eventровно в указанную дату - date noteq - устройства, вызвавшие
Eventв любое время, но не в указанную дату - date in - устройства, вызвавшие
Eventв любую из указанных дат - date notin - устройства, вызвавшие
Eventв любое время, но не в одну из указанных дат - date between - устройства, вызвавшие
Eventв указанный период - date daysago eq - дата вызова
Eventравна указанному количеству дней до текущего дня - date daysago noteq - дата вызова
Eventне равна указанному количеству дней до текущего дня - date daysago lte - дата вызова
Eventменьше или равна указанному количеству дней до текущего дня - date daysago gte - дата вызова
Eventбольше или равна указанному количеству дней до текущего дня - date daysago between - дата вызова
Eventнаходится между указанным количеством дней
Пример фильтрующего выражения
Section titled “Пример фильтрующего выражения”- Устройства на iOS и Android с установленным приложением и с
Push Token:
A("11111-11111", ["ios","android"], [with_tokens])- Устройства на iOS и Android с установленным приложением, но без
Push Token:
A("11111-11111", ["ios","android"], [without_tokens])- Устройства на iOS и Android с установленным приложением, независимо от наличия
Push Token:
A("11111-11111", ["ios","android"], [with_tokens, without_tokens])- Все подписчики приложения, которые что-либо купили в приложении:
AT( "11111-11111", "In-App Purchase", gte, 1)