OneSignal SDK integration example
Initializing
Loading SDK...
Link this browser to a user ID for cross-device messaging
- - Request permission and subscribe to notifications
- Key-value pairs for user segmentation
Notifications received while on this page
-
-
No notifications yet. Send one from the OneSignal dashboard.
Simulate user behavior to see how tags drive targeted notifications
Browse Products
Cart Actions
Customer Type
Current User Profile
Matching Segments
// Initialize SDK - call once on page load
await OneSignal.init({
appId: "your-app-id",
safari_web_id: "web.onesignal.auto.xxx",
allowLocalhostAsSecureOrigin: true, // dev only
}); // Link browser to your user ID (cross-device)
await OneSignal.login("user_123");
// Get current IDs
OneSignal.User.onesignalId; // device UUID
OneSignal.User.externalId; // your user ID
// Clear identity (anonymous mode)
await OneSignal.logout(); // Request permission & subscribe
await OneSignal.Notifications.requestPermission();
// Check subscription state
OneSignal.Notifications.permission; // true/false
OneSignal.User.PushSubscription.optedIn; // true/false
OneSignal.User.PushSubscription.token; // push token
// Unsubscribe (opt out)
await OneSignal.User.PushSubscription.optOut();
// Re-subscribe (opt in)
await OneSignal.User.PushSubscription.optIn(); // Add single tag
OneSignal.User.addTag("plan", "premium");
// Add multiple tags
OneSignal.User.addTags({
plan: "premium",
interests: "tech,music"
});
// Get all tags (returns object)
const tags = OneSignal.User.getTags();
// Remove tag
OneSignal.User.removeTag("plan");
OneSignal.User.removeTags(["plan", "interests"]); // Notification received while on page
OneSignal.Notifications.addEventListener(
'foregroundWillDisplay',
(event) => {
console.log(event.notification.title);
// event.preventDefault(); // suppress system notification
}
);
// Notification clicked
OneSignal.Notifications.addEventListener(
'click',
(event) => {
console.log('Clicked:', event.notification);
}
);
// Subscription state changed
OneSignal.User.PushSubscription.addEventListener(
'change',
(event) => {
console.log('Opted in:', event.current.optedIn);
}
);