前回、AppStoreに依存しないメディアの価値という記事を書きました。

ただ、アプリ宣伝にはやっぱ自分のアプリ内で宣伝するのが効果あるなという話になってしまった。

ブログ、Twitter、メルマガなどは、AppStoreに依存しない長期的な資産になるけど、とりあえず今回はアプリ内で他のアプリを宣伝する方法を考えてみる。

これは、アプリが全てリジェクトされたら終了なので、AppStoreに思いっきり依存するのだが。。

アプリ内でスマートに宣伝したい

さて、スマートに宣伝するというのは、スパムにならないように宣伝するとも言い換えられる。このバランスが非常に難しいので、常に気を使わないといけないけど、いろいろ考えました。

まず、自分のアプリの例でいうと、それぞれのアプリの設定画面に、「開発者のアプリ」というボタンを設定してる。このボタンをタップすると、自分のアプリ一覧が表示される画面が出る。

こうやって、ささやかながら、よければこんなのも作ってるから、ダウンロードしちゃってくださいねという動線をこしらえているわけです。

ちなみに、設定画面の奥底に設置しているだけでも、意外にコアなユーザは他のアプリも試してくれたりする。なぜかというと、Zenyのレビュー欄で、こんな書き込みがよくあるから。

「この作者さんのアプリは使いやすい!もうひとつのListTimerも使ってます!」

こういう書き込みを見ていると、うーむ、やっぱり親和性の高いアプリだと、どっちも使ってくれる人が多いんだなという印象を持った。

でも、設定画面の奥底の「開発者のアプリ」みたいなボタンをタップして、他のアプリまで覗いてくれる人は少ないと思う。

なので、ここはもっと、こちらから知らせたい!というのがこっちの理屈なんだけど、どうすればよいか。

プッシュ通知?

まず、思いつくのがこれ。プッシュ通知で他のアプリをオススメする。

ただ、これ、そもそもアップルの規約でプロモーションに使うのは禁止ってあるんですよね。あんま守られてない気もするけど。

さらに、プッシュ通知て、プッシュ通知の許可を取ってないといけないし、アプリがバックグラウンドにある時にお知らせされても鬱陶しい。

というわけで、プッシュ通知はボツにしました。

アプリを開いた時に宣伝する

例えば、Zenyをある程度の期間使ってくれている人に、アプリを開いた時にListTimerを紹介する、というようなダイアログを出したい。

もちろん、紹介するアプリであるListTimerをすでにインストールしている人は覗いて。

例えば、ListTimerがアップデートしてさらに便利になったタイミングとかだと、紹介する理由がちょっとできてやりやすい。

先日Lineを開いてたら、Line Musicの宣伝が出てきたんだけど、イメージとしてはこんな感じ。

ただ、こういう機能って、サーバ側からの操作が必要なので、サーバーサイド用意しないといけないんですね。自分でサーバーサイド準備するの面倒じゃないですか。

みんなが欲しがるような機能はすでに誰かが作っているはずだ。

ちなみに、昔Githubでこのものズバリのライブラリを見た気がするけど、探し出せなかった。。なんだっけなあと調べていると、一番使いやすそうな機能をMixpanelが提供してました。

MixpanelのIn-App-Notifications

MixpanelのIn-App-Notifications。これがそのものズバリです。

他のアプリの宣伝にも使えるし、その他の重要な通知にも使える。最新版にはバグがあるので、こちらを参照してねとか。

画像とボタン付きのポップアップをアプリ内で表示できる。こりゃ便利。というわけで、ここからはMixpanelのこの機能を紹介していこうと思う。

表示の仕方は2つあって、「Fullscreen」と「Mini」。

正直の写真では画像、タイトル、詳細、ボタンとカスタマイズしているFullscreenのほう。Web上ですごくカスタマイズしやすい。ボタンをタップすると、特定のページに飛ばしたり、deeplinkでアプリの特定の場所に飛ばしたりできる。

今回は、AppStoreのダウンロードリンクに飛ぶようにしてみた。これをアプリ内でポップさせるとこのような感じになる。

ちなみに、「Mini」のほうは、アプリの下にメッセージだけ表示できるもので、任意の秒数がたった後に勝手に消える形式。閉じるボタンをタップしないと消えない設定にもできる。

ただ、モーダルとか、アプリ内で画面転移しても自動で消えるので、なにかの操作中に、ぴょこっと下にでて、気づかないうちに画面転移しちゃって同時に消えてしまうという可能性があるので、そこがネックですね。

セグメントする

Mixpanelの便利なところは、闇雲に全員に出すのではなく、ちゃんとセグメント区切ってポップを表示させることができる。

例えば、最近、数日の間にアプリを開いているユーザだとか、英語のメッセージを表示させたいから、言語が英語設定の人だけとか。

僕の場合、ListTimerから家計簿プリのZenyを宣伝する場合、すでにZenyをインストールしている人には宣伝を表示したくない。

この場合、Mixpanelにはpeople設定というのがあり、ZenyのURLスキーム使って、アプリをすでにインストールしているかどうかをAppDelegateで下記のようにチェックしてみた。

// Set indetify and people profile to use in-app notifications
[mixpanel identify:mixpanel.distinctId];

// Check if Zeny installed
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@”zeny:”]]) {
[mixpanel.people set:@{@”Zeny”: @”Installed”}];
} else {
[mixpanel.people set:@{@”Zeny”: @”NotInstalled”}];
}

このコードを書いておけば、Mixpanelのページで後からセグメントが切れる。

国が日本で、なおかつListTimerをインストールしてない人にMixpanel内でセグメント区切るとこんな感じになる。

ちなみに、一度送ったメッセージは同じ端末には送らないようになっているので、重複して送信しちゃうこともないらしい。こりゃ便利。

ついにで、宣伝ポップを表示して、ボタンをタップした割合が何パーセントだとか、そういう分析もAnalyticsで出来る。iTunesのAnalyticsリンクと組み合わせたら、実際にアプリをインストールまで行ったコンバージョンも測れそうだ。

無料では26,000デバイスまで

こんなに便利なMixpanelだけど、基本は有料サービスなので、無料だと制限がある。

このIn-App-NotificationsはMixpanelのPeopleっていう端末毎にセグメントする機能を使わないと送れないんだけど、このPeopleの数が制限あるんですよ。

価格表はこちら。https://mixpanel.com/pricing/#people

このMixpanelパートナーってのは、自分のHPにmixpanelのリンクを設定したら簡単になれるから、tumblerでも登録して、適当にリンクを貼ればOKなゆるいもの。

なので、実質26,000デバイスまでが無料での制限となる。

これ、月に26,000の制限だから、毎月ユーザー追加していけるって意味なのか?とも思って、メールしてみたけど、やっぱり、最大の端末数が26,000であって、それ以上は無料では追加できないようだ。人生そう甘くなかった。

うーん、50,000まで使えるのが一番安い有料プランなんだけど、月に$150はこれだけのために出せないかなあ。

実際に自分でやってみて、どの程度の訴状効果が生まれたかとかをまた書いてみたいので、このシリーズは続くはず。

ちなみに、Mixpanelなどのデータ分析に興味ある人は、LeanAnalyticsについてこちらの記事もどうぞ。
虚構の数字と改善に繋がる数字


*確定申告を楽にするTaxnoteなど作ってます。自己紹介はこちら。プログラマもゆる募