誰も触りたがらないAppsFlyerのローデータで遊んでみた話

この記事は eureka Advent Calendar 2018 12日目の記事です。 前日は同じBIチームのそうたろうの Cloud Composerでデータ基盤のワークフローつくった でした。いま僕が導入を進めている Tableau の裏側の話なので是非そちらもお楽しみください。


こんにちは、エウレカBIチームでデータアナリストをしているミニオンこと鈴木です。 最近会社にもう一人自称ミニオンが現れて存在を脅かされています。

さて、ここ数年オンライン広告界隈ではアドフラウドなる許すまじな不正が流行っているようですね。 例に漏れず、エウレカもアドフラウドと日々戦っております(げんなり)。

こうした状況なので、最近はAppsFlyerのローデータを見ながら不正な輩を見つける業務も発生しているのですが、この手のデータって難しい指標や定義が多い、それでいてデータ数もそこそこあるので社内で触りたがる人が少ないんですよね。

しかし、AppsFlyerのデータをしっかり活用できればお宝になるのではないかと思うわけです。 ということで今回は、AppsFlyerのローデータをこねくり回して遊びつつ、AppsFlyerのローデータをどう活用できるか考えてみようと思います。

目次

データを用意する:データ準備編です(読み飛ばしてもらって大丈夫)
サクッとデータで遊んでみる:簡単に見れるデータを可視化しました
広告分析してみる:広告運用に使えそうな分析に挑戦しました

データを用意する

さっそくデータを管理画面から落としてきます。 AppsFlyerのローデータは管理画面の対象アプリページの Reports > Export Data からダウンロードできます。

ダウンロード可能なデータが複数あるのですが、今回は Raw Data ReportsInstallations を使用しようと思います。 Installations は文字通り、広告経由でアプリに流入してきたユーザのインストールイベントデータです。 AppsFlyerのインストール定義は “初回起動” なのでインストール後起動していない場合は反映されないので、データを扱う際には注意しましょう。

もう一つ注意点があり、管理画面からデータをダウンロードする際、レコード数最大 20K の制約が発生します。データ数が上限に引っかかっていないかダウンロード後CSVファイルの行数を確認したほうが安全です。

大きいデータを表計算ソフトで開くのは億劫なので、僕はShellで確認することが多いです。

$ wc -l appsflyer_data.csv

今回はAppsFlyerのローデータをSQLでこねくり回したいので、Google Cloud Storage に保存して BigQuery 上にテーブル化しました。 こういうことがサクッとできる良い時代になりましたねぇ(月並み)。

サクッとデータで遊んでみる

BigQuery にデータの用意ができたので、さっそくローデータで遊んでみようと思います。 手始めに、Pairs をインストールしたユーザがどの通信キャリアを使っているのか可視化してみました。

僕の周りでは Softbank ユーザを良く見かけるので健闘するかと思いましたが、少なくとも Pairs のユーザ層では docomo さんが圧勝みたいですね、さすがです。

どんどんいきましょう、続いてユーザが使っている機種を見てみましょう。 まずは Android から、機種が豊富でカオスなのでメーカごとの比率を出しました。

Sonyさん強すぎ、日本人の並々ならぬSony愛が伝わってきます。

ちなみに機種別のTOP10はこちら。

1  Xperia XZ 
2 Xperia XZ1
3 Xperia XZs
4 Galaxy S7 edge
5 Galaxy S8
6 Xperia X Compact
7 Xperia Z5
8 Xperia X Performance
9 AQUOS R
10 AQUOS sense

キャリアごとにローデータの端末名が違うので、正式名称と付け合わせるのが地味に面倒くさかった。 もう二度とやりたくない。

続いて、iOSです。

iPhone7と8を使っている人が多いみたいです。 今年発売されたXSは全体の4.5%, XRは1.32%とあまり浸透していないようです。 やはり新型iPhone販売不振の話は本当なのかもしれません。

次はWi-Fi環境下でのインストール比率を可視化しました。

Wi-Fi環境下でインストールしている人が約63%とモバイルデータ通信よりも多いですね。 純粋に普段の使用環境がこんなものなのか、はたまたWi-Fi使用時にのみアプリをインストールしているのかは、このデータからはわかりません。

ちなみに、僕はWi-Fi接続時にしかアプリをインストールしない派です。

もしWi-Fi接続時にのみインストールしている人が多いのであれば、Wi-Fi環境下でのみ表示される広告を出稿すれば Click to Install が他の広告より高くなるかもしれません。

さて、ここまでサクッと見れるものを可視化して楽しんでいましたが、せっかくのAppsFlyerのデータなので、もう少し広告運用で使えそうなものも出してみようと思います。

広告分析してみる

AppsFlyer ローデータの attributed_touch_time(広告接触時間)と install_time(インストール時間)の差分を時間で取って平均したものを作成しました。

広告界隈ではCTIT(Click to Install Time)分析と呼ばれているみたいですね。 CTIT分析を行うツールが有償で提供されているみたいですが、AppsFlyerのローデータがあれば簡単に可視化できますね。

※尚、本データでは imp ではなく click を広告接触起点にしています(一部 imp=click の媒体社もありますが…)。

折れ線がCTITの平均時間、棒グラフがインストール数のボリュームです。 平均時間のみだと考察を出す際に全体感を見失うので、インストール数のボリュームも一緒に可視化しています。

媒体社名は出すと、アレ…なのでマスキングしています、ご想像にお任せします! 獲得チャネルの分散具合も外に出したら、アレ…なので一部のチャネルのみに絞っています。

グラフをスプレッドシートで作ったのですが、散布図と棒グラフを一緒に表示できなんですね(はい、言い訳です)。

図を見ると媒体社 A が平均 86.86時間 と最も長いですが、ボリュームはそこまで大きくなさそうです。 この平均時間が短いほど、より直接的な広告経由のコンバージョンと言えそうですね。

ただし、広告接触から何日までのポストバックをコンバージョンに含めるかは媒体社の定義・設定によってまちまちなので一緒に見る必要がありそうです。

今度は同じデータを平均時間ではなく、日差分の100%積み上げ棒グラフで可視化してみます。

平均時間で見るよりもだいぶ分かりやすいです。

先程平均時間の長かった上位3媒体社は軒並み8日以上経過(day8+)の比率が大きいことがわかります。 原因はそれぞれありますがある程度直接的ではないコンバージョンが含まれている前提で運用をする必要がありますね。

マーケターの人には釈迦に説法状態かと思いますが、各経過日数別に何%がそこにいるか数字を示してあげることに意味はありそうです。 どこまでをコンバージョンとして扱うか、指標を設ける際の参考にはなるのではないでしょうか。

続いて、Contributor を使用した分析を行ってみます。 AppsFlyerのローデータには Contributor という広告経由で獲得したユーザが直近接触した別広告の情報が見れるカラムが用意されています。

正直、広告経由で獲得したユーザがその前に接触した広告情報を可視化してなにが分かるねん、 という気持ちが強いので、他の広告のコンバージョンを食っていそうなやつをあぶり出してみたいと思います。

下の図は contributor1_media_source をカウントしたものです。

contributor1_media_source にデータが入っている数が多い媒体社ほど、 クリックを量産しているか、別の媒体社に食われている可能性が高そうです。 I はクリックをばら撒きまくってる子(笑)なので純粋無垢そうな G を深掘りしてみようと思います。

G がどの子に最終コンバージョンを持っていかれたか比率を出しました。

上位4媒体社で 約75% ですね、この子達がコンバージョンを奪っている可能性があります。 今度は先程見たように Contributor1 の接触時間とインストールの日差分でこの上位4媒体を見てみます。

Day0 の比率が多い程、コンバージョンが食われている可能性が高いかもしれません。 もし純粋無垢な G が他の媒体者にコンバージョンを持っていかれているとしたら、正しい運用をおこなうために再評価する必要がありそうですね。

と、犯人探しみたいな内容になってしまいましたが、もう少しポジティブにデータを使いたい! ということで最後に、広告ではないですが一部非広告のページにも AppsFlyer の Onelink を仕込んでいるので、 オーガニック獲得に貢献していそうな広告も可視化して終わろうと思います。

まず、このオーガニック経路でインストールしたユーザが Contributor1 をどれくらい保持しているか確認します。

全獲得のうち 約9% が Contributor 情報を保持しているようです。 広告出稿がある程度オーガニック獲得にも貢献しているかもしれません。

では、この 9% の内訳を見てみましょう。

ほぼほぼ AC ですね。 例のごとく、この子達の接触時間とインストールの日差分を見てみます。

C は評価が難しいところですが、AH0Day の比率が高いので広告を見た後に直接検索して流入してきた可能性が高いですね。

オーガニック流入と併せてこの媒体社を評価し広告運用を行えば、より効果的にユーザ獲得を行えるかもしれません。 それをどうやって実現させていくか、データアナリストの腕の見せどころですね。冬休みにゆっくり考えることにします。

まとめ

以上、AppsFlyerのローデータで遊んでみた内容をつらつらと書いていきました。

今回この内容を選んだ背景として、どうしてもアドテク・計測ツールと聞くと身構えてしまう人が多いので、そんなことない!楽しいよ!ということを伝えたかった。笑

とはいえ、マーケティング周りの知識がないと取っ付きにくい分野であることも確かなので、是非マーケターを巻き込んで分析してもらえればと思います。

それでは、最後まで読んでいただきありがとうございました。

明日は、まるでBIチームのようにデータ周りで動いてくれている Androidエンジニアの栗村氏が「FirebaseAnalyticsをBigQueryから眺める」 というこれまたBIっぽい内容を投稿してくれるみたいです。

皆さま、良いお年を。