概要
OneSignalを使用してUnityアプリのプッシュ通知を設定する
Unityアプリにプッシュ通知を統合することは、ユーザーエンゲージメントとリテンションを高める強力な方法です。OneSignalのUnity SDKは、iOS(APNS)、Android(FCM)、Amazon(ADM)、Huaweiデバイスをサポートし、最小限の労力でリアルタイムメッセージングを可能にします。 モバイルゲームやインタラクティブアプリを構築している場合でも、このガイドはOneSignalを迅速かつ確実に統合するのに役立ちます。要件
- Unity 2021.3以降
- 設定済みのOneSignalアプリとプラットフォーム
- Xcode 14+を搭載したmacOS(セットアップ手順はXcode 16.2を使用)
- iOS 12+、iPadOS 12+、またはiOS 16.2+を実行するXcodeシミュレーターを搭載したデバイス
- Google Play Store(サービス)がインストールされたAndroid 7.0+デバイスまたはエミュレーター
OneSignalアプリとプラットフォームを設定
プッシュ通知の必須セットアップ OneSignalでプッシュ通知の送信を開始するには、まずサポートするすべてのプラットフォーム(Apple(APNs)、Google(FCM)、Huawei(HMS)、Amazon(ADM))でOneSignalアプリを設定する必要があります。OneSignalアプリを設定するためのステップバイステップの手順
OneSignalアプリを設定するためのステップバイステップの手順
アプリを作成または選択
- 既存のアプリにプラットフォームを追加するには、OneSignalダッシュボードでSettings > Push & In-Appに移動します。
- 新規に開始するには、New App/Websiteをクリックしてプロンプトに従います。

新しいアプリを作成する例
プラットフォームをセットアップして有効化
- アプリと組織の明確で認識可能な名前を選択します。
- 設定するプラットフォーム(iOS、Androidなど)を選択します。
- Next: Configure Your Platformをクリックします。

最初のOneSignalアプリ、組織、チャネルをセットアップする例
プラットフォーム認証情報を設定
- Android:Firebase認証情報をセットアップ
- iOS:p8トークン(推奨)またはp12証明書
- Amazon:APIキーを生成
- Huawei:OneSignalを承認
ターゲットSDKを選択

使用しているSDKを選択してドキュメントに移動
SDKをインストールしてApp IDを保存

App IDを保存して追加のチームメンバーを招待
セットアップ
1. OneSignal Unity SDKを追加
2つのインストール方法が利用可能です:- Unity Asset Store
- Unity Package Manager
- Add to My Assets経由でSDKをアカウントに追加します。
- Open in UnityをクリックしてUnity EditorとPackage Managerを起動します。
- SDKをダウンロードしてインポートします。

My AssetsのOneSignal Unity SDK
- すべてのファイルをインポートするプロンプトを受け入れます。
- Window > OneSignal SDK Setupに移動し、特にImport OneSignal packagesのチェックリストに従います。
- インポート後、Unityはレジストリを更新します。セットアップウィンドウに表示される残りのセットアップ手順を完了します。

OneSignal SDKセットアップウィンドウ
2. プラットフォームのセットアップ
アプリがサポートするすべてのプラットフォームを追加します。iOSセットアップ
SDKは必要なXcode設定を自動的に構成します。プロビジョニングアプローチを選択してください:- 自動署名(推奨)
- 手動プロビジョニング
- File > Build Settings > Player Settingsに移動します。
- Other Settingsの下で、Automatically Signをチェックします。

Unityで自動署名を有効にする
Androidセットアップ
- Edit > Project Settings > Player > Androidに移動します。
- Publishing Settingsの下で、以下を有効にします:
- Custom Main Gradle Template
- Custom Gradle Properties Template
- Assets > External Dependency Manager > Android Resolver > Force Resolveを実行します。
- Target API Levelは33+である必要があります(v5.0.6+)。
- Minifyが有効になっている場合は、OneSignal SDK SetupからCopy Android plugin to Assetsを実行して
OneSignalConfig.androidlibを使用します。 Assets/Plugins/Android/OneSignalConfig.androidlib/src/main/res内のデフォルトアイコンを独自のものに置き換えます(小文字のファイル名のみ、アンダースコア許可)。詳細については、通知アイコンのカスタマイズを参照してください。
Amazonセットアップ
Amazon FireOS (ADM) セットアップ
Amazon FireOS (ADM) セットアップ
Plugins/Android/AndroidManifest.xmlを編集または作成します。- 名前空間を追加します:
- パーミッションを追加します:
<application>タグに以下を追加します:
-
すべての
COM.YOUR.PACKAGE_NAMEインスタンスを実際のパッケージ名に置き換えます。 -
api_key.txtをAssets/Plugins/Android/OneSignalConfig.androidlib/src/main/assetsの下に配置します
- このファイルの作成については、Amazon APIキーの生成ガイドを参照してください。
Huaweiセットアップ
3. SDKの初期化
アプリケーションのライフサイクルの早い段階で、MonoBehaviourのStart()メソッド内にこのコードを追加します。
YOUR_APP_IDをOneSignalダッシュボード**Settings > Keys & IDs**にあるOneSignal App IDに置き換えます。
OneSignal SDK統合のテスト
このガイドでは、プッシュ通知、サブスクリプション登録、アプリ内メッセージをテストして、OneSignal SDK統合が正しく機能していることを確認する方法を説明します。モバイルサブスクリプションを確認
テストデバイスでアプリを起動します。
requestPermissionメソッドを追加した場合、ネイティブのプッシュ許可プロンプトが自動的に表示されます。
iOSとAndroidのプッシュ許可プロンプト
OneSignalダッシュボードを確認
- Audience > Subscriptionsに移動します。
- ステータスが「Never Subscribed」の新しいエントリが表示されるはずです。

「Never Subscribed」ステータスのサブスクリプションを表示するダッシュボード
アプリに戻り、プロンプトで「許可」をタップします。
OneSignalダッシュボードのSubscriptionsページを更新します。

「Subscribed」ステータスのサブスクリプションを表示するダッシュボード
テストサブスクリプションをセットアップ
テストサブスクリプションは、メッセージを送信する前にプッシュ通知をテストするのに役立ちます。Test Subscriptionsに追加します。

デバイスをTest Subscriptionsに追加
サブスクリプションに名前を付けます。

「Name your subscription」フィールドを表示するダッシュボード
テストユーザーセグメントを作成します。
セグメントに名前を付けます。
Test Usersという名前を付けます(この名前は後で使用されるため重要です)。Test Usersフィルターを追加し、Create Segmentをクリックします。

Test Usersフィルターを使用して「Test Users」セグメントを作成
API経由でテストプッシュを送信
App API KeyとApp IDを取得します。
提供されたコードを更新します。
YOUR_APP_API_KEYとYOUR_APP_IDを実際のキーに置き換えます。このコードは、先ほど作成したTest Usersセグメントを使用します。コードを実行します。
画像とConfirmed Deliveryを確認します。

iOSとAndroidで画像付きプッシュ通知
Confirmed Deliveryを確認します。

Confirmed Deliveryを示す配信統計

Audience Activityでのデバイスレベルでの Confirmed Delivery
- 画像が受信されない場合は、Notification Service Extensionが不足している可能性があります。
- Confirmed Deliveryがない場合は、こちらのトラブルシューティングガイドを確認してください。
- 問題が発生した場合は、APIリクエストとアプリ起動の最初から最後までのログを
.txtファイルにコピー&ペーストしてください。その後、両方をsupport@onesignal.comと共有してください。
アプリ内メッセージを送信
アプリ内メッセージを使用すると、ユーザーがアプリを使用している間にユーザーとコミュニケーションできます。デバイスでアプリを閉じるか、バックグラウンドにします。
アプリ内メッセージを作成します。
- OneSignalダッシュボードで、Messages > In-App > New In-Appに移動します。
- Welcomeメッセージを見つけて選択します。
- Audienceを、以前使用したTest Usersセグメントに設定します。

「Test Users」セグメントをアプリ内メッセージでターゲティング
必要に応じてメッセージコンテンツをカスタマイズします。

アプリ内Welcomeメッセージのカスタマイズ例
トリガーを「On app open」に設定します。
頻度をスケジュールします。

アプリ内メッセージのスケジュールオプション
メッセージをライブにします。
アプリを開いてメッセージを確認します。

デバイスに表示されたWelcomeアプリ内メッセージ
- 新しいセッションを開始します
- 再度開く前に、少なくとも30秒間アプリを閉じるかバックグラウンドにする必要があります。これにより、新しいセッションが開始されます。
- 詳細については、アプリ内メッセージの表示方法を参照してください。
- まだ
Test Usersセグメントに含まれていますか?- アプリを再インストールしたりデバイスを切り替えたりした場合は、デバイスをTest Subscriptionsに再度追加し、Test Usersセグメントの一部であることを確認してください。
- 問題が発生していますか?
- 上記の手順を再現しながらデバッグログの取得に従ってください。これにより、
support@onesignal.comと共有できる追加のログが生成され、何が起こっているかを調査するのに役立ちます。
- 上記の手順を再現しながらデバッグログの取得に従ってください。これにより、
- サブスクリプションの収集、テストサブスクリプションの設定、セグメントの作成。
- セグメントとCreate message APIを使用した画像付きプッシュとConfirmed Deliveryの送信。
- アプリ内メッセージの送信。
ユーザー識別
以前、モバイルサブスクリプションの作成方法を説明しました。次に、OneSignal SDKを使用して、すべてのサブスクリプション(プッシュ、メール、SMSを含む)にわたるユーザーの識別に拡張します。プラットフォーム間でユーザーを統合し、エンゲージメントするために、External ID、タグ、マルチチャネルサブスクリプション、プライバシー、イベントトラッキングについて説明します。External IDを割り当て
External IDを使用して、バックエンドのユーザー識別子を使用して、デバイス、メールアドレス、電話番号間でユーザーを一貫して識別します。これにより、チャネルとサードパーティシステム間でメッセージングが統一されたままになります(特に統合に重要)。 アプリによって識別されるたびに、SDKのloginメソッドを使用してExternal IDを設定します。
データタグを追加
タグは、ユーザープロパティ(username、role、設定など)とイベント(purchase_date、game_level、ユーザーインタラクションなど)を保存するために使用できる文字列データのキーと値のペアです。タグは、高度なメッセージパーソナライゼーションとセグメンテーションを強化し、より高度なユースケースを可能にします。
アプリでイベントが発生したときに、SDKのaddTagおよびaddTagsメソッドを使用してタグを設定します。
この例では、ユーザーはレベル6に到達し、current_levelというタグで識別され、値は6に設定されます。

"current_level"というタグが"6"に設定されたOneSignalのユーザープロファイル

current_level値が4より大きく10より小さいユーザーをターゲットとするセグメントを示すセグメントエディター

パーソナライズされたメッセージでLevel 5-10セグメントをターゲットとするプッシュ通知を示すスクリーンショット

パーソナライズされたコンテンツを含むプッシュ通知がiOSおよびAndroidデバイスで受信されます
メールおよび/またはSMSサブスクリプションを追加
以前、SDKがプッシュとアプリ内メッセージを送信するためにモバイルサブスクリプションを作成する方法を見ました。対応するサブスクリプションを作成することで、メールとSMSチャネルを通じてユーザーにリーチすることもできます。addEmailメソッドを使用してメールサブスクリプションを作成します。addSmsメソッドを使用してSMSサブスクリプションを作成します。

External IDによって統合されたプッシュ、メール、SMSサブスクリプションを持つユーザープロファイル
- メールまたはSMSサブスクリプションを追加する前に、明示的な同意を得てください。
- 各コミュニケーションチャネルの利点をユーザーに説明してください。
- ユーザーが好むチャネルを選択できるように、チャネルの設定を提供してください。
プライバシーとユーザー同意
OneSignalがユーザーデータを収集するタイミングを制御するには、SDKの同意ゲーティングメソッドを使用します:setConsentRequired(true):同意が与えられるまでデータ収集を防ぎます。setConsentGiven(true):同意が付与されるとデータ収集を有効にします。
プッシュ許可のプロンプト
アプリを開いたときにすぐにrequestPermission()を呼び出すのではなく、より戦略的なアプローチを取ります。許可をリクエストする前に、アプリ内メッセージを使用してプッシュ通知の価値を説明します。
ベストプラクティスと実装の詳細については、プッシュ許可のプロンプトガイドを参照してください。
プッシュ、ユーザー、アプリ内イベントをリッスン
SDKリスナーを使用して、ユーザーのアクションと状態の変化に反応します。 SDKは、フックできるいくつかのイベントリスナーを提供します。詳細については、SDKリファレンスガイドを参照してください。プッシュ通知イベント
addClickListener():通知がタップされたときを検出します。ディープリンクに役立ちます。addForegroundLifecycleListener():フォアグラウンドでの通知の動作を制御します。
ユーザー状態の変更
- ユーザー状態用の
addObserver():External IDが設定されたときを検出します。 addPermissionObserver():ネイティブのプッシュ許可プロンプトとのユーザーの特定のインタラクションを追跡します。- プッシュサブスクリプション用の
addObserver():プッシュサブスクリプションのステータスが変更されたときを追跡します。
アプリ内メッセージイベント
addClickListener():アプリ内クリックアクションを処理します。ディープリンクやイベントの追跡に最適です。addLifecycleListener():アプリ内メッセージの完全なライフサイクル(表示、クリック、閉じるなど)を追跡します。
高度なセットアップと機能
統合を強化するための追加機能を探索します:- 🔁 別のサービスからOneSignalへの移行
- 🌍 位置情報トラッキング
- 🔗 ディープリンク
- 🔌 統合
- 🧩 Mobile Service Extensions
- 🛎️ アクションボタン
- 🌐 多言語メッセージング
- 🛡️ Identity Verification
- 📊 カスタムアウトカム
- 📲 Live Activities
Mobile SDKのセットアップとリファレンス
モバイルプッシュセットアップガイドを確認して、すべての主要機能が有効になっていることを確認してください。 利用可能なメソッドと設定オプションの詳細については、Mobile SDKリファレンスにアクセスしてください。support@onesignal.comにメールしてください以下を含めてください:- 発生している問題の詳細と再現手順(利用可能な場合)
- OneSignal App ID
- 該当する場合は、External IDまたはSubscription ID
- 該当する場合は、OneSignalダッシュボードでテストしたメッセージのURL
- 関連するログまたはエラーメッセージ