お久しぶりです。新米クラウドエンジニアの大川です。

昨年10月にリリースされたスマホアプリ開発をラクにするmBaaS(mobile Backend as a Service)、
ニフティクラウドmobile backendが1月末にバージョンアップされたので、新しい機能を使ってアプリのアクティブユーザーを取り戻す方法を紹介したいと思います。

アップデートされた新機能について

1月末に追加となった機能は以下の3つです。

  • 位置情報検索
  • リッチプッシュ通知
  • 公開ファイル取得API

アプリをしばらく起動していない人を呼び戻すという想定の下、
新機能リッチプッシュ通知と公開ファイル取得APIを使って、
実際にプッシュ配信してみたいと思います。

Webページの準備

リッチプッシュ通知は、プッシュ通知を受信したあとに指定したWebページが開く機能です。
文字だけのプッシュ通知以上にユーザーの興味を引くことができます。
そのWebページを保存するのに、これまでは別のサービス・サーバーが必要でしたが、
新機能の公開ファイル取得APIを使うことで、mobile backendのファイルストアに
HTMLファイルを保存できるようになりました。

以下のようにHTMLファイルとWebページで使用する画像やcssをファイルストアにアップロードします。

ファイルストアにあるものは、HTMLファイルから相対パスで

<p><img src="./kuma.png" alt="くまさんからのお知らせ"></p>

と記述することで参照可能です。(通常のサイトと同じです。)

アプリケーションの設定で、公開ファイルのHTTPS取得を有効にしておきます。

プッシュ通知の準備

プッシュ通知を配信するための準備として、2つの手順が必要です。

1.GCM/APNsと連携するための準備
2.アプリでプッシュ通知を受信する準備

具体的な方法については今回の記事では割愛しますが、
mobile backendのドキュメントで確認することができます。

リッチプッシュ通知はWebページの通知画面が開くものなので、
例えばゲームをプレイ中にリッチプッシュ通知を受信してそのまま展開する
処理を書いてしまうと、非常に邪魔な機能となってしまいます。

以下はiOSアプリでのリッチプッシュ通知の受信処理を記述している部分ですが、
リッチプッシュ通知を受信したときに、アプリがバックグランドにいる場合だけ
Webページを表示するようにしています。

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{
    if ([userInfo.allKeys containsObject:@"com.nifty.RichUrl"]){
        if ([[UIApplication sharedApplication] applicationState] != UIApplicationStateActive){
            [NCMBPush handleRichPush:userInfo];
        }
    }
}

また、リッチプッシュ通知を受信してからアプリを起動したときにも
Webページを表示したい場合には、以下のようにします。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{

    (略)

    [NCMBPush handleRichPush:[launchOptions objectForKey:@"UIApplicationLaunchOptionsRemoteNotificationKey"]];

    return YES;
}

リッチプッシュ通知を配信

アプリ側での準備が整ったら、いよいよリッチプッシュ通知の配信です。
重要なポイントは、2つです。

URLの設定

プッシュ通知の配信画面に、URLを設定する部分があります。

ここで、ファイルストアに保存したHTMLファイルを指定するのですが、
以下のようなURLとなります。(参考)APIリファレンス

https://mb.api.cloud.nifty.com/2013-09-01/applications/(アプリケーションID)/publicFiles/test.htm

URLの途中に出てきたアプリケーションIDは、
mobile backendのダッシュボードを開いた時のブラウザーのアドレス欄からコピーしてきてください。

配信端末の絞り込み

今回は、アクティブユーザーを取り戻すことが目的なので、
数日間アプリを起動していない端末に向けて、プッシュ通知を配信します。

配信端末の絞り込み設定で、updateDate(最終更新日)がある日時より過去の端末を絞り込むと、
アプリをしばらく起動していない端末を指定することができます。
(ほかにも、アプリのバージョンが古い人のみへの配信など、細かい設定が可能です。)

設定が完了したら、プッシュ通知を配信してください。
以下のようにプッシュ通知が受信され、そこからアプリを起動すると
ファイルストアのWebページが開くようになっています。
(キャラクターが話しかけているようなページや、キャンペーンページを表示させるといいかもしれません。)

このように、リッチプッシュ通知機能と公開ファイル取得APIを利用し、
mobile backendだけでアクティブじゃないユーザーに対してリッチプッシュ通知を配信することができました。

ほかにも新機能として位置情報検索が可能となり、
機能も充実してきましたので、いろいろなアプリケーションを簡単に
作っていってもらえればと思います。

Basic プランは無料でご利用いただけますので、ぜひお試しください。

本コラムは、ニフティ株式会社HPに掲載されている「ニフティクラウド ユーザーブログ」より転載したものです。