AIコーディングアシスタントを使用していますか?
AI駆動のインストールには、次のプロンプトを使用してください:
ステップ0. OneSignalでFCMを設定する(プッシュ配信に必須)
このステップを完了しなくても、OneSignal Android SDKをインストールして初期化できます。ただし、OneSignalアプリでFirebase Cloud Messaging(FCM)の認証情報が設定されるまで、プッシュ通知は配信されません。会社にすでにOneSignalアカウントがある場合は、アプリを設定するために管理者ロールとして招待してもらうよう依頼してください。それ以外の場合は、無料アカウントに登録して始めましょう。
OneSignalアプリを設定する手順。
OneSignalアプリを設定する手順。
これらの手順で、OneSignalアプリをFirebase Cloud Messaging(FCM)に接続します。アプリごとに一度だけ行う必要があります。
- https://onesignal.comにログインし、アプリを作成または選択します。
- Settings > Push & In-Appに移動します。
- Google Android (FCM)を選択し、セットアップウィザードをContinueで進めます。
- Firebaseサーバーキーまたはサービスアカウントの詳細を入力します。
- セットアップウィザードを続行してApp IDを取得します。これはSDKの初期化に使用されます。
完全なセットアップ手順については、モバイルプッシュセットアップガイドをご覧ください。
セットアップの契約と要件
このセクションでは、ガイド全体で使用するツール、バージョン、前提条件をまとめています。- SDKバージョン:
5.6.1+(最新版:releasesを確認) - AIセットアップ手順:
https://raw.githubusercontent.com/OneSignal/sdk-ai-prompts/main/docs/android/ai-prompt.md - SDKリポジトリ:
https://github.com/OneSignal/OneSignal-Android-SDK - Android Studio: Meerkat+(2024.2.1+)
- Android API: 最低23+(Android 6.0+)、推奨31+(Android 12+)
- デバイス/エミュレータ: Google Play Servicesがインストールされた Android 7.0+
- 必須依存関係:
com.onesignal:OneSignal:[5.6.1, 5.6.99] - Applicationクラス: SDK の適切な初期化に必須
- App ID形式: 36文字のUUID(例:
12345678-1234-1234-1234-123456789012)— OneSignalダッシュボード > Settings > Keys & IDsで確認 - 初期化:
OneSignal.initWithContext(this, "YOUR_APP_ID") - バッテリー最適化: バックグラウンド通知に影響する可能性があります
- 推奨:
OneSignal.login("user_id")でExternal IDを割り当て、デバイス間でユーザーを統一
Androidセットアップ手順
以下の手順を完了すると:- AndroidアプリにOneSignal SDKがインストールされ、初期化されます
- 実機でプッシュ通知の権限プロンプトが正しく表示されます
- テストプッシュとアプリ内メッセージが正常に配信されます
**ステップ0(OneSignalでFCMを設定する)**をスキップした場合でも、以下のAndroid Studioのセットアップを完了できます。プッシュ通知のテストや送信の前にステップ0を完了してください。
ステップ1. OneSignal SDKを追加する
- Android Studioで、
build.gradle.kts (Module: app)またはbuild.gradle (Module: app)ファイルを開きます dependenciesセクションにOneSignalを追加します:

- Gradleを同期: 表示されるバナーのSync Nowをクリックするか、File > Sync Project with Gradle Filesに移動します
Gradleの同期が依存関係の競合なく正常に完了したことを確認してください。
ステップ2. Applicationクラスを作成して設定する
すべてのエントリポイントで適切なSDKセットアップを確保するため、ApplicationクラスのonCreateメソッドでOneSignalを初期化することがベストプラクティスです。
Applicationクラスがまだない場合は作成してください:
- File > New > Kotlin Class/File(またはJava Class)
- 名前:
ApplicationClass(またはお好みの名前)

YOUR_APP_IDをDashboard > Settings > Keys & IDsで取得した実際のOneSignal App IDに置き換えてください。

- アプリの
AndroidManifest.xmlを開きます <application>タグにandroid:name=".ApplicationClass"を追加します(異なるクラス名を設定した場合は.ApplicationClassを置き換えてください)。
AndroidManifest.xml

アプリがエラーなくビルドおよび実行されることを確認してください。
ステップ3. デフォルト通知アイコンを設定する(推奨)
アプリのブランドに合わせて通知アイコンをカスタマイズしてください。このステップはオプションですが、プロフェッショナルな外観のために推奨されます。ステップ4. 統合をテストする
サブスクリプションの作成を確認:- Google Play Servicesが搭載されたデバイスまたはエミュレータでアプリを起動します
- Dashboard > Audience > Subscriptionsを確認 — ステータスが「Never Subscribed」と表示されます
- 権限プロンプトが表示されたら承認します
- ダッシュボードを更新 — ステータスが「Subscribed」に変わります



モバイルサブスクリプションの作成に成功しました。
モバイルサブスクリプションは、ユーザーがデバイスでアプリを初めて開いたとき、またはアンインストール後に再インストールしたときに作成されます。
テストサブスクリプションとセグメントを作成する
- サブスクリプションの横にある**⋮**をクリック > Add to Test Subscriptions > 名前を付けます
- Audience > Segments > New Segmentに移動します
- 名前:
Test Users、Test Usersフィルターを追加 > Create Segment


テストユーザーセグメントの作成に成功しました。これで、この個別デバイスとテストユーザーグループへのメッセージ送信をテストできます。
APIでテストプッシュを送信する
- **Settings > Keys & IDs**に移動します。
- 提供されたコードで、以下のコードの
YOUR_APP_API_KEYとYOUR_APP_IDを実際のキーに置き換えてください。このコードは先ほど作成したTest Usersセグメントを使用します。


テストデバイスが以下を含む通知を受信したことを確認してください:
- カスタムアイコン(設定済みの場合)
- 展開時の大きな画像
- Dashboard > Delivery > Sent Messagesに「Confirmed」ステータスが表示される(無料プランでは利用不可)。
アプリ内メッセージをテストする
- アプリを30秒以上閉じます
- Dashboard > Messages > In-App > New In-App > Welcomeテンプレートを選択
- オーディエンス:Test Usersセグメント
- トリガー:On app open
- スケジュール:Every time trigger conditions are satisfied
- Make Message Liveをクリック
- アプリを開きます




テストデバイスがアプリ内メッセージを受信したことを確認してください。詳細については、アプリ内メッセージのセットアップガイドをご覧ください。
一般的なエラーと修正
| エラー / 症状 | 原因 | 修正方法 |
|---|---|---|
Cannot resolve symbol 'OneSignal' | SDK依存関係が追加されていないかGradleが同期されていない | build.gradleに依存関係を追加してプロジェクトを同期する |
Application class not found | Applicationクラスがマニフェストに登録されていない | <application>タグにandroid:name=".ApplicationClass"を追加する |
Google Play Services not available | エミュレータ/デバイスにPlay Servicesがない | Play Storeが搭載されたデバイスまたはGoogle APIs搭載のエミュレータを使用する |
| プッシュは受信したがデフォルトのAndroidアイコン | カスタムアイコンが設定されていないか名前が間違っている | onesignal_small_icon_defaultという名前の通知アイコンアセットを作成する |
| プッシュ通知が届かない | FCMがOneSignalで設定されていない | ステップ0を完了:OneSignalダッシュボードでFCM認証情報を設定する |
| アプリ内メッセージが表示されない | セッションが開始されていないかネットワークの問題 | アプリを30秒以上閉じてから再度開き、インターネット接続を確認する |
Manifest merger failed | マニフェスト属性の競合 | 重複するアプリケーション名や権限の競合を確認する |
| バッテリー最適化が通知をブロック | デバイスの電源管理 | ユーザーにアプリのバッテリー最適化を無効にするよう案内する |
| 問題を診断できない | ログ情報が不十分 | 詳細ログを追加し、logcat出力でエラーを確認する |
ユーザー管理
以前、モバイルサブスクリプションの作成方法を説明しました。ここでは、OneSignal SDKを使用して、すべてのサブスクリプション(プッシュ、メール、SMSを含む)を通じてユーザーを識別する方法に拡張します。External IDを割り当てる(推奨)
External IDを使用して、バックエンドのユーザー識別子でデバイス、メールアドレス、電話番号を横断してユーザーを一貫して識別します。これにより、チャネルとサードパーティシステム間でメッセージングが統一されます。詳細とJavaコード例については、モバイルSDKリファレンスをご覧ください。Kotlin
OneSignalはサブスクリプション(Subscription ID)とユーザー(OneSignal ID)に対して一意の読み取り専用IDを生成します。SDKを通じてExternal IDを設定することを強く推奨します。これにより、作成方法に関係なく、すべてのサブスクリプションでユーザーを識別できます。SDKリファレンスガイドで
loginメソッドの詳細をご覧ください。タグとカスタムイベントを追加する
タグとカスタムイベントはどちらもユーザーにデータを追加する方法です。タグはkey-value文字列で、通常はユーザープロパティ(username、role、statusなど)に関連付けられます。カスタムイベントはJSON形式で、通常はアクション(new_purchase、abandoned_cartと関連プロパティなど)に関連付けられます。両方とも高度なメッセージパーソナライゼーションとJourneysを駆動するために使用できます。詳細とJavaコード例については、モバイルSDKリファレンスをご覧ください。
Kotlin
メールおよび/またはSMSサブスクリプションを追加する
プッシュ通知に加えて、メールとSMSチャネルを通じてユーザーにリーチできます。メールアドレスや電話番号がすでにOneSignalアプリに存在する場合、SDKは既存のユーザーに追加します — 重複は作成しません。詳細とJavaコード例については、モバイルSDKリファレンスをご覧ください。Kotlin

マルチチャネルコミュニケーションのベストプラクティス
- メールまたはSMSサブスクリプションを追加する前に明示的な同意を取得してください。
- 各コミュニケーションチャネルの利点をユーザーに説明してください。
- チャネル設定を提供して、ユーザーが希望するチャネルを選択できるようにしてください。
プライバシーとユーザー同意
OneSignalがユーザーデータを収集するタイミングを制御するには、SDKの同意管理メソッドを使用します。詳細とJavaコード例については、モバイルSDKリファレンスをご覧ください。Kotlin
プライバシーとセキュリティドキュメントの詳細:
プッシュ権限のプロンプト
アプリを開いた直後にrequestPermission()を呼び出す代わりに、より戦略的なアプローチを取りましょう。アプリ内メッセージを使用して、権限をリクエストする前にプッシュ通知の価値を説明してください。
ベストプラクティスと実装の詳細については、プッシュ権限のプロンプトガイドをご覧ください。
プッシュ、ユーザー、アプリ内イベントをリッスンする
SDKリスナーを使用して、ユーザーのアクションと状態変化に反応します。OneSignal.initWithContext()の後にApplicationクラスに追加してください。
プッシュ通知イベント
Kotlin
ユーザー状態の変更
以下の例は、プッシュサブスクリプションオブザーバーの使用方法を示しています。ユーザー状態オブザーバーや通知権限オブザーバーなどの他のユーザー状態イベントは、モバイルSDKリファレンスで確認できます。Kotlin
アプリ内メッセージイベント
追加のアプリ内メッセージメソッドは、モバイルSDKリファレンスで確認できます。Kotlin
高度なセットアップと機能
Android固有の機能
- 通知チャネル — 通知をカテゴリに整理する(Android 8.0+)
- サービス拡張 — 高度な通知カスタマイズ
- Huawei/HMSサポート — Google Play Servicesの代替
ユニバーサル機能
- ディープリンク — 通知からユーザーを特定の画面に誘導
- アクションボタン — 通知にインタラクティブなボタンを追加
- 本人確認 — 安全なユーザー識別
- 位置情報トラッキング — 位置情報ベースのターゲティング
- インテグレーション — 分析およびデータプラットフォームとの接続
- 多言語メッセージング — ローカライズされた通知
サポートが必要ですか?サポートチームとチャットするか、
support@onesignal.comにメールしてください以下を含めてください:- 発生している問題の詳細と再現手順(利用可能な場合)
- OneSignal App ID
- 該当する場合は、External IDまたはSubscription ID
- 該当する場合は、OneSignalダッシュボードでテストしたメッセージのURL
- 関連するログまたはエラーメッセージ