リリースしたアプリのインストール数について

昨夏、立て続けにAndroid版「FX収支管理」「ギャンブル収支管理」「シンプル体重管理」をリリースし、1年が経過した。
各アプリのインストール数は下記のとおりである。
monacaを利用したアプリとしては、インストール数は多い方か・・・
ただし、思った以上に少なすぎたというのが正直な感想だ。

FX収支管理
2015/08/04 – 2016/08/20
2016082301
ホームページの検索キーワードで「FX 収支」は一番だが、インストール数はそれほど伸びていない。
おそらくiOS版のアプリを探してたどり着いたのではないだろうか。
機能としては、FX業者のCSVデータの取り込みに対応していない点が痛い。
これには理由があって、アプリのデータベース容量が小さいので、スキャルピングや複数業者利用など取引回数が多くなると、データが収まらなくなる恐れがあるため。
FX収支管理の理想的な形は、PCのソフトウェアまたはWebサイトから取引履歴を登録し、スマートフォンのアプリで参照する・・・ではないだろうか。

ギャンブル収支管理
2015/08/17 – 2016/08/20
2016082302
FX収支管理をチョロチョロっと改造して作ったのがギャンブル収支管理。
アプリ紹介サイトに掲載されてインストール数が増え始め、1年かかって2000インストール達成。
パチンコやスロットをやっている人から見ると、貯玉などの機能がないため、物足りないアプリかもしれない。

シンプル体重管理
2015/09/11 – 2016/08/20
2016082303
Google AdWordsでユーザー数は増えるか?」で記載のとおり、広告でインストール数を増やそうとしたが、評価★1★2を食らって数ヵ月も低迷を続ける。
しかし、6月あたりから突然インストール数が増え始め、ついに4倍増になってしまった。
原因はこれ。
「体重管理」で検索すると、企業相手に個人で開発したアプリが4番目に食い込むのだから、4倍増も当然か?
しかし、上位アプリが50万や100万以上のインストール数に対して、シンプル体重管理は1771しかない。
現在、シンプル体重管理 Ver.2を開発中なので、インストール数1万を目指そうかと思う。
2016082304

【Monaca】nend広告を一定の間隔で更新させる

Monacaでnend広告を一定の間隔で更新させることができるか挑戦してみた。
※注意事項
1.Monacaデバッガー上での動作確認であり、リリース版での動作については未確認。
2.広告更新後のバナーをタップした場合、収益が計上されるかについては未確認。
3.広告更新ごとに通信が発生するため、更新のタイミングやアプリの使用時間によってユーザーにパケット代の負担をかけることになる。
4.index.html上で動作させる必要がある。(8/14追記)

広告タグのスクリプト(nendAdLoader.js)が実行されると、複数の広告用タグが埋め込まれる。
スクリプトを動的に実行すれば広告を更新させることができるが、埋め込まれたタグを削除しないと更新ごとにタグが追加されてしまう。

広告表示テスト用広告コードを実行する。

すると、2行目(3行目の内容は省略)、10行目、11行目のタグが埋め込まれる。

広告を更新させるには、2行目(div)、10行目(script)に埋め込まれたタグ、動的にスクリプトを実行するために8行目(script)のタグを削除する必要がある。
※11行目は、一度削除してしまうと二度と埋め込まれなくなるので削除しない。

実際の広告コードに切り替えて実行すると、1分おきに広告の更新を確認することができた。
2016081301
     ↓
2016081302
     ↓
2016081303
     ↓
2016081304
     ↓
2016081305

※8/17追記
nendCommon.init()を実行すると、広告が更新(初期化)されることがわかった。

参考サイト – Monacaでnend広告のリフレッシュ方法について

ただし、10行目(script)に埋め込まれたタグは更新ごとに追加されるので削除する必要がある。
また、nendCommon.init()は一般には未公開のため、使用には要注意。

【Monaca】Onsen UI 選択したデータを前画面に渡す

JavaScript + Onsen UI V2版はこちら。

※Onsen UI + AngularJSを使用。

ons-navigatorpushPage()popPage()を利用すれば、次画面に進み、前画面に戻ることが実現できる。
しかし、次画面で選択したデータを前画面に渡す方法は記載がない。
$rootScope.$broadcast()を利用して親コントローラ(page1Controller)にデータを渡し、$scope.$on()で受け取ればよい。

Page1で「ここをタップ」をタップし、Page2で「1000」をタップすると、Page1に戻り「1000」と表示される。
2983291e-9b3c-42cf-b5bc-8094b371f7c9 4c4aee94-6c9d-419f-8ca4-138286fd7463 7693ddf9-229c-4d9f-8b0a-642ccabe47f2
Continue reading

一長一短!アドネットワーク比較

Monacaで開発したAndroidアプリの広告に、nend、i-mobile、Ad Generationのアドネットワークを利用している。
7月1日~29日までのインプレッション数、クリック数、報酬額を比較してみた。

2016073001

まずはi-mobile。
クリック数は高いが報酬額はかなり低いことがわかる。
例えば、11日はAd Generationとクリック数がほぼ同じに対し、報酬額は約1/4だ。
在庫切れなのか出会い系が多く表示される傾向があり、フィルタをかけると楽天カードが表示される。
平均クリック数7.7、平均単価3.6円と不満が残る。

次にAd Generation。
こちらはその日その日でばらつきがありすぎる。
クリック数がゼロの日もある。
Ad Generationは複数のアドネットワーク(ADPRESSO、Zucksなど)の配信比率を変更することができるが、おそらく在庫切れで同じ広告が表示されている可能性が高い。
平均クリック数4.1、平均単価7.7円と単価についてはまずまずか。

最後にnend。
1クリック0.15円などあまりにも単価が低すぎるため、7月10日~14日に配信を停止し、一部アプリは15日からバナー広告からネイティブアド広告に移行を行っている。
ネイティブアド広告は新規の単価が9円ということもあり、後半から巻き返しが見られた。
未対応のアプリも早めにネイティブアド広告に切り替えたい。
平均クリック数3.8、平均単価6.3円、2週間に限定すると平均クリック数5.5、平均単価7.5円。

i-mobileは、クリック数は稼げるが低すぎる単価が残念だ。
ただ、ほかが稼げない日でも稼いでくれるし、単価15円の日もあり、その点は捨てがたい。
Ad Generationは、アドネットワークの配信比率を調整してどう変わってくるか。
nendは、ネイティブアド広告に救われた感じ。
このあと低単価に切り替わったら、また新規で広告を貼り直すか、完全に切り捨てるか。

AndCが2016年8月にアドネットワークのサービスを終了するとのこと。
appCも4月に終了しているし、今後も撤退する業者が増えることが予想され、新たな収益化を考えた方がよさそうだ。

nend広告をバナーからネイティブアドに切り替える

20172602

前回、「nend広告に見切りをつけることにした」で既存アプリのnend広告の配信を停止したが、現在は再開している。
最新のバージョンではnendのバナー広告をはずした仕様だが、旧バージョンでは画面デザインの都合上、空白エリアが発生するため、1円でも収入が得られるなら・・・という理由で再開した。

しかし、再開の理由はもう一つある。
新しく広告を設置すると、単価9円から始まるという仕組みだ。
画像と説明文が表示されるネイティブアド広告を導入すれば、単価1~3円のバナー広告より収益アップが狙える、画面ごとにバナー広告とネイティブアド広告を使い分ければ効果的ではないかと考え、以下のように広告を設置した。
※バナー広告はi-mobileとAd Generation、ネイティブアド広告はnendを使用。

20172604 20172603

Monacaの場合、アプリを起動すると再起動するまで広告を更新させることができない。
※実際にできないことはないが、広告タグが実行するごとにタグが自動的に追加されるので、そのタグを削除する必要がある。
また、実現したとしても数十秒おきに通信も発生するため、ユーザーにパケット代の負担もかかる。

ユーザーに複数の広告を見てもらうには、今回のようにアプリ側でひと工夫すれば可能となる。

ホリエモンこと堀江貴文氏の著書「儲かる会社の作り方」という10年以上前の本に、「取引先を分散して貸し倒れリスクを減らす」という記述がある。

そのとおりだと思う。
私の場合、nendのほかにi-mobileを使用している。
単価はだいたい2~7円、まれに15円のときもある。
お互いのメリットやデメリットをうまくカバーできれば、リスクを減らすことができるだろう。

【Monaca】i-mobile広告を既存ブラウザで表示する

前回、nend広告を既存ブラウザで表示する方法を紹介した。

i-mobileの広告でも同じことができる?できない?
答えはできる。
スタック・オーバーフローなどでnend広告に関する質問がいくつか投稿されているが、基本的に広告がどのように表示されているか、掲載されたコードがどのように動いているか、確認されていない方が多いと思われる。

i-mobileの広告を既存ブラウザで表示するには、nendと同様のコードを利用することで実現できる。
divタグのid名をnend_adspaceからimobile_adspotdiv1に書き換えるだけで済む。
つまり、リンク先のaタグを探すために、親要素となるdivタグを指定している。

※nend、i-mobile共に320×50サイズのバナーの場合。

シンプル体重管理、ユーザー数が倍にwww

2016072002

リリース直後の低評価で低迷を続けてきた「シンプル体重管理」が、ここ2ヵ月の間にユーザー数が倍になった。
リリース直後の急騰は広告を出して獲得したもので、その後ずーっと横横が続き、6月あたりから急に上げ始めた。

2016072001

Playストアで「体重管理」と検索すると、上位8番目付近に表示されていることが原因か。
数あるアプリの中からインストールしていただき、やっと芽が出てきた感じ。
ユーザーが多くなると要望も多くなる。
広告なしのバージョンを作成してほしいという要望も出てきた。
さすがに現在のユーザー数で無料版・有料版と2つ維持するのはコスト的に厳しいが、なるべくユーザーの要望には応えていきたいと思う。

【Monaca】ncmb-push-monaca-plugin v2.0.0 ご利用の方は今すぐアップデートを!

2016040301

4月下旬ころに「ギャンブル収支管理」のユーザーからメールが届いた。
Playストアからダウンロードすると、「エラーコード-505」が発生するとのこと。
メールにてAndroid端末の設定や初期化などお願いしたが、解決できなない状況が続いた。
そして、Net Dreamers様の提供アプリ「netkeiba.com-無料で使える人気競馬アプリ」をインストール後に「ギャンブル収支管理」をインストールすると、「プロバイダの認証が重複しています」や「エラーコード-505」というエラーにより、インストールまたはアップデートできなくなる現象が発生することがわかった。

二つのアプリに共通する箇所について調査したところ、プッシュ通知ではないかと判断し、ncmb-push-monaca-pluginのリリースを調べてみたところ、v2.0.0の不具合による現象と判明した。

v2.0.1
変更点
Cordova 5.2環境でGoogle Play Service 8.3を利用している場合に、applicationIdが指定されていないことにより
Google Play Service 8.3を含むアプリケーションを複数インストールすることができなくなってしまうため、
プラグイン内部で使用するGoogle Play Serviceのバージョンを8.1にダウングレードしました。

現在、v2.0.2なのでv2.0.0を利用してアプリを開発した方は、早急なアップデートを行った方がよい。

nend広告に見切りをつけることにした

2016070201

monacaで開発したアプリにnend広告の設置は定番のような感じだが、実際にnend広告を設置してよかったのは最初だけ。
nend広告の単価が下がる理由」や「広告の収益が上がらない理由」でも書いたが、低単価の同じ広告ばかり配信されるためにクリック数も報酬額も上がらない状況が続き、最終手段としてi-mobileとAd Generationの広告を併用する仕組みに変更した。

そして先月6月に報酬額が0円という日が何度も発生したため、nend広告に見切りをつけることにした。

下図は今年1~6月までのインプレッション数、クリック数、報酬額のグラフだが、インプレッション数に対してクリック数と報酬額がどんどん下がっている。
1日1円も稼げない広告は掲載する意味がない。

インプレッション数
20160702i
クリック数
20160702c
報酬額
20160702p

現在、広告にi-mobileを採用している。
単価は平均3~72~7円。まれに単価15円もある。
さまざまな広告が配信されるため、同じ広告ばかりのnendよりは稼げる。

【Monaca】Nifty mBaaS データストアの検索条件に日付を指定する

2016061401

Nifty mBaaSのデータストアで利用可能なデータ型は、データストア(Monaca):基本的な使い方に記載されているとおり。

データストアで利用可能なデータ型

データストアでは、以下の値が利用可能です。

種類 サンプル
文字列 ABC
配列 [“orange”, “apple”, “grape”]
数字 123
日付 2013-09-06T01:51:03.606Z
真偽値 true または false
オブジェクト {“name”:”orange”}
緯度経度(位置情報) 33.857619,122.378986

検索条件「登録日時:createDateが一致」に日付を指定する場合、equalTo(“createDate”, “2016-06-14T12:00:00.000Z”)と日付型に従ってデータを設定しても何も返ってこない。

ドキュメントを隅から隅まで読みまくる。
・・・これか!!!
下記のようにデータを設定する必要がある。わかりにくいな。
REST API リファレンス 5.1 日付を参照。