サンダーボルト

相手モンスターを全て破壊する。

Wishesアプリの戦略立案・KPIの現在の値を調査した

モチベーション

この記事でKPIツリーを作ったので、各KPIの現在の値を調べることにした。そのログ。

ツリーに沿って調査

f:id:nao_666:20200528135335p:plain
KPIツリー

とりあえず調査してみました。するとまぁ今のアナリティクスでは値がいろいろ取れてないことがわかってきました。具体的には

  • そもそもAnalyticsの「アクティブユーザー」の定義が微妙
    • アクティブ ユーザーとはアプリをデバイスのフォアグラウンドで使用し、user_engagement イベントを記録したユーザーのことらしく、自分としては自分のアプリはログインしないと使えないものなので、ログインしたユーザー数を知りたい
  • MAUのうち、どれくらいが新規ユーザーでどれくらいが既存ユーザーが分からない
    • 新規はfirst_openイベントでざっくり集計できるが、ログイン前に離脱している人もいるはずなのできちんと知りたい
  • 起動後、ログインした率が不明
  • 1回起動あたりの平均起動時間が不明
    • たぶん不明。。1日あたりのエンゲージメントはあるんだけどなぁ

主なところはこの辺で、このあたりがまともに算出できないと、目標を達成しているかどうかさえ判定できません。なので、次のアップデートでは、このあたりを知ることができるようなAnalytics系のログを仕込もうと思います✌

どういったログを仕込めば良いかが見えてきて、いい感じだ。やってくぞ〜〜

Wishesアプリの戦略立案・KPIツリーを作ってみる

モチベーション

Wishesというウィッシュリスト(やりたいことリスト)管理アプリを作っているのですが、そのアプリを戦略的に成長させたいので、まずは売上をKGIとしたKPIツリーを作ってみることにした!

KGI

KGIとはKey Goal Indicator(=重要目標達成指標)のことで、こいつをツリーの頂点として、KPI(Key Performance Indicator)に分解していく。弊アプリでは現在売上はAdmobのクリック報酬そのものなので、それを分解していく。

KPIツリー

とりあえず作ってみました!

f:id:nao_666:20200528135335p:plain
WishesアプリのKPIツリー

基本的には全て掛け算で分解してますが、MAU以下の新規ユーザーと既存ユーザーだけは足し算になっています。AndroidiOSはツリーとして表現されていないので、そこも今後実際の値を調べるときは意識しないといけません。

KPIツリーができたので、今後は各KPIについて目標を立てて、それを達成するにはどうすべきかを考えていこうかと思います。ただ、目標を立てると言っても、相場が全く分からないので、現在のWishesアプリの各KPIの値を調べるところからかなぁと思っています。

次は

ということで、次はこのツリー上にあるKPIの現状の値を調べてみることにします!

Admobについての調査

モチベーション

弊アプリの売上を増加させたくて、真面目に取り組もうと思った矢先、自分がAdmobについて知らなさすぎることがこの記事を書くことで発覚したので、きちんとAdmobについて調べてまとめるぞ!

Admobの報酬型

広告には基本的にクリック報酬型インプレッション型があります。

クリック報酬型 広告をクリックしたことで報酬が発生
インプレッション型 広告の表示回数によって報酬が発生

Admobはどちらにも対応しているのか、それとも一方だけなのか。調べると

現在のところ、インプレッション単価制のバナー広告とインタースティシャル広告のご利用は、一部のパブリッシャー様に限らせていただいております。 (中略)

...インプレッション単価制の広告やインタースティシャル広告を掲載する要件を満たしている場合は、Google の AdMob チームからお客様へ直接ご連絡いたします。 (https://support.google.com/admob/answer/9680863?hl=ja)

とありました。他にも色々調べたんですが、

アプリに表示された広告のクリック数、表示回数、その他のインタラクションに基づき、Google や第三者広告ネットワークから収益を受け取ることができます。 (https://support.google.com/admob/answer/7356092?hl=ja)

くらいの情報しか見つけられませんでした。最初に挙げた2つ以外の報酬の型が存在する可能性もありますが、インプレッション型が無い(自分は連絡が来ていないから)となれば、基本的にはクリック報酬型と考えて良さそうです。だから、今後はAdmobの報酬を考える際はクリック報酬型として計算等していこうと思います。

(追加調査) Admobのレポートを見ていたのですが、弊アプリでは、ある時期にクリック数0回で1円の収益が発生していました。ただインプレッション型という連絡ももらっていないので謎ですが、ただまぁ130回の広告表示で1円の収益というところで、かなりインパクトが弱いのでやはり無視しようと思います。

クリック単価と業界の関係

投資とか不動産とかの広告はクリック単価が高いらしい、ということを聞いたことがある。どういうことか調べてみる。

まず、自分の日次収益の一部を抜粋すると、以下のような状態だった。

見積もり収益額 クリック数 報酬/クリック数
9円 1回 9円/回
31円 3回 10.3円/回
44円 3回 14.7円/回

やはりバラつきはあるみたい。仕組みとしては、広告を掲載したい人がGoogleにお金を払う。その払った金額が弊アプリの広告収入になるので、つまりこのクリック単価の話をするためには、広告を掲載する側の話が欠かせない。というわけで、Google広告から自分が広告を作ろうとしてみた。すると以下の画面にたどり着いた。

f:id:nao_666:20200525223653p:plain:w400
宣伝するサービスのジャンルを設定
f:id:nao_666:20200525215102p:plain:w400
広告予算設定ページ

宣伝したいものを「スマホアプリ」と仮定して、アプリの予算を設定するページを見てみると、上記のような3つのプランが出てきた。試しに一番上のコースで単価を計算すると、

42,600円/((510回 + 870回)/2)=61.7円/回 となる。

では今度は、単価が高いらしいお金に近い業界で設定してみる。

f:id:nao_666:20200525221727p:plain:w400
「不動産」をサービスとして設定
f:id:nao_666:20200525221808p:plain:w400
不動産広告の予算

一番上のコースで単価を計算すると、

30,400/((70回 + 130回)/2)=304円/回!!となる!!高い!

こういった業界の違いでやはり単価が変わってきているんですね。業界によって広告にかけられる予算が違うから、その違いがそのまま広告のクリック報酬に響いているというのがこれを見るとよくわかりました。

結局、たしかに噂通り業界によって単価が違いそう、というのは分かったけど、これはそもそも存在するはずの「単価決定ロジック」の結果導かれた結論なだけで、根本のロジックはまだ全然追えていない。ということで、単価決定ロジックをもう少し追いたい。

表示される広告とクリック単価の決定ロジック

クリック単価の決定ロジックを追うには、まず表示される広告がどう決まるかを調べる必要がありそうなので、そこを調べてみる。

  • ユーザーに興味のあるものがいい感じで表示されるらしい
  • どの広告を表示するかはオークションにて決めるらしい

ということは聞いたことがあった。で、色々探すと以下のページにたどり着いた。

support.google.com

👆には表示する候補となる広告を選ぶ、「広告のターゲティング」について書かれていて、簡単にまとめると

コンテンツターゲティングページに表示されているコンテンツに合った広告
プレースメントターゲティング広告主が掲載先を自分で指定
パーソナライズドターゲティングユーザーの興味や関心に合わせた広告

という感じ(ネットワーク掲載ターゲティングは省略)。まぁなるほどなぁって感じだ。ただちょっと気になるのは、このページはadsenseのページなんだけど、Admobでも同じようにターゲティングされるのかな?って思っていて、特にコンテンツターゲティングはモバイルアプリでは難しいのでは??と思った。そして調べると、、、

support.google.com

それっぽいのを見つけた。つまり、広告をAdmobで表示する際に、そのアプリの画面と対応するURLを渡せば、そのURLのページの内容に合った広告をモバイル側に表示してくれる、というものっぽい。なるほどなぁ〜〜〜という感じ。どうでも良いけど、👆のページの最下部あたりにあるソースコードのサンプルフォーマットひどすぎるwww

f:id:nao_666:20200526222836p:plain:w600
インデント等がひどすぎるAndroid用のサンプルコード

さて、こういった方法である広告枠に表示する広告の候補一覧が決まったら、オークションによって広告が決まる。この記事が詳しかった。

support.google.com

クリック単価の調査にはあまり関係無いけど、例えば100円で入札した人と300円で入札した人がいたとして、結局300円の方が落札するんだけど、支払額は101円となる仕組みはめっちゃ面白い!普通オークションって設けたいから言い値を払わないといけないけど、かなり親切設計になってる。

という感じで、実際にはいくら払うかってのは他の広告主とのオークションで決まるから、最初にGoogle広告で試したときも、あくまで「予算」だったんすね。

クリック単価の話に戻すと、この広告主が支払う金額の何%かがもらえる感じなんでしょうね。

まとめ

クリックの単価決定や、表示される広告の候補を絞り込むロジックはやはりざっくりとしか説明されていないので、これくらいが調査の限界かなぁという感じ。結論としては、

結構知識も増えてきたし、再度どうやったら売上を増やせるか考えてみようかな!!

Wishesアプリの現状分析はじめの一歩 〜スタートラインに立てていなかったの巻〜

モチベーション

アプリの収入が、月あたり数十円とか100円とかの域を超えて、1000円/月くらいを狙えるようになってきた。大きな理由は広告をある特定の画面にだけちょこっと出していたものを、常時上部に出すようにしたから。

誤差で儲かっていたのと違い、それなりの金額が入るようになったので、そろそろ真面目に分析してきちんとアプローチして、売上を増やす努力をしていきたいと思った。

その一歩として、初めにどのように現状を分析すべきかから考えたい。このブログはその考えをまとめるものである。

アプリの売上目標

アプリだけで食べていける、という基準から月20万円を目標としたい。現在は月1000円(2020/5/24時点での予測値)なので、その200倍ということになるが、これをどうにか正しくアプローチし続けることで達成したい。


・・・正直、この目標の根拠はそこまでしっかり詰められていない。なんとなく、20万円くらい稼いでいれば最悪会社クビになってもしばらくはどうにかなりそうだし、日々の行動に余裕が生まれるかなぁと思った。とりあえず目標立てるといろいろ計算できるようになるし、立てようかなと。 ちなみに余談だけど、月20万円あれば1000万円の車を5年ローンで買うことも可能なのだ✌NISSAN GT-R欲しいのだ🚗

月20万円を達成するには

売上の基本式

Wishesは現在広告収入が唯一の売上をあげる方法である。 基本的には広告がクリックされた回数によって売上が決まるので、

売上 = クリック単価 × クリック回数

となる。

クリック単価

広告によって変わる、、、らしい。。。 少しFirebase Analyticsを見てみると1クリック30円くらいのものもあれば10円くらいのものもありそう。

クリック回数

クリック回数は以下の式で表す事が可能である。

クリック回数 = 画面起動時間 × 単位時間あたりのクリック回数

つまり、起動時間を長くするか、クリックの頻度を上げることが必要。

分析すること

本当は、この先、単価と回数を深堀りして、その後ストア検索率、ダウンロード率、起動率、継続率、とかそういった話を展開していくつもりだったけど、そもそも広告について自分が知らなさすぎることにこの記事を書きながら気づいた😅

売上 = クリック単価 × クリック回数

って書いたくせに、そもそも単価のことを自分が分かってなさすぎる😅 しかも、クリックしなくても収益が発生する広告もあるし。Admobがそれを導入しているかどうかさえ知らない。そうなると👆の式がいきなり変わってくる。そんなことでまともな戦略が練られる訳がない!

つまり、分析を始める前にそもそもの広告収入のことについてしっかり調べることが大事だという結論にこの記事を書きながらたどり着きました!たくさん調べて理解したらまたそれも記事にまとめよう。

大層に分析するぞ!とか息巻いといてそのスタートラインにも立っていないことを自分で気づくための記事でした。おしまい👋

Activity Log(2020年5月 第4週)

この記事は何?

技術に関する個人的な学びやアウトプットをまとめたもの。

インプット

公式ドキュメントや本など

を読んだ

その他記事

なし

アウトプット

ブログ

開発

  • Angularのng serveをVSCodeデバッグ実行することに挑戦。実行はしてデバッグは止まるようになったが、起動時にまだ落ちてしまい、localhost:4200はまだ開かない。
  • Wishesにて、iOSで写真へのアクセス権限のダイアログの言語が不整合になっていた問題を修正(iOS審査に落ちた要因)
  • Wishesにて、v1.6.0のリリースが完了!!🎉🎉🎉
  • 今一度、Wishesの企画について考え、一枚にまとめた(現時点では非公開)

まとめ

  • インプットの時間を意図的にとる工夫をして、Angularの勉強ができた
  • また、アプリを科学的にアプローチして成長させたいと思い、アプリマーケの本を一冊読んだ。
    • これの影響で企画をきちんとまとめようと思えた。
    • また、今後どの数字を終えば良いかの参考にもなった。たぶん何回も振り返って読みそう

勉強したいこと

モチベーション

最近ActivityLogのブログを書いてると、自分はアウトプットばかりだなと感じていて、生涯年収のことを考えると、インプットも大事だなと思い、ではインプットするならどういうことをすべきかというのを考えてメモしておこうと思って、この記事を書いています。

が、そのメモの前に、本当にインプットって必要なのかってのをまず考えたくなったのでそれについて書きます。 ただ、この内容はインプット/アウトプット/収入に関するなんの学術的根拠もない私の妄想理論なのでご注意ください😅

インプットって本当に大事?

そもそもアウトプットばかりだとダメなのか?ということを今一度自分で考えてみたい。

会社に所属して年収をあげたり、転職時の年収UPを狙ったり、個人でアプリで稼ぐってなるとやはりアウトプットをたくさんしてそれを見える形でアピールすることが必要になると思っています。しかし、インプットをしないとアウトプットの質が上がらないと思っていて、イメージとしては、インプットをしない場合ではアウトプットを出し続けても得られる金額にはどこかで限界値が決まっていて、アウトプットを頑張ってもその限界値に近づいていくだけ。決して超えることはない。しかも近づけば近づくほど収入の上がり幅は少なくなる、そんなイメージ。

f:id:nao_666:20200518141336p:plain
アウトプットだけを頑張っても年収は頭打ちする

で、インプットっていうのはこの限界値を上げてくれるのではないかな〜と。

f:id:nao_666:20200518142837p:plain
Macのプレビューで適当に書いたので突っ込まないで欲しい図😅

もちろん、アウトプットをする中で自然とインプットが必要になったりするので、アウトプットだけをやっているつもりでも限界値が上がっていくことはあると思うんですが、インプットをきちんとやることでより効率よく理論限界年収(なんだこの言葉w)を上げられるのではと思います。

そういう意味では今後のアウトプットにつながるインプットが重要とも言えますし、長いスパンで考えれば今後のアウトプットのためのインプットのためのインプットも大事だと考えることができ、直接的にアウトプットに結びつかないもので重要なものもある気がします。

とりあえず、インプットは大事だと自分が思った理由の説明でした✌

何を勉強しようか?

とりあえず優先度は置いといて、今自分が思いつく、興味のあることがらを並べる。

プログラミング基礎

  • OS作ってみたい
  • CPUとかメモリとかまだまだ全然甘い
  • 暗号とか甘い
  • アルゴリズム LeetCodeやらないと

言語

  • Writing Compiler in Go をやりたい
  • なんでも良いから言語が実行されるまでを追う。仕事ではTypeScriptとGoでどっちかというとTypeScript寄りの仕事が多いからTSかな?

Framework

  • Angularを仕事で使っているけど、実際仮想DOMなんて考え方しか知らず、実際にどうやって動いているかソース見たこと無い。しっかりソースコードでAngularを動かして理解したい
  • Flutterを個人で使っている。Angularが理解できたら、その後比較する意味でも深堀りしたい

マーケティング

  • モバイルアプリのマーケティングについて学びたい。どういったKPIを設定してどう運用していけば売上は増加するのか
  • アプリやサイトでアナリティクスを使って分析する際、どのようなデータを取得すればよく、どう分析すれば良いのか。調べて考えてまとめたい。

ソフトウェアとお金

  • どうやってソフトウェアの損益を見ればよいか?

どれからどう勉強していくかはモチベによるところも大きいので優先度はそのときやりたいものってことにしよう😅 とりあえず、ActivityLogのブログを書くことでインプットが少ないことが明確にわかり、インプット時間を意図的にとろうとできたことが良かったことっすね😅

Activity Log(2020年5月 第3週)

この記事は何?

技術に関する個人的な学びやアウトプットをまとめたもの。

インプット

公式ドキュメントや本など

その他記事

なし

アウトプット

ブログ

なし

開発

  • Wishesにて、iOSで日本語入力でtext input長押しでクラッシュする問題を修正。
    • GlobalCupertinoLocalizations.delegateをlocalizationに指定した。
  • Wishesにて、バナー広告の位置がOSによってはおかしくなる問題を修正
  • Wishesにて、ステータスバーの文字が背景と同系色で見えにくい問題を修正
  • Wishesにて、テストを行い、v1.6.0の審査に提出!!🎉

まとめ

  • ずっと開発してた!そのおかげでv1.6.0の審査提出まで行うことができた!これがリリースされたら、これまで一部の画面にちらっとしか表示されていなかった広告が、常に上部に表示されるようになるので、結果が楽しみ。
  • 最近再度インプットとアウトプットのバランスについて考えていた。アウトプットばかりじゃおそらく生涯年収に対して良い効果が得られないと思うので、来週からは意図的にインプットの時間を取ろうと思う。