OneSignal push-уведомление расширенный таргетинг

Я использую onesignal для обработки уведомлений pish для моего веб-и ионного приложения. Мой вопрос

можно ли настроить пользовательские сегменты с помощью api rest сервера ?

Я хочу дать моим пользователям возможность подписаться на определенные события (каналы), чтобы ограничить push-уведомления, которые они получают.

пример

user1 subscribed to group I'd (1,3,8)
user2  groups(5,8,11)
User3 groups(12,13)

когда событие произошло в группах 8.

Как я могу отправлять push-уведомления всем пользователям, подписанным на группу 8 ? - в моем примере выше уведомление должно быть отправлено user1 & user2, но не 3.

2 ответов


OneSignal в настоящее время не поддерживает динамическое создание сегментов через API, однако есть лучший способ сделать то, что вам нужно.

С помощью функции теги можно назначать пользовательские данные пользователям, а затем доставлять уведомления пользователям, соответствующим определенным тегам. Теги обычно устанавливаются путем вызова метода SetTags в приложении, но они также могут быть установлены через API OneSignal.

в вашем случае, например, вы бы назначили следующие теги каждый пользователь:

User1 Tags: group1=true,group3=true,group8=true
User2 Tags: group5=true,group8=true,group3=true
User3 Tags: group12=true,group13=true

далее, через API OneSignal, вы можете использовать поле "теги" только для доставки уведомлений пользователям, которые соответствуют одному или нескольким тегам.

вы также можете создать сегмент для каждого тега на панели мониторинга, затем через API или через панель мониторинга вы можете указать, какие сегменты (и, следовательно, теги) должны получать ваше уведомление.


проблема с подходом, описанным @Gdeglin, заключается в том, что вам нужно будет управлять информацией о вашей группе как на вашем сервере, так и на OneSignal. Когда у вас есть 2 источника истины для чего-то сложного и динамичного, как группы, вы обязательно столкнетесь с проблемами.

например, что произойдет, если группа 8 удаляется? В дополнение к обновлению собственной базы данных необходимо использовать API для обновления всех пользователей OneSignal, входящих в группу 8. Представьте, что группа содержит 1000 пользователи. Фу.

вместо добавления тегов groupname добавьте тег "userId" к каждому пользователю (игроку), зарегистрированному в OneSignal. Теперь, когда группа меняет нечего обновлять с OneSignal.

компромисс заключается в том, что для отправки сообщения всем в группе требуется N вызовов API для OneSignal вместо одного. Похоже, что можно предоставить несколько совпадений тегов в одном вызове API, но неясно, насколько хорошо это масштабируется.