Управление согласием пользователя
Pushwoosh поддерживает соблюдение правил конфиденциальности (например, GDPR, CCPA), позволяя разработчикам контролировать, когда SDK начинает обмен данными с серверами Pushwoosh. Это позволяет гарантировать, что данные не собираются до тех пор, пока пользователь не даст явное согласие.
Обзор
Anchor link toПо умолчанию SDK Pushwoosh начинает обмен данными и сбор данных устройства сразу после инициализации. Однако вы можете изменить это поведение, чтобы обмен данными не происходил до тех пор, пока пользователь не даст согласие.
При такой настройке:
-
Если пользователь дает согласие, SDK инициализируется и начинает сбор данных.
-
Если пользователь не дает согласие, SDK остается неактивным и не собирает никаких данных.
-
Если пользователь впоследствии отзывает согласие, SDK прекращает всю активность и отключается от серверов.
Pushwoosh предоставляет механизмы для управления этим процессом в iOS, Android и Unity.
Отключение обмена данными SDK с сервером при запуске
Anchor link toПо умолчанию обмен данными с SDK включен. Чтобы отключить весь обмен данными с серверами Pushwoosh до тех пор, пока пользователь явно не предоставит согласие, добавьте следующий ключ в ваш Info.plist:
<key>Pushwoosh_ALLOW_SERVER_COMMUNICATION</key><false/>Проверка статуса обмена данными
Anchor link toИспользуйте следующие методы, чтобы определить, разрешен ли в настоящее время обмен данными:
import SwiftUIimport PushwooshFramework
var serverCommunicationAllowed = PWCoreServerCommunicationManager.sharedInstance.isServerCommunicationAllowedprint("isServerCommunicationAllowed: ", serverCommunicationAllowed)import PushwooshFramework
var serverCommunicationAllowed = PWCoreServerCommunicationManager.sharedInstance.isServerCommunicationAllowedprint("isServerCommunicationAllowed: ", serverCommunicationAllowed)#import <PushwooshFramework/PushwooshFramework.h>
BOOL serverCommunicationAllowed = [PWCoreServerCommunicationManager sharedInstance].isServerCommunicationAllowed;NSLog(@"isServerCommunicationAllowed: %d", serverCommunicationAllowed);Включение обмена данными SDK после получения согласия
Anchor link toПосле того как пользователь дал согласие, включите обмен данными следующим образом:
import SwiftUIimport PushwooshFramework
Pushwoosh.sharedInstance().startServerCommunication()import PushwooshFramework
Pushwoosh.sharedInstance().startServerCommunication()#import <PushwooshFramework/PushwooshFramework.h>
[[Pushwoosh sharedInstance] startServerCommunication];Регистрация для push-уведомлений
Anchor link toПосле включения обмена данными явно зарегистрируйтесь для push-уведомлений:
import SwiftUIimport PushwooshFramework
Pushwoosh.sharedInstance().registerForPushNotifications()import PushwooshFramework
Pushwoosh.sharedInstance().registerForPushNotifications()#import <PushwooshFramework/PushwooshFramework.h>
[[Pushwoosh sharedInstance] registerForPushNotifications];Отключение обмена данными
Anchor link toЧтобы остановить обмен данными с серверами Pushwoosh (например, если пользователь отзывает согласие):
import SwiftUIimport PushwooshFramework
Pushwoosh.sharedInstance().stopServerCommunication()import PushwooshFramework
Pushwoosh.sharedInstance().stopServerCommunication()#import <PushwooshFramework/PushwooshFramework.h>
[[Pushwoosh sharedInstance] stopServerCommunication];Android
Anchor link toОтключение обмена данными SDK с сервером при запуске
Anchor link toПо умолчанию обмен данными включен. Чтобы предотвратить отправку каких-либо данных на серверы Pushwoosh до получения согласия пользователя, добавьте следующее в ваш AndroidManifest.xml:
<meta-data android:name="com.pushwoosh.allow_server_communication" android:value="false" />Проверка статуса обмена данными
Anchor link toИспользуйте следующие методы, чтобы определить, разрешен ли в настоящее время обмен данными с сервером:
import com.pushwoosh.Pushwoosh;
boolean isCommunicationEnabled = Pushwoosh.getInstance().isServerCommunicationAllowed();Log.d("Pushwoosh", "Communication enabled = " + isCommunicationEnabled);import com.pushwoosh.Pushwoosh
val isCommunicationEnabled = Pushwoosh.getInstance().isServerCommunicationAllowed()Log.d("Pushwoosh", "Communication enabled = $isCommunicationEnabled")Включение обмена данными SDK после получения согласия
Anchor link toПосле того как пользователь дал согласие, включите обмен данными следующим образом:
import com.pushwoosh.Pushwoosh;
Pushwoosh.getInstance().startServerCommunication();import com.pushwoosh.Pushwoosh
Pushwoosh.getInstance().startServerCommunication()Регистрация для push-уведомлений
Anchor link toПосле включения обмена данными явно зарегистрируйтесь для push-уведомлений:
import com.pushwoosh.Pushwoosh;
Pushwoosh.getInstance().registerForPushNotifications();import com.pushwoosh.Pushwoosh
Pushwoosh.getInstance().registerForPushNotifications()Отключение обмена данными
Anchor link toЧтобы остановить обмен данными с серверами Pushwoosh (например, если пользователь отзывает согласие):
import com.pushwoosh.Pushwoosh;
Pushwoosh.getInstance().stopServerCommunication();import com.pushwoosh.Pushwoosh
Pushwoosh.getInstance().stopServerCommunication()Unity
Anchor link toОтключение обмена данными SDK с сервером при запуске
Anchor link toПо умолчанию обмен данными с SDK включен. Чтобы отключить весь обмен данными с серверами Pushwoosh до тех пор, пока пользователь явно не предоставит согласие, примените настройки для конкретной платформы:
Android
Добавьте следующее в ваш проект Unity в AndroidManifest.xml:
<meta-data android:name="com.pushwoosh.allow_server_communication" android:value="false" />iOS
Измените Info.plist:
<key>Pushwoosh_ALLOW_SERVER_COMMUNICATION</key><false/>Примечание: Вы должны включить обмен данными перед вызовом RegisterForPushNotifications.
Проверка статуса обмена данными
Anchor link toИспользуйте следующий метод, чтобы проверить, разрешен ли в настоящее время обмен данными с сервером:
bool enabled = Pushwoosh.Instance.IsCommunicationEnabled();Включение обмена данными SDK после получения согласия
Anchor link toЧтобы включить обмен данными после получения согласия:
Pushwoosh.Instance.SetCommunicationEnabled(true);Регистрация для push-уведомлений
Anchor link toПосле включения обмена данными вы можете зарегистрировать устройство для push-уведомлений:
Pushwoosh.Instance.RegisterForPushNotifications();Отключение обмена данными
Anchor link toЧтобы остановить обмен данными с серверами Pushwoosh (например, если пользователь отзывает согласие):
Pushwoosh.Instance.SetCommunicationEnabled(false);Web Push
Anchor link toОтключение автоматической подписки при запуске
Anchor link toПо умолчанию SDK Pushwoosh показывает нативное окно запроса подписки сразу после инициализации. Чтобы предотвратить автоматическое отображение окна запроса подписки при инициализации, установите параметр communicationEnabled в false при вызове init.
<script type="text/javascript" src="//cdn.pushwoosh.com/webpush/v3/pushwoosh-web-notifications.js" async></script><script type="text/javascript"> var Pushwoosh = Pushwoosh || []; Pushwoosh.push(['init', { // other initialization parameters... communicationEnabled: false, // Disable communication to prevent automatic subscription prompts }]);</script>Включение подписки после получения согласия
Anchor link toПосле отключения автоматической подписки вы можете предложить пользователю подписаться в любое время. Когда пользователь соглашается получать push-уведомления (например, нажав кнопку «Подписаться» в вашем пользовательском интерфейсе), вы можете включить обмен данными, вызвав метод setCommunicationEnabled. Вызов Pushwoosh.setCommunicationEnabled(true) включает обмен данными со службами Pushwoosh. После включения SDK продолжит показывать нативное окно запроса разрешения браузера.
Pushwoosh.setCommunicationEnabled(true) .then(() => { console.log('User is subscribed to push notifications.'); }) .catch((error) => { console.error('Error subscribing user:', error); });Отключение обмена данными
Anchor link toЧтобы остановить обмен данными со службами Pushwoosh (например, если пользователь отзывает согласие), вызовите setCommunicationEnabled со значением false.
Pushwoosh.setCommunicationEnabled(false);