Передача данных в платформу
Когда пользователь дает разрешение на получение уведомлений, платформа автоматически создаёт для него профиль в платформе. Помимо создания профиля также возможна передача других дополнительных данных. В данной статье мы расскажем, как настроить скрипт для сбора информации о пользователе и его действиях.
Импорт профилей клиентов при подписке на Web Push-уведомления
Когда пользователь подпишется на Web Push-уведомления, в Базы данных и в Ресурс, в котором был сгенерирован Toolkit, размещенный на сайте, будет добавлен новый профиль.
Если один из профилей базы данных ранее уже открывал вашу email-рассылку с браузера, на котором сейчас подписывается на push, то подписка будет добавлена ему. Новый профиль в этом случае не создаётся.
Когда подписчик кликает на push-уведомление (переход по ссылке), платформа Altcraft собирает данные о профиле:
- страна, регион, часовой пояс, город, почтовый индекс и IP адрес, с которого произошла подписка на push;
- браузер и операционная система подписчика.
В случае устаревания токена или повторной подписки пользователя на push, платформа автоматически обновит его подписку и выдаст новый токен. Таким образом в базе данных не будут создаваться дубликаты профилей.
Мобильные браузеры также поддерживают Service worker и Web push-уведомления.
Передача данных клиента при импорте профиля через push-канал
В момент регистрации подписки на push-уведомления в профиль нового пользователя можно записать любые данные, известные на момент подписки. Например, имя или фамилия клиента, дата рождения, информация о просмотренных страницах и другая бизнес-информация. При этом можно проверить, нет ли среди существующих подписчиков клиента с такими же данными.
Пример с поиском по email в ресурсе и добавлением имени и фамилии пользователя:
const akPush = new AKPush();
akPush.initSubscription(
{
email: 'example@email.com'
}, // Поиск профиля по email. Также будет записано в профиль, если совпадений не найдётся.
{
_fname: 'Anatoly',
_lname: 'Wasserman'
} // запись в профиль подписчика имени и фамилии
)
Если к ресурсу привязано несколько баз данных, вы можете задать идентификатор той базы, в которую необходимо импортировать профиль. Пример с поиском по email в базе данных с id=1
:
const akPush = new AKPush();
akPush.initSubscription(
{
db: 1
email: 'example@email.com'
}, // Поиск профиля по email. Также будет записано в профиль, если совпадений не найдётся.
{
_fname: 'Anatoly',
_lname: 'Wasserman'
} // запись в профиль подписчика имени и фамилии
)
Пример с поиском по email в базах данных с id=15
и id=20
:
const akPush = new AKPush();
akPush.initSubscription(
{
db: [15,20]
email: 'example@email.com'
}, // Поиск профиля по email. Также будет записано в профиль, если совпадений не найдётся.
{
_fname: 'Anatoly',
_lname: 'Wasserman'
} // запись в профиль подписчика имени и фамилии
)
Список полей профиля приведён в этой статье.
Обновление данных профиля и приостановка подписок
akPush.updateSubscription вернет ошибку, если перед этим не был получен актуальный токен через akPush.initSubscription, или он был удален из кеша с помощью akPush.removeToken.
Пользователь, подписавшийся в браузере на пуши, может менять свое состояние. Например, авторизоваться в личном кабинете и получить другой матчинг. При этом текущую пуш подписку необходимо отключить на предыдущем профиле и включить на новом. Для этих целей необходимо использовать метод akPush.updateSubscription
:
const akPush = new AKPush();
akPush.updateSubscription(
{
db: [15,20]
email: 'example@email.com'
},
{
_fname: 'Anatoly',
_lname: 'Wasserman'
}, // запись в профиль подписчика имени и фамилии
false // флаг для inexclusive, определяет, нужно ли приостанавливать все подписки на ресурс с текущим токеном браузера у остальных профилей (по умолчанию)
)
События создания и обновления Web Push-подписки
Пользователи платформы могут подписаться на события создания и обновления (изменения токена подписчика) push-подписки. При наступлении такого события данные о подписке можно отправить на сторонний сервер с помощью дополнительного кода.
Чтобы подписаться на события, добавьте следующий код на страницы сайта:
AKPush.events.on('subscribe', (data) => { // подписка на событие subscribe
console.log(data);
});
AKPush.events.on('update_subscription', (data) => { // подписка на событие update_subscription
console.log(data);
});
Данный код выведет в консоль токен подписчика, а также информацию о браузере и push-провайдере.