OneSignal has updated from a device-centric model (Player ID) to a user-centric model (OneSignal ID). For migration guidance, refer to the User Model Migration Guide.For documentation on legacy device-centric implementations, see Version 9.

Overview

This document maps the methods, properties, and events from OneSignal’s legacy Player Model Web SDK to the newer User Model SDK. Each section includes matching TypeScript code examples, clearly demonstrating how to update your integration. All examples are simplified for demonstration purposes. For complete and up-to-date implementations, refer to the documentation links provided under each method or event.

OneSignal Service Worker

Update the import in your OneSignalSDKWorker.js file: Player Model:
importScripts('https://cdn.onesignal.com/sdks/OneSignalSDKWorker.js');
User Model:
importScripts("https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.sw.js");
Keep the file path the same. Just update the importScripts URL. See OneSignal Service Worker for more information.

Initialization

init()

Player Model: Docs
<script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async></script>
<script>
window.OneSignal = window.OneSignal || [];
OneSignal.push(function() {
  OneSignal.init({
    appId: "YOUR_APP_ID"
  });
});
</script>
User Model: Docs
<script src="https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.page.js" defer></script>
<script>
window.OneSignalDeferred = window.OneSignalDeferred || [];
OneSignalDeferred.push(async function(OneSignal) {
  await OneSignal.init({
    appId: "YOUR_APP_ID",
  });
});
</script>

provideUserConsent()

Player Model: Docs
OneSignal.provideUserConsent(true)
User Model: Docs
OneSignal.setConsentGiven(true)

Registering for push

showNativePrompt()

Player Model:
OneSignal.showNativePrompt()
User Model: Docs
OneSignal.Notifications.requestPermission()

registerForPushNotifications() — Dropped in User Model

OneSignal.registerForPushNotifications()

#permissionPromptDisplay

Player Model:
OneSignal.on('permissionPromptDisplay', () => ...)
User Model: Docs
OneSignal.Notifications.addEventListener('permissionPromptDisplay', event => { ... })

showSlidedownPrompt()

Player Model:
OneSignal.showSlidedownPrompt()
User Model: Docs
OneSignal.Slidedown.promptPush()

showHttpPrompt() — Dropped in User Model

OneSignal.showHttpPrompt()

showCategorySlidedown()

Player Model:
OneSignal.showCategorySlidedown()
User Model: Docs
OneSignal.Slidedown.promptPushCategories()

#getNotificationPermission

Player Model:
OneSignal.on('getNotificationPermission', (permission) => ...)
User Model: Docs
OneSignal.User.PushSubscription.addEventListener('change', ({ optedIn }) => { ... })

isPushNotificationsSupported()

Player Model:
OneSignal.isPushNotificationsSupported()
User Model: Docs
OneSignal.Notifications.isPushSupported()

isPushNotificationsEnabled()

Player Model:
await OneSignal.isPushNotificationsEnabled()
User Model: Docs
OneSignal.User.PushSubscription.optedIn

#subscriptionChange

Player Model:
OneSignal.on('subscriptionChange', (subscribed) => ...)
User Model:
OneSignal.User.PushSubscription.addEventListener('change', ({ token }) => { ... })

Analytics

#notificationPermissionChange

Player Model:
OneSignal.on('notificationPermissionChange', ({ to }) => ...)
User Model: Docs
OneSignal.Notifications.addEventListener('permissionChange', permission => { ... })

#popoverShown

Player Model:
OneSignal.on('popoverShown', () => ...)
User Model: Docs
OneSignal.Slidedown.addEventListener('slidedownShown', presented => { ... })

#customPromptClick

Player Model:
OneSignal.on('customPromptClick', ({ result }) => ...)
User Model: Docs
OneSignal.Notifications.addEventListener('click', ({notification, result}) => { ... })

User IDs

getUserId()

Player Model:
OneSignal.getUserId()
User Model: Docs
OneSignal.User.PushSubscription.id;

setExternalUserId()

Player Model: Docs
OneSignal.setExternalUserId("external id")
User Model: Docs
OneSignal.login("external id")

removeExternalUserId()

Player Model:
OneSignal.removeExternalUserId()
User Model: Docs
OneSignal.logout()

getExternalUserId()

Player Model:
await OneSignal.getExternalUserId()
User Model: Docs
OneSignal.User.externalId

Tags

sendTag()

Player Model:
OneSignal.sendTag("key", "value")
User Model:
OneSignal.User.addTag("key", "value")
User Model doc

sendTags()

Player Model:
OneSignal.sendTags({ key1: 'value1', key2: 'value2' })
User Model:
OneSignal.User.addTags({ key1: 'value1', key2: 'value2' })

getTags()

Player Model:
await OneSignal.getTags()
User Model:
OneSignal.User.getTags()

deleteTag()

Player Model:
OneSignal.deleteTag("key")
User Model:
OneSignal.User.removeTag("key")

deleteTags()

Player Model:
OneSignal.deleteTags(["key1", "key2"])
User Model:
OneSignal.User.removeTags(["key1", "key2"])

Push Notifications

sendSelfNotification() — Dropped in User Model

OneSignal.sendSelfNotification('title', 'message', 'url') 

setSubscription()

Player Model:
OneSignal.setSubscription(false)
User Model:
OneSignal.Notifications.permission = false

Receiving Notifications

#notificationDisplay

Player Model:
OneSignal.on('notificationDisplay', (event) => { ... })
User Model:
OneSignal.Notifications.addEventListener('foregroundWillDisplay', ({ notification }) => { ... })

#notificationDismiss

Player Model:
OneSignal.on('notificationDismiss', (event) => { ... })
User Model:
OneSignal.Notifications.addEventListener('dismiss', ({ notification }) => { ... })

#addListenerForNotificationOpened

Player Model:
OneSignal.on('addListenerForNotificationOpened', (event) => { ... })
User Model:
// TODO: Not yet implemented in User Model

Email

setEmail()

User Model doc Player Model:
OneSignal.setEmail('email@example.com')
User Model:
OneSignal.User.addEmail('email@example.com')

logoutEmail()

Player Model:
OneSignal.logoutEmail()
User Model:
OneSignal.User.removeEmail('email@example.com')

getEmailId() — Dropped in User Model

SMS

setSMSNumber()

Player Model:
OneSignal.setSMSNumber('+11234567890')
User Model:
OneSignal.User.addSms('+11234567890')

logoutSMSNumber()

Player Model:
OneSignal.logoutSMS()
User Model:
OneSignal.User.removeSms('+11234567890')