ブログ記事一覧

【Unity】OneSignalで手軽にAndroid/iOSへプッシュ通知導入(Push Notification)

2018-01-06

UnityでOneSignalを利用したAndroid・iOSへ手軽なプッシュ通知の導入方法(Push Notification)

概要

UnityでAndroid/iOSにプッシュ通知を導入したい!

NiftyのmBaaS、Firebase?色々あるけどどれがいいんだろう?(ここでは比較はしません)

お手軽なプッシュ通知の導入方法として、OneSignalのセットアップから導入までを解説します。

OneSignalの特徴

[blogcard url="https://onesignal.com/"]OneSignal[/blogcard]

OneSignalの特徴は以下の通り

  • Android/iOSアプリだけでなくWebプッシュにも対応
  • バッジ付き、リッチプッシュ、コールバック機能、etc…
  • スケジュール配信、開封率確認、言語別の配信設定、ユーザーに合わせた良き時間?での配信

などなど、無料なのですが通常のプッシュ通知で必要十分な機能があります。

※OneSignalの管理コンソールです

SDK導入(Android/iOS共通)

導入ステップは公式サイトからも確認できます。

[blogcard url="https://documentation.onesignal.com/v3.0/docs/unity-sdk-setup"]OneSignalの導入(公式サイト)[/blogcard]

OneSignalの最新版unitypackageをダウンロードします

ダウンロードはgithubからできます。

[blogcard url="https://github.com/one-signal/OneSignal-Unity-SDK/releases"]OneSignal(github)[/blogcard]

Unity4/5用があるので適切な物をインポートしてください。

必要なコードを設定します

OneSignal/Exampleフォルダにサンプルシーンとサンプルコードがあります。

 

サンプルコードの以下の部分を変更します。

>>OneSignal.StartInit(“ここにOneSignal app idを設定します“)

OneSignal App Idの取得をします。

OneSignal AppIdを取得する

・OneSinal.comにアクセスして、アプリを登録します

(OneSignalのアカウントを作成していない場合は作成してください)

・Add a new appからアプリを登録します

(この画像では既に登録済みのアプリ「Notification Test」が見えていますね)

・アプリを登録したら、「AppSetting」->「Keys&IDs」からOneSignalAppIDが確認できます。

このIDを先ほどの「OneSignal.StartInit(“")」に設定してください

Androidのセットアップ

  • Assets > Play Services Resolver > Android Resolver > Resolve Client Jarsを実行して必要なjarを設定します
  • Assets/Plugins/Android/OneSignalConfig/res/にて、アイコンの設定を行います

[blogcard url="https://documentation.onesignal.com/v3.0/docs/customize-notification-icons"]アイコン設定の詳細はこちら[/blogcard]

公式ではこのあとAmazonのストアに出す場合のManifestファイルについての解説が書かれていますが、ここでは不要です。

OneSignalの管理コンソール設定

これで最後です。

OneSignalの管理画面から、AppSetting->Google Androidの「Configure」を選択します。

Google ServerAPI Keyと Google Project Numberの設定画面が表示されます。

画面に表示されている「Read the documentation…」をクリックすると取得方法が表示されます

[blogcard url="https://documentation.onesignal.com/docs/generate-a-google-server-api-key"]Google Server API Keyの設定方法[/blogcard]

Firebaseでプロジェクトを作成する

Google Server Api Keyの取得のため、Firebaseにログインしてプロジェクトを作成します。

プロジェクトを作成したら、「歯車アイコン」->「プロジェクトの設定」と進みます

設定->クラウドメッセージングと進みます。

表示される「サーバーキー」と「送信者ID」を使用します。

  • サーバーキ-:(OneSignalの管理コンソールでの)Google Server Api Key
  • 送信者ID:(OneSignalの管理コンソールでの)Google Project Number

なんかわかりずらいですが、先ほどのOneSignal管理コンソールで設定する値がこれで取得できました。

Androidでのセットアップは以上です!

iOSのセットアップ

Androidと同じく[blogcard url="https://documentation.onesignal.com/v3.0/docs/unity-sdk-setup"]SDKセットアップ[/blogcard]を見ながら進めます。

まず、Unityで通常通りXcodeのファイルをビルドし、Xcodeでプロジェクトファイルを開きます。

ここからはXcodeでの設定となります。

  • 「Capabilities」から"Push Notifications"を有効にします
  • 「Background Modes」から"Remote notifications"を有効にします。

「Build Phases」から"UserNotifications.framework"を追加します。

オプションとして、iOS10で通知のアクションボタンとメディアを添付する場合の方法が公式にあります。必要に応じて設定してください。ここでは省きます。

OneSignalにアップロードするCertificateファイルを準備します

2通りの方法があります。

ここでは、OneSignalのサイトから利用可能なWizardサイトを利用します。

[blogcard url="https://onesignal.com/provisionator"]Push Notification Certificate Wizard[/blogcard]

Wizardを利用しない場合はこちらのガイドをみて取得してください

 

Wizardサイトにアクセスし画面中央水色の「GetStarted」をクリックします

  • Step1:Apple DeveloperのIDとPassでログインします
  • Step2:使用するTeamを選択します
  • Step3:使用するアプリのIDを選択します

App IDを作成していない場合は、Apple Develoerのサイトで作成しておきます。

作成方法は、上記で紹介しているOneSignalサイトのガイドにも記載されています。

ポイントとしては、「Enable Push Notifications」をチェックすることです。

また、上記のガイドには[Apple Push Notification service SSL(Sandbox & Production)]のCertificateを作成する方法が記載されています。

話がそれましたが、OneSignalサイトのWizardからGenerateした.p12ファイルをダウンロードしておきます。

OneSignal管理サイトで生成した.p12ファイルをアップする

OneSignalのサイトからPush通知を送るアプリを選択し「Apple iOS」→「Configure」と進みます。

先ほどWizardで生成した.p12ファイルをアップロードします。

お疲れ様でした!これでAndroid/iOSのアプリに関して設定が完了です。

ビルドしてアプリをインストールしてください。

OneSignalでプッシュ通知を送る

お待ちかね!通知を送ってみましょう!

OneSignalのサイトからアプリを選択し「NewMessage」にすすみます。

送信先をSegment設定も出来ますが、とりあえずEveryoneにします。画面の右上にNextとオレンジのボタンがでるので押して進めます。

送信内容を設定します。画面左が送信内容の設定、右がプレビューです。

左下にある「Add Another Language」で言語を追加できます。ここではJapaneseを追加しました。これにより、簡単に言語毎に内容を分けることが出来ます。この画面では、Title/Subtitle/Messageを設定してNextに進みます。

 

iOSではバッジの設定などを行うことが出来ます。Androidではアイコンやサウンド設定が出来ます。今は標準で送信してみるので設定は不要です。

次は送信タイミングの設定です。上段はすぐに送るか、時間指定かです。

下段はちょっと面白いのですが、すぐに送るか、ユーザー毎に適切な時間に送るかを選択できます。

どうやらこの適切な時間というのはユーザー毎の開封率?クリック率?などの反応がもっとも良さそうな時間帯を判断して送ってくれるようです。

Confirmをおすと確認画面になり「Send Message」で送信されます。

無事、Android/iOSともにプッシュ通知が配信されました。