ある日見つけた不思議なアクセスログ
アプリの運用において、アクティブでないユーザーというのは悩みの種でして日々アクセスログなど眺めつつ改善につなげています。そうした調査の中で、それほど数は多くないのですが、アプリをインストールしてすぐに利用を停止するユーザーの集団を発見しました。調査してみたところ、Androidアプリ向けに作っていたAPIを叩く AdsBot-Google-Mobile-Apps
というUser-Agentのアクセスのみで構成されていたため、これはなんぞやと調べた次第です。
AppIndexingとGoogle Crawler
結論として、このアクセスはAppIndexingを有効にしたAndroidアプリに対してGoogleのBotがクロールした結果発生するものだとわかりました。
AppIndexingとは、公式ページから引用させてもらうと、
App Indexing を使うと、Google 検索であなたのアプリがヒットしやすくなります。 アプリにインデックスを付けると、モバイル端末ユーザーがアプリに関連するコンテンツを検索したとき、Android アプリのインストール ボタンが検索結果に表示されます。 そのため、アプリのインストール数の増加につながります。
という機能で、Webページ側にlink要素などでアプリ側のディープリンクを記載し、アプリ側でディープリンクに対応する挙動を用意しておくと、Google検索の結果にアプリのインストール導線が置かれ、Google検索からシームレスにアプリ内のコンテンツにたどり着くものです。
このAppIndexingを実現するにあたって当然Google側はクローリングしており、アクセスログから察するに、AppIndexingを担当するクローラは下記の用に振る舞うようです。
- 通常通りWebページをクロールする
- クロールした結果、AppIndexingの設定を見つけたら、
AdsBot-Google-Mobile-Apps
のクローラが起動。Androidのエミュレータをコンテナ上で動かすような仕組みだと推察。 - 2.のBotは、アプリのパッケージをダウンロードし、1度だけ起動、AppIndexingのレギュレーションを満たしているか確認する。
- 問題なければAppIndexing対応ページとしてインデックスする。
上記の結果、クロールのたびにエミュレータがアプリをダウンロード=>起動まで実施、完了後アンインストールする or コンテナごと破棄する、ようなアクセスが観測されます。
我々はどう考えるべきか
ベースのアプリのインストール数によっては、このBotによるアクセスログが意思決定を曲げうる数にもなるのではないかなと思った次第です。
アクセスログに乗っかってくるユーザーにこうしたBotが含まれてしまうとそれらを「一日で死ぬユーザー」としてカウントしてしまうため、施策がよかった、悪かったの判断を誤りかねないのではないかと。
Webページの運用においてはGoogleAnalyticsなどBotのアクセスをよしなに扱ってくれますが、これからはNativeアプリもBotのアクセスを気にする時代なのかもしれません。
参考
- AppIndexing https://developers.google.com/app-indexing/?hl=ja
- GoogleのCrawlerのUser-Agent https://support.google.com/webmasters/answer/1061943?hl=en