セットアップとデバッグ
これらのメソッドは、アプリにOneSignal SDKを統合するためのリファレンスです。プラットフォーム固有の完全なセットアップ手順については、モバイルSDKセットアップを参照してください。initialize()
OneSignal SDKを初期化します。これはアプリケーションの起動時に呼び出す必要があります。ONESIGNAL_APP_IDはキーとIDで確認できます。
OneSignal SDKの初期化を遅延させたい場合は、プライバシーメソッドの使用をお勧めします。
setLogLevel()
Android LogCatまたはXcodeログに追加のログを出力するようにログ記録を設定します。
OneSignalを初期化する前にこれを呼び出します。詳細については、デバッグログの取得を参照してください。
setAlertLevel()
アプリでアラートダイアログとして表示するログレベルを設定します。アプリストアに提出する前に、これを必ず削除してください。
ユーザーIDとプロパティ
ユーザーがアプリを開くと、OneSignalは自動的にOneSignal ID(ユーザーレベル)とサブスクリプションID(デバイスレベル)を作成します。一意のユーザー識別子を使用してlogin()を呼び出すことで、複数のサブスクリプション(デバイス、メール、電話番号など)を単一のユーザーに関連付けることができます。
login(external_id)
提供されたexternal_idにユーザーコンテキストを設定します。このexternal_idに関連付けられたすべてのサブスクリプションとプロパティが単一のonesignal_idの下に統合されることを保証します。詳細については、ユーザーを参照してください。
主な動作:
external_idが既に存在する場合、SDKはそのユーザーに切り替えます。ログイン前に収集された匿名データはマージされず、破棄されます。external_idが存在しない場合、ローカル状態は現在のonesignal_idの下に保存されます。ユーザーが匿名だった間に収集されたデータは保持されます。- SDKはネットワーク障害またはサーバーエラーで自動的に再試行します。
ユーザーがアプリを開くたびにこのメソッドを呼び出して、外部IDが設定され、サブスクリプションがユーザーにリンクされていることを確認してください。
logout()
現在のユーザーをサブスクリプションからリンク解除します。
- 現在のプッシュサブスクリプションから
external_idを削除します。 - OneSignal IDを新しい匿名ユーザーにリセットします。
- 新しいデータ(タグ、サブスクリプション、セッションデータなど)は、
loginメソッドで識別されるまで、新しい匿名ユーザーに設定されます。
サブスクリプションを新しい匿名ユーザーに設定する場合、ユーザーがアプリからサインアウトするときにこれを使用します。
getOnesignalId()
デバイスにローカルに保存されている現在のユーザーのOneSignal IDを取得します。ユーザー状態が初期化される前に呼び出された場合、nullになる可能性があります。代わりに、ユーザー状態addObserver()を使用してユーザー状態の変更をリッスンしてください。
getExternalId()
デバイスにローカルに保存されている現在のユーザーの外部IDを取得します。loginメソッドで設定されていない場合、またはユーザー状態が初期化される前に呼び出された場合、nullになる可能性があります。代わりに、ユーザー状態addObserver()を使用してユーザー状態の変更をリッスンしてください。
addObserver() ユーザー状態
ユーザーコンテキストの変更(ログイン、ログアウト、ID割り当てなど)をリッスンします。
addAlias(), addAliases(), removeAlias(), removeAliases()
エイリアスは代替識別子(ユーザー名やCRM IDなど)です。
- エイリアスを追加する前に、
login()でexternal_idを設定してください。external_idなしでサブスクリプションに追加されたエイリアスは、複数のサブスクリプション間で同期されません。 - 詳細については、エイリアスを参照してください。
setLanguage()
ユーザーの自動検出された言語を上書きします。ISO 639-1言語コードを使用してください。
カスタムイベント
カスタムイベントを介してJourneysをトリガーし、Wait Untilステップのアクティベーションを行います。カスタムイベントはまだベータ版であり、アプリからトリガーするには次のバージョンのSDKが必要です:
- iOS ネイティブSDK、
5.4.0-alpha-01から利用可能 - Android ネイティブSDK、
5.3.0-alpha-01から利用可能 - React-native SDK、
5.3.0-beta-01から利用可能 - Flutter SDK、
5.4.0-beta-01から利用可能
name- 必須。 イベントの名前を文字列として指定します。properties- オプション。 イベントに追加するキーと値のペア。propertiesディクショナリまたはマップは有効なJSONオブジェクトにシリアライズ可能である必要があります。ネストされた値をサポートします。
os_sdkの下にアプリ固有のデータをpropertiesペイロードに自動的に含めます。これは利用可能になります。たとえば、デバイスタイプ別にイベントをターゲティングするには、os_sdk.device_typeにアクセスします。
json
trackEvent()
詳細については、カスタムイベントを参照してください。
データタグ
タグは、イベントまたはユーザープロパティに基づいてユーザーに設定するカスタムkey : valueペアの文字列データです。詳細については、データタグを参照してください。
addTag(), addTags()
現在のユーザーに単一または複数のタグを設定します。
- キーが既に存在する場合、値は置き換えられます。
- プランのタグ制限を超えると、操作は静かに失敗します。
removeTag(), removeTags()
現在のユーザーから単一または複数のタグを削除します。
getTags()
ユーザーのタグのローカルコピーを返します。タグは、login()または新しいアプリセッション中にサーバーから更新されます。
プライバシー
setConsentRequired()
データ収集を開始する前にユーザーの同意を強制します。SDKを初期化する前に呼び出す必要があります。
setConsentGiven()
データ収集のためのユーザーの同意を付与または取り消します。同意がない場合、データはOneSignalに送信されず、サブスクリプションは作成されません。
setConsentRequired()がtrueの場合、setConsentGivenがtrueで呼び出されるまで、SDKは完全に有効になりません。setConsentGivenがtrueに設定されてサブスクリプションが作成され、後でfalseに設定された場合、そのサブスクリプションは更新を受信しなくなります。そのサブスクリプションの現在のデータは、setConsentGivenが再度trueに設定されるまで変更されません。- ユーザーやサブスクリプションのデータを削除したい場合は、ユーザーを削除またはサブスクリプションを削除 APIを使用してください。
位置情報
位置情報ポイントの追跡には3つのステップが必要です:- アプリに位置情報追跡の権限と依存関係を追加します。
- iOS: Choosing the Location Services Authorization to Request 開発者ガイド
- Android: Request location permissions 開発者ガイド
LocationManager.startGetLocation: not possible, no location dependency foundアプリの依存関係を確認してください。一般的な解決策は、
app/build.gradleに次を追加することです:implementation 'com.google.android.gms:play-services-location:21.0.1'
Location.setShared()メソッドを使用して、アプリがOneSignalと位置情報を共有できるようにします。Location.requestPermissionメソッドで位置情報追跡の権限をユーザーにリクエストするか、アプリ内メッセージを使用します。
setShared() 位置情報
このメソッドを使用して、SDKがサブスクリプションの緯度と経度の追跡を開始できるようにします。最初にアプリで適切な位置情報の権限を設定していることを確認してください。
requestPermission() 位置情報
このメソッドを使用して、ユーザーにシステムレベルの位置情報権限プロンプトを表示するか、代わりにアプリ内メッセージを使用します。アプリで適切な位置情報の権限を設定し、アプリがOneSignalと位置情報を共有できるようにしていることを確認してください。
サブスクリプション
詳細については、サブスクリプションを参照してください。User.pushSubscription.id
デバイスにローカルに保存されている現在のユーザーのプッシュサブスクリプションIDを取得します。早期に呼び出された場合、nullを返す可能性があります。変更に対応するために、サブスクリプションオブザーバー内でこのデータを取得することをお勧めします。
User.pushSubscription.token
現在のプッシュサブスクリプショントークンを返します。早期に呼び出された場合、nullを返す可能性があります。変更に対応するために、サブスクリプションオブザーバー内でこのデータを取得することをお勧めします。
addObserver() プッシュサブスクリプションの変更
このメソッドを使用して、次のようなプッシュサブスクリプションの変更に対応します:
- デバイスがGoogle(FCM)またはApple(APNs)から新しいプッシュトークンを受信
- OneSignalがサブスクリプションIDを割り当て
optedIn値が変更(例:optIn()またはoptOut()が呼び出された)- ユーザーがシステム設定でプッシュ権限を切り替えてからアプリを開く
onPushSubscriptionChangeイベントをトリガーします。リスナーはpreviousとcurrentの値を持つ状態オブジェクトを受け取るため、何が変更されたかを正確に検出できます。
更新のリスニングを停止するには、関連するremoveObserver()またはremoveEventListener()メソッドを呼び出します。
optOut(), optIn(), optedIn
現在のプッシュサブスクリプションのサブスクリプションステータス(subscribedまたはunsubscribed)を制御します。これらのメソッドを使用して、アプリ内のプッシュサブスクリプションステータスを制御します。一般的な使用例:1)ログアウトしたユーザーへのプッシュ送信を防ぐ。2)アプリ内に通知設定センターを実装する。
optOut():現在のプッシュサブスクリプションステータスをunsubscribedに設定します(ユーザーが有効なプッシュトークンを持っている場合でも)。optIn():次の3つのアクションのいずれかを実行します:- サブスクリプションに有効なプッシュトークンがある場合、現在のプッシュサブスクリプションステータスを
subscribedに設定します。 - サブスクリプションに有効なプッシュトークンがない場合、プッシュ権限プロンプトを表示します。
- プッシュ権限プロンプトがオペレーティングシステムの制限(iOS:1回、Android:2回)を超えて表示されている場合、フォールバックプロンプトを表示します。
- サブスクリプションに有効なプッシュトークンがある場合、現在のプッシュサブスクリプションステータスを

設定プロンプトへのフォールバック
optedIn:現在のプッシュサブスクリプションステータスがsubscribedの場合はtrueを返し、それ以外の場合はfalseを返します。プッシュトークンが有効でもoptOut()が呼び出された場合、これはfalseを返します。
addEmail(), removeEmail()
現在のユーザーにメールサブスクリプション(メールアドレス)を追加または削除します。正しいユーザーコンテキストを設定するために、login()の後にaddEmailを呼び出してください。ID検証と互換性があります。
addSms(), removeSms()
現在のユーザーにSMSサブスクリプション(電話番号)を追加または削除します。E.164形式が必要です。正しいユーザーコンテキストを設定するために、login()の後にaddSmsを呼び出してください。ID検証と互換性があります。
プッシュ権限
requestPermission(fallbackToSettings) プッシュ
ユーザーにプッシュ通知権限を求めるネイティブシステムプロンプトを表示します。オプションで、設定アプリにリンクするフォールバックプロンプトを有効にできます。
fallbackToSettings:trueの場合、ユーザーがオペレーティングシステムの制限(iOS:1回、Android:2回)を超えてプッシュ権限を拒否した場合、フォールバックプロンプトが表示されます。

権限がブロックされたときの設定へのフォールバックプロンプト
詳細については、プッシュ権限のプロンプトを参照してください。
addPermissionObserver() プッシュ
このメソッドを使用して、次のようなプッシュ権限の変更を追跡します:
- ユーザーに通知権限プロンプトが表示されます。
- ユーザーが権限プロンプトを受け入れるまたは拒否します。
- ユーザーがデバイスのアプリ設定でアプリの通知を有効または無効にしてから、アプリに戻ります。
onOSPermissionChangedイベントをトリガーします。リスナーはfromとtoの値を持つ状態オブジェクトを受け取るため、何が変更されたかを正確に検出できます。
更新のリスニングを停止するには、関連するremovePermissionObserver()メソッドを呼び出します。
getPermission(), getCanRequestPermission()
getPermission()は、アプリレベルの現在のプッシュ権限ステータスを返します。optOut()またはUsers and Subscriptions APIのenabledパラメータで変更した場合、OneSignalレベルのサブスクリプションステータスは考慮されません。getPermission()を使用する代わりに、アプリの実行中にデバイスの通知権限ステータスの変更を追跡するにはプッシュ権限オブザーバーを使用するか、プッシュサブスクリプションステータスの変更を追跡するにはプッシュサブスクリプションオブザーバーを使用することをお勧めします。
getCanRequestPermission()は、権限のリクエストを試みると、ユーザーにプロンプトが表示されるかどうかを返します。falseの場合、ユーザーは既に権限を拒否しており、フォールバックプロンプトまたはプロンプトなしのいずれかを表示できます。詳細については、プッシュ権限のプロンプトを参照してください。
permissionNative iOS
iOSデバイスのネイティブ権限の列挙型を返します。次のいずれかになります:
0= NotDetermined(未決定)1= Denied(拒否)2= Authorized(承認)3= Provisional(プロビジョナル、iOS 12+でのみ利用可能)4= Ephemeral(エフェメラル、iOS 14+でのみ利用可能)
プッシュ通知イベント
addClickListener() プッシュ
ユーザーがアプリを開くプッシュ通知をクリックしたときに実行されるコールバックを設定します。
このイベントが発生する時点で、アプリのアクティビティまたはシーンは既に起動しています。このハンドラーを使用してカスタムロジックを実行します。アプリのナビゲーションを手動で再起動または複製しないでください。
ハンドラーが不要になったらリスニングを停止するには、removeClickListener()またはremoveEventListener()を使用します。
addForegroundLifecycleListener() プッシュ
アプリがフォアグラウンドにあるときに通知がどのように動作するかをインターセプトして制御できます。
デフォルトでは、OneSignalは自動的に通知を表示します。event.preventDefault()を使用してこの動作を上書きできます:
- 通知を抑制
- カスタマイズ
- 非同期ロジックのために表示を遅延(例:ユーザー状態の取得、イベントのログ)
event.notification.display()を呼び出します。
これは、表示前にペイロードを変更する通知サービス拡張機能の後に実行されます。
removeForegroundLifecycleListener()またはremoveEventListener()を使用します。
clearAllNotifications()
通知シェードからすべてのOneSignal通知を削除します。Androidのandroid.app.NotificationManager.cancelの代わりに使用してください。そうしないと、アプリを再起動したときに通知が復元されます。
removeNotification() Android
Android通知IDに基づいて単一の通知をキャンセルします。
Androidのandroid.app.NotificationManager.cancelの代わりに使用してください。そうしないと、アプリを再起動したときに通知が復元されます。
removeGroupedNotifications() Android
提供されたグループキーを持つOneSignal通知のグループをキャンセルします。通知のグループ化はOneSignalの概念です。android.app.NotificationManagerに相当するものはありません。
アプリ内メッセージ
アプリ内メッセージにはコードは必要ありませんが、SDKを使用すると、メッセージが表示されるタイミングをカスタマイズし、ライフサイクルイベントを処理できます。addTrigger(), addTriggers()
単一または複数のトリガーに基づいて、アプリ内メッセージをいつ表示するかを決定します。詳細については、トリガーを参照してください。
トリガーはバックエンドに保存されません。ローカルデバイスにのみ存在し、現在のユーザーに適用されます。
removeTrigger(), removeTriggers(), clearTriggers()
現在のユーザーから、提供されたキーを持つ単一、複数、またはすべてのトリガーを削除します。
paused
アプリ内メッセージがユーザーに表示されないようにします。trueに設定すると、アプリ内メッセージは表示されません。falseに設定すると、ユーザーが適格なすべてのメッセージが適切なタイミングで表示されます。
addLifecycleListener()
アプリ内メッセージの表示と却下に応答または追跡します。
addClickListener() アプリ内
アプリ内メッセージのクリックイベントに応答します。イベントには、次のクリックアクションメタデータが含まれています:
actionId:要素に設定したカスタム識別子。urlTarget:メッセージの起動URLがどのように表示されるかを指定する列挙型。url:アクションの起動URL(ある場合)。closingMessage:アクションがメッセージのクローズにつながったかどうかを示すブール値。
Live Activity
アプリケーションは、ユーザーがLive Activitiesにオプトインできるようにする必要があります。たとえば、アプリはボタンを使用するかIAMを表示することで、ユーザーにLive Activityを開始するオプションを提供します。通知権限または位置情報権限とは異なり、明示的なプロンプトなしで、任意の方法でLive Activityを開始および更新できます。Live ActivitiesはiOSプロビジョナル認証UIで表示されます。Live Activitiesは、アプリケーションがフォアグラウンドにあるときに開始する必要があります。Live Activitiesの詳細については、Appleの開発者ガイドラインを読むことをお勧めします。setup()
OneSignalがアプリケーションに代わってLiveActivityのライフサイクルを管理できるようにします。これには、pushToStartトークンの更新とpushToUpdateトークンの更新の両方をリッスンすることが含まれます。
setupDefault()
クロスプラットフォームSDKがLiveActivityのライフサイクルを管理できるようにします。カスタマーアプリが独自のActivityAttributesを定義および管理する必要がなくなります。詳細については、クロスプラットフォームセットアップを参照してください。
enter()
Live Activityに入ると、activityIdがサーバー上のLive Activity 一時プッシュトークンに関連付けられます。Update Live Activities REST APIを使用して1つまたは複数のLive Activitiesを同時に更新する場合に、この識別子を指定します。
exit()
Live Activityを終了すると、サーバー上のアクティビティ識別子とLive Activityプッシュトークン間の関連付けが削除されます。
setPushToStartToken()
Live Activitiesをプッシュして開始するためのオプションの「低レベル」アプローチ。ActivityAttribute構造を変更せずに、LiveActivityの開始および更新トークンをきめ細かく制御できます。詳細はこちらで入手可能