Fello

プッシュ通知機能SDK組み込み手順書(Unity)

SDKの概要

本SDKを使用することで、Unity(iOS/Android)アプリケーションに以下のプッシュ通知機能を組み込むことができます。
また、広告の配信機能(iOS)も同一のSDKに含まれているため利用可能です。
詳細は広告ネットワーク機能の利用手順を参照ください。

  • プッシュ通知の予約配信(※リモート、ローカル)

  • プッシュ通知の効果測定

  • プッシュ通知経由の起動時にゲーム側でカスタム動作(インセンティブの付与など)

  • ※多くのユーザーに一斉配信する(例:イベント開始の告知をする)にはリモートプッシュ通知を、個別ユーザーのアクションに連動して個別配信する(例:体力 が全回復したことを通知する)にはローカルプッシュ通知を利用します。

組み込みに必要なもの

アプリケーションの登録

まず以下の手順でアプリケーションを登録してください。
登録完了後、あなたのアプリケーション用のアプリケーションIDが発行されます。

  1. デベロッパーセンターにログインする


  2. "アプリケーション追加"ボタンを押し、アプリケーション名など必要な情報を登録する


  3. "アプリケーション一覧"から、登録したアプリケーションの情報を確認する


最新のSDK

SDKのダウンロードから、最新のSDKをダウンロードしてください。

開発環境・ソフトウェア

Unity(iOS/Android)アプリケーションに本SDKを組み込むには、以下のソフトウェアが必要です。

動作環境

本SDKの組み込みに対応しているOSバージョンは以下の通りです。

iOS 6.0 以上
Android 2.3 以上

Unityプロジェクトへの統合

本SDKは、Unityプラグインパッケージ+iOSフレームワークとして提供されています。
以下の手順で、Unityプロジェクトに本SDKを統合します。

Unityプロジェクトの編集

  1. Unityプロジェクトにプラグインパッケージをインポートする

    統合先のUnityプロジェクトを開いた状態でFinder上でFelloPush.unitypackageをダブルクリックします。


    インポートするファイルの確認が表示されたら全て選択してインポートします。


  2. 任意のゲームオブジェクトの一つにFelloPush.csをアタッチします。
    コールバックを実装するには後述の「コールバックの実装方法」を参考にFelloPushという名前のゲームオブジェクトにアタッチしてください。


Unity(iOS)アプリへの組み込み方法

  1. プラグイン内のAssets/Plugins/iOS/FelloPushBridge.mmファイルを修正する

    下記のApplication IDをFelloサイトで発行されたものに変更します。

    static NSString* _appId = @"アプリケーションID";
    
  2. UnityプロジェクトからXCodeプロジェクトを出力する

  3. XCodeプロジェクトを開く

  4. XCodeプロジェクトのProject NavigatorにダウンロードしたSDK内のPushSDK/Debug/FelloPush.frameworkをドラッグ&ドロップで登録する。(Bitcodeを有効にす る場合は、bitcodeフォルダ内のファイルを登録する)



  5. Build SettingsのOther Linker Flagsに-ObjCを追加する

  6. Build PhasesのLink Binary With Librariesにlibsqlite3.0.dylib,StoreKit.frameworkを追加する


  7. Build Phases内Compile Sourcesの、FelloPushBridge.mmとWebView.mmの
    Compiler Flagsに-fno-objc-arcを指定する

  8. (※iOS9以上の場合) Bitcodeを無効に設定する場合は、Build Settings > Build Options > Enable BitcodeにNOを指定して下さい。

  9. (※iOS9以上の場合) ATSを無効にする場合は、アプリ内のInfo.plistを編集し、NSAppTransportSecurityという名前のDictionaryを追加し、キーNSAllowsArbitraryLoads、値YESを設定して下さい。

  10. XCodeプロジェクトをビルドし、起動する


Unity(Android)アプリへの組み込み方法

  1. プラグイン内のAssets/Plugins/Android/AndroidManifest.xmlファイルを修正

    com.Company.ProductNameとなっている箇所を全て組み込むアプリのパッケージIDに変更します。

    Android 2.3で利用するには以下の設定も追加します。(以下も同様にcom.Company.ProductNameをアプリのパッケージIDに変更します)

      <uses-permission android:name="com.Company.ProductName.permission.C2D_MESSAGE" />
      <permission android:name="com.Company.ProductName.permission.C2D_MESSAGE" android:protectionLevel="signature" />
    
  2. プラグイン内のAssets/Plugins/Android/res/xml/fello_config.xmlファイルを修正

    下記のApplicationIdをFelloサイトで発行されたものに変更します。他の箇所もそれぞれ適宜設定します。

    <?xml version="1.0" encoding="UTF-8"?>
    <config>
      <ApplicationId>アプリケーションIDを記入してください</ApplicationId>
      <IsTest>true</IsTest>
      <NotificationLaunchActivityPackage>com.unity3d.player</NotificationLaunchActivityPackage>
      <NotificationLaunchActivityName>UnityPlayerActivity</NotificationLaunchActivityName>
      <NotificationTitle>プッシュ通知のタイトルを記入してください</NotificationTitle>
      <NotificationIcon>app_icon</NotificationIcon>
      <EnableNotificationDialog>ダイアログを表示するときはtrue、しないときはfalseを記入してください</EnableNotificationDialog>
      <EnableMessageCenter>お知らせ管理機能を有効にするときはtrue、しないときはfalseを記入してください</EnableMessageCenter>
      <EnableDefaultNotificationSettings>プッシュ通知をデフォルトで有効にするときはtrue、しないときはfalseを記入してください</EnableDefaultNotificationSettings>
      <EnableMultipleNotification>通知領域に通知を複数表示する場合はtrue、しないときはfalseを記入してください</EnableMultipleNotification>
      <OpenLinkInBrowser>リッチページ内のリンクを外部ブラウザで開く場合はtrue、そうでない場合はfalseを記入して下さい</OpenLinkInBrowser>
      <EnableStackedNotifications>複数の通知をスタック表示する場合はtrue、そうでない場合はfalseを記入して下さい</EnableStackedNotifications>
      <MessageForStackedNotifications>スタック表示時のサマリメッセージ(例:新規の通知を%d件受信しています。)</MessageForStackedNotifications>
    </config>
    
  3. UnityプロジェクトからAndroid Platformを選択し、Build

プッシュ通知の配信予約(リモート)

端末にプッシュ通知を配信する方法を説明します。
以下の手順で、プッシュ通知の配信設定ができます。

  1. デベロッパーサイトにログインし、ダッシュボードを開く


  2. メニューの"アプリケーション一覧"から登録したアプリケーションを選択

    アプリケーション管理画面へ移動します。


  3. ページ上部タブの"プッシュ通知"から、プッシュ通知スケジュール管理ページに移動

    初期状態では配信スケジュールが表示されています。


  4. "追加"から必要な情報を設定し追加ボタンを押す

    送信予定日時・メッセージを入力してください。 それぞれの項目の詳細は以下の通りです。

    • 送信日付
      プッシュ通知を配信する予定日時

    • メッセージ
      プッシュ通知で表示されるメッセージ

    • Icon
      プッシュ通知受信時に表示されるポップアップのアイコンを登録できます(Android端末のみ)
      iOSの通知には、画像の登録に関わらずアプリアイコンが表示されます。
      アイコンサイズは112×112ピクセルで、png/jpg形式に対応しています(png推奨)

    • サウンド
      プッシュ通知時にサウンドを再生する(iOS端末のみ)

    • バッジ
      プッシュ通知時、アイコンにバッジ表示する(iOS端末のみ)

    • 未起動日数 プッシュ通知配信日時から、設定した日数以上未起動であるユーザーが配信対象になります。


  5. "スケジュール一覧"で、配信予定が登録されていることを確認

    配信予定が登録されているか、一覧で確認することが出来ます。

プッシュ通知の配信予約(ローカル)

端末にローカルプッシュ通知を配信する方法を説明します。 以下の手順で、ローカルプッシュ通知の配信設定ができます。

  1. 下記の例を参考に、FelloPush.ScheduleLocalNotification(text, date, label)を呼び出すコードを実装

    FelloPush component = (FelloPush)GetComponent("FelloPush");
    DateTime date = DateTime.UtcNow;
    date = date.AddSeconds(10);
    component.ScheduleLocalNotification("体力が全回復したよ!冒険に出かけよう!", date, "hp_max");
    
    • text : メッセージ プッシュ通知で表示されるメッセージ

    • date : 送信日付 ローカルプッシュ通知を配信する予定日時

    • label : 分類ラベル 通知を分類するための任意のラベル(30文字まで)

  2. アプリを起動し、設定した条件通りに通知が出ることを確認

ユーザーと紐付いたタグ情報の登録方法

下記のAPIを用いることで、ユーザーと紐付いたタグ情報を登録することができます。

タグ情報登録することで、任意のユーザーに絞ったプッシュ通知配信を行うことができます。

  1. 下記の例を参考に、FelloPush.SetTag(name, value)を呼び出すコードを実装

    FelloPush component = (FelloPush)GetComponent("FelloPush");
    component.SetTag("sample_tag_name", "任意の値");
    
    • name : タグ名。最大文字列長は15文字まで、使用できる文字はアルファベット(a-zA-z)、数字(0-9)、アンダースコア(_)

    • value : タグの値。int若しくはstringを指定でき、指定できる値は数値の場合-2147483648から+2147483647、文字列の場合は255文字まで

お知らせ管理機能の使用方法

こちらの機能は有料プラン専用です。各料金プランについてはこちらをご確認ください。

この機能を利用するためにはSDKバージョン3.0.0以上が必要です。

お知らせ管理機能を利用することで、プッシュ通知を受信していないユーザーにもお知らせを配信することができます。
お知らせ管理機能は大きく3つのゲームオブジェクト(お知らせ一覧起動ボタン、お知らせ一覧、お知らせ本文)で構成されており、
サンプルアプリに含まれるソースコードを修正することでUIの変更をすることが可能です。

サンプルアプリ内の構成は以下のようになっています。

お知らせ管理サンプルアプリのシーンファイル

  • MessageScene
    お知らせ管理サンプルアプリのシーンファイルです。

お知らせ管理のサンプルアプリシーン内ゲームオブジェクト

  • MessageLauncher
    お知らせ一覧を起動するためのボタンが含まれるゲームオブジェクトです。
  • MessageList
    お知らせ一覧を表示するためのゲームオブジェクトです。
  • MessageDetail
    お知らせ本文を表示するためのゲームオブジェクトです。

お知らせ管理のサンプルアプリスクリプト

  • MessageController.cs
    お知らせ管理のゲームオブジェクトを管理するスクリプトです。

お知らせ管理機能に関するAPIの詳細についてはAPIリファレンスの項目をご参照ください。

プッシュ通知用のデバイストークン/登録IDの取得方法

下記のAPIを用いることで、Androidの場合はGoogle Cloud Messaging Serviceの登録ID、

iOSの場合はApple Push Notification Serviceのデバイストークンを取得することが出来ます。

  1. 下記の例を参考に、FelloPush.GetDeviceToken()を呼び出すコードを実装

    FelloPush component = (FelloPush)GetComponent("FelloPush");
    string token = component.GetDeviceToken();
    

Android6.0への対応方法

Android6.0から、プッシュ通知ポップアップ、リッチページを表示する際にユーザーから表示許可を得ることが必須となりました。

下記のAPIを使用することで、OSの権限設定画面を表示しユーザーから許可を得ることで
プッシュ通知ポップアップ、リッチページを表示することが出来るようになります。

  1. 下記の例を参考に、FelloPush.RequestOverlayPermission()を呼び出すコードを実装
    引数には、許可を求める文言のToastを表示する場合はtrue、そうでなければfalseを指定して下さい。

    FelloPush component = (FelloPush)GetComponent("FelloPush");
    component.RequestOverlayPermission(true);
    
  2. 通知ポップアップ、リッチページの表示許可があるかどうかは以下のAPIで確認することができます。
    通知ポップアップ、リッチページ、広告の表示権限があればtrue、なければfalseが返ります。
    Android6.0未満のOSの端末では常にtrueを返します。

    FelloPush component = (FelloPush)GetComponent("FelloPush");
    bool hasOverlayPermission = component.HasOverlayPermission();
    

コールバックの実装方法

コールバックを実装することで、リモートプッシュ通知経由の起動をコールバックで受け取る事ができます。

FelloPushゲームオブジェクトを作成し、FelloPush.csをアタッチする事でonLaunchFromNotificationコールバックが呼ばれるようになります>。

バージョン2.2.0からの変更点

  • isTestのパラメータは廃止され、自動的に選択されるようになりました(iOSの場合)
  • サンドボックスモードを廃止しました。デバッグ中のアプリにプッシュ通知を送信する際は「デバッグ用アプリに送信」にチェックを入れて送信して下さい 。
  • サンドボックスモードを解除したアプリについても「デバッグ用アプリに送信」にチェックを入れて送信することでデバッグ中のアプリに送信できるように なりました。
  • ローカルプッシュ機能を追加しました
  • バージョン2.2.0以前からバージョンアップする際はAndroidManifest.xmlにKonectLocalNotificationsReceiverの登 録を追加して下さい(Androidの場合)

バージョン2.3.0からの変更点

  • Unity4.3以上のバージョンで、iOSのAppController.mmの変更を不要にしました。

バージョン2.4.1からの変更点

  • 広告リクエストの成否、プッシュ通知からの起動をコールバックで受け取れるようになりました。
  • 受け取れるコールバックはiOS/AndroidのSDKに準じます。
  • 詳細はAPIリファレンス(iOS/Android)をご参照ください。

バージョン3.1.2からの変更点

  • Android6.0に対応しました。

    Android6.0から、プッシュ通知ポップアップ、リッチページを表示する際に
    ユーザーから表示許可を得ることが必須となりました。
    アプリのAndroid6.0への対応方法については、本ドキュメントのAndroid6.0への対応方法を参照して下さい。

バージョン3.1.4からの変更点

  • Androidにおいて通知を複数受信時に通知をスタック表示するかどうかを設定できる機能を追加しました。
    fello_config.xmlのEnableStackedNotifications、MessageForStackedNotificationsを変更することで設定することが出来ます。
    詳しくはSDK組み込み手順書をご参照ください。

バージョン3.1.12からの変更点

  • 対応するiOSの最小バージョンを6.0以上に変更しました。
  • iOSにおいてBitcodeに対応しました。
  • iOSにおいてApp Transport Security(ATS)に対応しました。
    ATS有効の環境下でリッチページ通知を利用する場合、管理画面でのリッチページ登録画面で指定するURLがhttp://r.fello.net/*** となっているものは、https://s3-ap-northeast-1.amazonaws.com/r.fello.net/*** と書き換えてください。
    お知らせ機能でお知らせの本文のURLがhttp://r.fello.net/*** となっている場合、アプリ内で使用する場合はアプリ側でhttps://s3-ap-northeast-1.amazonaws.com/r.fello.net/*** と>書き換えてください。

アプリのリリース

本SDKを組み込んだアプリをリリースする前に、必ず以下の手順を行い、アプリをビルドし直して下さい。

  • 前項の手順でプッシュ通知が配信されることを確認する

  • プラグイン内のAssets/Plugins/Android/res/xml/fello_config.xmlファイルを修正する(Androidの場合)

    下記のIsTestをfalseに変更します。

    <?xml version="1.0" encoding="UTF-8"?>
    <config>
      <ApplicationId>アプリケーションIDを記入してください</ApplicationId>
      <IsTest>false</IsTest>
    
  • XCodeプロジェクトのProject NavigatorにダウンロードしたSDK内のPushSDK/Release/FelloPush.frameworkをドラッグ&ドロップで登録する(Debug版は登録解除する)(iOSの場合)

  • 広告ネットワーク機能を利用する場合は広告ネットワーク機能を組み込んだアプリのリリース前確認も参照