[過去のお天気検索] メディアの力

「過去のお天気検索」アプリのインストール数が、ある日いきなり上昇しました。

何があったのかと色々検索してみたところ、ZIPで「過去天気」というiPhoneアプリが紹介されていた模様。そのお陰で私のアプリもインストール数が増えたようです。意図せぬ広告効果ですね。テレビの力って恐ろしい。。。

 

過去のお天気を検索できるアプリ 過去のお天気検索は下記からダウンロード

[Android] 過去のお天気検索

アプリ開発をはじめて一年の収益について

さて、実際にアプリ作成を一年ほどやってみてどの程度収益が出たのかも含めて振り返ってみようかと思います。

まず作成しているアプリはAndroidのみで、この一年で公開したアプリは12個です。

後半はまったく新規公開も更新もしていないので前半半年しかアプリ開発できませんでした。少しずつでもコンスタントにしていないと、忘れたり新しいことについていけなかったりとリハビリが大変です。反省。

さて、広告収入ですがAdmob一本です。以下は2016/2/23にAdmobに登録してから一年間の収益です。

開発したアプリのうち10個にAdmob広告貼り付けてます。収入は1年で12,533円。開発時間で割るとコスパ悪すぎですが収入があるということがまずは嬉しいですね。ただこれで食べていくのはまだ無理です。

ダウンロード数と収入は比例していません。アプリがアクティブな時間や広告表示のタイミングなどにもよるので、このあたりは今後解析して改善する必要があります。

一年経ったもののまだまだ開発始めたばかりの初心者なので、今後もアプリの数を増やすことを目標にしていこうと思います。あとは、審査が大変らしいということでiPhoneアプリを敬遠していたのですが、Unityで作ったアプリならそのままiPhone用にもビルドできそうなのでiPhoneアプリ開発にも手を出してみようかなというところです。

とりあえず年間の収益を10倍にしたい。→10倍アプリを作ればいい。ということで目標は100個アプリを作るというところですかね。アプリ開発に取れる時間が激減してしまいましたが、月一公開を目標にがんばろうと思います。

[Unity] タップを取得

備忘録。半年くらいUnity触ってなかったら全部忘れてた。人ってすごいね。

Unityでタップを取得する場合は下記。

空のオブジェクトでも作ってスクリプトを割り当てればテストできる。

 

参考:

https://unity3d.com/jp/learn/tutorials/topics/mobile-touch/multi-touch-input?playlist=45798

https://docs.unity3d.com/ScriptReference/Touch.html?_ga=2.133886541.23970780.1495464928-455626883.1490587154

[ On Your Mark -陸上スタート練習- ] 1000ダウンロード突破!

陸上スタート練習アプリ、On Your Markが1000ダウンロード突破しました!

パチパチパチパチ!!

ゆっくりですが伸びていってます。嬉しい限りです。

気になるのは、ダウンロードされている国が日本に大きく偏っていることですね。

たぶん英語版の名前を変えたら海外でも伸びるんじゃないかと試してみていますが、まだ効果はありません。色々試してみよう。

[Unity] 直方体を転がすスクリプト

以前、Cubeを転がすスクリプトについて記事を書きましたが、ご要望があったので、直方体を転がすスクリプトに書き換えました。もちろん下記のスクリプトでCubeも転がせるので、より汎用性を増した形になります。

 

 

スクリプトは以下。

 

Cubeを作って、Transformのscaleでサイズを変更して、上記のスクリプトを付与すればOK。(というか、それ以外は想定していない。)

大きな変更点は、回転半径と回転をスタートするときの角度を計算するようにしたところです。Cubeの場合、回転半径も角度もどの方向に転がっても同じなので固定(半径は辺の長さ×(√2)/2、角度は45°)にしていましたが、それを回転方向と直方体の辺の長さから計算するようにしています。

Objectの向きと回転方向は90行目以降のif文で求めていますが、方法としては移動する向きのベクトルとObjectの向きが同じであれば内積が1になるはずなので、その性質を利用して進行方向と面に垂直な方向を求めています。判定が”==1″でなく”>0.99″なのは、数値計算の誤差でピッタリ1にならないことがあるので、”>0.99″を使っています。

パッと思いついた方法でとりあえず書き換えたので、もっといい方法があるかもしれません。

 

サイコロを転がすパズルゲームColorful Diceを下記からダウンロード

【Android】Colorful Dice -カラフルでポップなサイコロパズル-

コインのオモテウラ

ふと思ったんですが、コインの表と裏って表が出る確率も裏の出る確率も等しく1/2ですよね。屁理屈無しに単純に考えると。じゃぁ連続して表がでる期待値ってどれくらいなんだろうかと。例えば、

連続で表が出た回数×100円もらえますよというゲームを提供したとして、1回何円で提供したら親は得するのか?

ということなんですが。なんか数学の問題でありそうですよね。教科書とかに載ってたりするのかな?覚えてないけど。

ってことでちょっと計算してみます。間違ってたら誰か教えて。

 

とりあえず、簡単のために表が出た数×1円もらえることにします。

0回連続で表が出る(いきなり裏がでて終了する)確率は、「裏」だから、

\frac{1}{2}

1回連続で表が出る確率は、「表・裏」だから、

\frac{1}{2} \times \frac{1}{2} =\frac{1}{2^2}

2回連続で表が出る確率は、「表・表・裏」だから、

\frac{1}{2} \times \frac{1}{2} \times \frac{1}{2}=\frac{1}{2^3}

3回連続で表が出る確率は、「表・表・表・裏」だから、

\frac{1}{2} \times \frac{1}{2} \times \frac{1}{2} \times \frac{1}{2}=\frac{1}{2^4}

n回連続で表が出る確率は、「表・表・表…・表・裏」だから、

\frac{1}{2^{n+1}}

ですよね。ってことで、期待値ってこの確率にもらえる金額かけて、その総和を取ればいいはずだから、期待値Eは

E = \sum\limits_{n=1}^{\infty} \frac{n}{2^{n+1}}

これって収束するんだろうか・・・?

ちょっといきなり無限大が出てくると僕にはレベルが高いので、まずは、

S_n = \sum\limits_{k=1}^n \frac{k}{2^{k+1}}

としてSnを考えてみます。

S_n = \frac{1}{2^2}+\frac{2}{2^3}+\frac{3}{2^4}+\cdots+\frac{n-1}{2^n}+\frac{n}{2^{n+1}}

を求めたいのですが、とりあえず、両辺1/2してみると

\frac{1}{2}S_n = \frac{1}{2^3}+\frac{2}{2^4}+\frac{3}{2^5}+\cdots+\frac{n-1}{2^{n+1}}+\frac{n}{2^{n+2}}

となるので、上記の2つの式の差分をとると、

\frac{1}{2}S_n =\frac{1}{2^2}+\frac{1}{2^3}+\frac{1}{2^4}+\frac{1}{2^5}+\cdots+\frac{1}{2^{n+1}}-\frac{n}{2^{n+2}}

つまり、Snは、両辺に2をかけて、

S_n =\frac{1}{2}+\frac{1}{2^2}+\frac{1}{2^3}+\cdots+\frac{1}{2^{n}}-\frac{n}{2^{n+1}}

となりますね。ここで、

\frac{1}{2}+\frac{1}{2^2}+\frac{1}{2^3}+\cdots+\frac{1}{2^{n}}

の部分は、初項1/2、公比1/2の等比数列なので、

S_n = 1-\frac{1}{2^n}-\frac{n}{2^{n+1}}

で、ここでn→∞で収束するかってことですよね?

明らかに1/2^n→0なので、最後のn/(2^(n+1))がどの値に収束するかなんですが…。んー、どうやるんだっけな?こんな時に頼りになるGoogle先生。どんな時でもGoogle先生は僕達に優しく教えてくれます。

どうやら二項定理を使えば解けるようですね。二項定理なんてやったかなぁ?ま、とりあえずやってみます。

n>=2の時、

2^n = (1+1)^n = 1 + {}_n C_1+{}_n C _2+\cdots+{}_n C _n

\geqq 1 + {}_n C_1+{}_n C _2

= 1+n+\frac{n(n-1)}{2} 

となる(nC2までで打ち切って不等号で整理する)。つまり、

\lim\limits_{n\to\infty}\frac{n}{2^n} \leqq\lim\limits_{n\to\infty} \frac{n}{1+n+\frac{n(n-1)}{2}}

ここで右辺は、

\lim\limits_{n\to\infty} \frac{n}{1+n+\frac{n(n-1)}{2}} =\lim\limits_{n\to\infty} \frac{1}{\frac{1}{n}+1+\frac{n-1}{2}} = 0

なので、((n-1)/2→∞なので)

\lim\limits_{n\to\infty}\frac{n}{2^n} = 0

となる。よって、期待値Eは、

E = \lim\limits_{n\to\infty} S_n = 1 - 0 - \frac{1}{2} \times 0 = 1

となる。

ということで、統計的には

表の出た回数×100円あげるよっていうゲームをする場合、1回100よりも高い金額で提供すれば、親が儲かる

ってことですね。…でいいのかな??なんか自信ない。

 

ということで、自分でプログラム組んで確認してみました。

  • 10000人のお客さんにコインの表裏ゲームをしてもらう。
  • 裏が出たらその人はゲーム終了。
  • 表が出た数×100円がもらえる。

で、お客さんの平均取得金額を計算しました。作ったコードは下記(C++)

で、出てきた結果を下記にまとめてみます。とりあえず上記のプログラムを5回走らせて、結果を全て同じグラフに載せています。

graph

横軸がお客さんの数、縦軸がお客さんがゲットした平均取得金額です。横軸は対数グラフにしています。

これを見ると確かに100円に収束していってますねぇ。どうやら上記で求めた期待値100円は正しそうです。

一回150円くらいですれば、お客さんがのべ100人いればほぼ間違いなく利益が出そうです。10人だと損することもあるかも。上記は5回の結果なのでお客さんの数が少ない時のばらつきがどの程度になるかは不明です。

Firebase Analytics

ここ数ヶ月Admobのトップ画面にFirebase Analyticsがずっと表示されてるし、今後Firebaseに移行するとか書いてあるし、よくわからんけど使い始めてみました。

いろんなサイト見てはいるけど、まだイマイチよくわかってないです。多分、自分のアプリがいつ起動されてるとかそういったことを分析できるんだと思っていますが・・・。

以下、覚書。

  1. Admobで広告を作るときにFirebaseと連携を選んで、google-service.jsonをダウンロードして、appフォルダに入れる。
  2. ルートのbuild.gradleに以下を追記
  3. appのbuild.gradleに以下を追記
  4. Admobの実装は今までどおり。
    https://developers.google.com/mobile-ads-sdk/docs/admob/android/quick-start?hl=ja

 

これまでは、build.gradleにcompile ‘com.google.android.gms:play-services:6.+’って書いてましたたけど、この部分がfirebase-adsで同じ動作するということですかね。よくわかってないですけど。

UnityのAdmob + Firebaseに関してはまだ調べきれてないのでわかりません。

 

【参考】

https://firebase.google.com/docs/android/setup

Android StudioでFirebaseを利用する

https://developers.google.com/mobile-ads-sdk/docs/admob/android/quick-start?hl=ja

http://gigazine.net/news/20160519-firebase/

Dodge Blocks

新しいアプリ公開しました。

 

とってもシンプルなカジュアルゲームです。
ちょっとした時間の暇つぶしにピッタリ。

ブロックを避けながら、キャラクター(くろすけ)をゴールまで導いてください。
画面をタップするとくろすけがジャンプします。

全10ステージ。なかにはちょっぴり難しいステージも。
君は全ステージクリアできるかな?

 

ジャンプでブロックを避けながらゴールを目指す、シンプルカジュアルゲームDodge Blocksは下記からダウンロード

【Android】Dodge Blocks

[ On Your Mark -陸上スタート練習- ] 100ダウンロード突破!

陸上スタート練習アプリ、On Your Markが100ダウンロード突破しました!

パチパチパチパチ!

たった100かもしれないけど嬉しー。僕にとっては大きな100です。

100ダウンロードのアプリを100個作ったら10000ダウンロードですからね!

 

 

1ヶ月かけてやっと作ったゲームが10ダウンロードいかないかと思ったら、思いつきでぱっと2,3時間で作ったアプリが100ダウンロード超えたりする。

マーケティングって重要だなぁと実感させられる瞬間です。

こういう感覚、アプリ開発してないと実感できなかっただろうから、世の中の会社は逆に社員に副業を課すべきじゃなかろうかと思ったりする。リクルートとかはそういうことしてるイメージだけどどうなんだろ?

今年はアプリ開発1年目で、思いついたものを作ってスキルをあげることを目標にしているので、そういうところはあまり意識せずにやってます。来年からはそういうことも考えながらすすめてみようかな。

 

陸上スタート練習アプリ、On Your Markは下記からダウンロード

【Android】On Your Mark -陸上スタート練習-