自サイトでのアプリダウンロード数を計測・集計して、週間のランキングデータを自動生成する全手順

Apps

私が運用しているAppleWatchJournalというサイトで、毎週「先週人気だったアプリ」のランキングを公開しています。
<参考:先週の気になる新着アプリ&更新アプリ、Apple Watch Journalでの人気アプリ(2017年6月26日) | Apple Watch Journal
この記事を毎週つくるにあたって、ランキングのデータは自動で取得しています。
今回は、このランキングデータの自動生成を行う際の手順のすべてを共有したいと思います。

AppStoreのランキングだけでなく、アフィリエイトなどで”自分のサイトでどのリンクが一番押されているか”を計測したい人は多いと思います。
今回の記事はあくまでAppStoreに特化した内容ですが、他のリンクにもアレンジが効くと思いますので参考にしてみてください!
なお、全手順はかなりボリュームがあるので、時間がある時にどうぞ…。

Googleタグマネージャーを設定する

サイトのアクセス解析で「Google アナリティクス」を利用している方も多いと思いますが、今回の手順では「Googleタグマネージャ」を利用します。
すでにGoogleアナリティクスを利用している場合、タグマネージャのタグに貼り変える必要があります。
(Googleタグマネージャはその名の通り”タグ”を管理するサービスでアクセス解析ツールではありません。Googleアナリティクスのアクセス解析用タグを直接サイトに貼りつけるのではなく、Googleタグマネージャ経由でアナリティクスのタグを貼りつけるというイメージです。)
というわけで、Googleアナリティクスを利用中の場合は、一旦アナリティクスのコードを外してください。

Googleタグマネージャのアカウントを作成する

Googleタグマネージャのサイトにアクセスし「今すぐ登録」をクリックします。
すでにGoogleアナリティクスを利用している場合は、同じアカウントで登録しましょう。
Ranking01

登録するとアカウント名の設定がひょうじされます。
アカウント名は自分でわかれば良いのでなんでもかまいません。
Ranking02
アカウント名を入力したら「続行」ボタンをクリックしましょう。

Googleタグマネージャでコンテナを作成する

アカウントが出来たら次に「コンテナ」を作ります。
コンテナは複数のタグが入る”箱”のようなもので、基本的にサイト毎に1つのコンテナを作ります。

コンテナ名はサイトのドメインを設定し、コンテナの使用場所は「ウェブ」を選択しましょう。
Ranking03

最後に「作成」ボタンをクリックすると利用規約が表示され、規約に同意するとコードが発行されます。
直接サイトにコードを貼りつけても良いですが、Wordpressの場合はプラグインを利用すると楽です。
(テーマのコードに直接貼り付けると、後でテーマを変更する際にコードが引き継がれないため。)

プラグインを使う場合はコード全体ではなく、コード内の「GTM-XXXXXX」という文字列が必要になるので、コピーしておきましょう。
Ranking04

コピーしたら、ひとまず「OK」のボタンを押してコンテナの設定画面は終了しておきましょう。

Googleタグマネージャのプラグインをインストールし、設定する

WordPressの場合はGoogleタグマネージャのプラグインを利用すると楽なので、まずはプラグインをインストールしましょう。
Wordpressの管理画面から「プラグイン」→「新規追加」を行い「Google Tag Manager」をインストールしましょう。インストールしたらプラグインの”有効化”もお忘れなく。
Ranking05

プラグインをインストールすると、管理画面の「設定」→「一般」にGoogel Tag Manager IDの入力欄が追加されているので、先ほどコピーした「GTM-XXXXXX」という文字列を入力し、「変更を保存」をクリックしましょう。
Ranking06

これでGoogleタグマネージャの設定完了です。

GoogleタグマネージャでGoogelアナリティクス(ユニバーサルアナリティクス)タグを配信する

配信するタグを作成する

タグマネージャの「ワークスペース」のページで、左サイドメニューから「タグ」を選択し、「新規」をクリックします。
Ranking07

タグ名とタグの種類を設定します。
タグ名は何でもいいんですが、わかりやすく「Googleアナリティクス」としましょう。
名前を決めたら「タグの設定」セクションの右上にある編集アイコンをクリックします。
Ranking08

タグタイプを選択のウインドウがオーバレイするので、「ユニバーサルアナリティクス」を選択します。
Ranking09

さらに詳細な設定が表示されるので、トラッキングタイプに「ページビュー」を設定。
Googleアナリティクス設定は「新しい変数」を選択します。
Ranking10

Googleアナリティクス設定の変数設定がオーバレイするので、トラッキングIDを入力します。
トラッキングIDはGoogleアナリティクスで発行されるID(UA-XXXXXXXXXX)です。
Ranking11

Cookieドメインはそのままで、「保存」をクリック。
変数名の設定ダイアログが表示されるので、デフォルト値の「Google アナリティクス設定」で保存します。

「タグの設定」画面に戻り、Googleアナリティクス設定に「Googleアナリティクス設定」変数が入ったことを確認し、続いて「トリガー」の設定を行います。
トリガーのセクションで、右上にある編集アイコンをクリックします。
Ranking12

トリガーは「All Pages」を選択しましょう。
Ranking13

タグの設定とトリガーの設定が完了したら、画面右上の「保存」をクリック。
Ranking14

これでタグの作成は完了です!

タグを配信する

タグが出来たらあとは配信するだけですが、タグマネージャは配信前にタグのプレビューが可能です。

画面右上のプレビューをクリック。
Ranking15

同じブラウザでサイトにアクセスすると、自動的にタグマネージャのデバッグ情報がオーバレイで表示されるプレビューが起動します。
「Googleアナリティクス」のタグが表示されていれば、問題なくタグが作成できていることになります。
Ranking16

タグに問題がないことを確認できたらプレビューモードを終了し、今度は「送信」をクリックします。
Ranking15

送信設定ダイアログが表示されるので、わかりやすく適当なバージョン名を記入(空白でも可。)し、「公開」をクリック。
Ranking17

これで、Googelタグマネージャーの設定は完了。
念のため、Googleアナリティクスのリアルタイムビューで、ちゃんとデータが取れているか確認しましょう。

GoogleタグマネージャでAppStoreへの遷移をイベント設定する

タグマネージャの設定ができたので、続いてAppStoreへのリンクのクリック数を取得するためのイベント設定を行います。
(クリック数の取得がGoogleアナリティクスでは取れないため、Googleタグマネージャを設定したというわけです。)

「変数」を設定する

タグマネージャのワークスペースで、サイドメニューから「変数」を選択し、「設定」をクリックします。
Ranking18

”組み込み変数の設定”で”クリック”にあるすべての項目にチェックを入れましょう。
Ranking19

「トリガー」を設定する

続いて「トリガー」(イベントが発火するタイミング)」を設定します。
サイドメニューから「トリガー」を選択し、「新規」ボタンをクリックします。
Ranking20

トリガー名をわかりやすく「AppStoreクリック」等に変更し、右上の編集アイコンをクリックします。
Ranking21

「トリガーのタイプを選択」のウインドウで、クリック要素の「リンクのみ」を選択します。
Ranking22

さらに設定画面が立ち上がるので、以下のように設定します。
Ranking23

  • 「タグの配信を待つ」にチェック(“待ち時間の上限”は初期値の2000ミリ秒のままでOKです。
  • 「妥当性をチェック」にチェック
  • “これらすべての条件がtrueの場合にこのトリガーを有効化”の項目で「Page URL」「正規表現に一致」を選択。値の欄に .*を入力
  • “トリガーの発生場所”で「一部のリンククリック」を選択
  • “イベント発生時にこれらすべての条件がtrueの場合にこのトリガーを配信します”の項目で「Click URL」「含む」を選択。値にitunes.apple.comを入力

最後に右上の「保存」ボタンをクリックすれば完了です。

「タグ」を設定する

トリガーが完成したので、あとは作成したトリガーをタグとして設定し、配信しましょう。
サイドメニューから「タグ」を選択し、「新規」ボタンをクリックします。
Ranking24

タグ名をわかりやすく「AppStoreクリック」等に変更し、右上の編集アイコンをクリックします。
Ranking25

「タグタイプを選択」から「ユニバーサルアナリティクス」を選択します。
Ranking26

詳細設定画面が開くので、以下のように設定します。
Ranking27

  • “トラッキングタイプ”は「イベント」を選択。
  • イベントトラッキングパラメータ:
    • カテゴリ:iTunes_click
    • アクション:{{Page URL}}#{{Click ID}}
    • ラベル:{{Click URL}}|{{Click Text}}
      ※各値は使いやすいように自由に変更しても構いませんが、後のランキングデータの計測のために、ラベルに{{Click URL}}を設定する点だけは変更しないでください。
  • “値”、”非インタラクションヒット”は変更しない
  • “Googleアナリティクス設定”で{{Googleアナリティクス設定}}を選択。(最初のタグ配信の際に作成した変数)

トラッキングの設定が終わったら、最後にトリガーを設定します。
タグの設定の下部にある「トリガー」のセクションで編集アイコンをクリックします。
Ranking28

さきほど作成した「AppStoreクリック」のトリガーを選択します。
Ranking29

「タグの設定」と「トリガー」を設定し終えたら、右上の「保存」をクリックします。
Ranking30

タグを配信する

タグの設定がすべて終わったのであとはタグを配信するだけ。
画面右上の「送信」ボタンをクリックします。
Ranking31

送信設定のダイアログでバージョン名を記入し、「公開」をクリックすればタグの配信は完了です。

GoogleAnalyticsでイベントが取れることを確認する

Googleアナリティクスのリアルタイムレポートで正しくイベントが飛ぶか確認しておきましょう。
アナリティクスのレポートで「リアルタイム」→「イベント」を選択し、自分のサイトでAppStoreへのリンクをクリックした時、イベントカテゴリ「iTunes_click」のイベントが計測できれば、タグの設定は成功です。
Ranking32

これで、Googleタグマネージャでの設定はすべて完了です。

ひとまずここまでが前半戦!
後半戦はランキングデータの取得になりますが、AppStoreへのクリックイベントはタグ公開のタイミングからしか取得できないので、今の時点ではクリック数はほぼ0だと思います。
ランキングデータが溜まるまで、1週間くらい時間を空けてから後半戦に臨んだ方が良いかもしれません。

Googleスプレッドシートでランキングデータを作成する

Googleアナリティクスでイベントが計測できるようになったので、続いてイベント数をまとめてランキングデータを生成しましょう。
ランキングデータの作成にはGoogleスプレッドシートを利用します。
Googleスプレッドシートを使ったことがないという方は、まずは「Googleドライブ」を登録しましょう。
(Googleアナリティクスで利用しているアカウントで登録する方が良いです。)

ログインできたら「新規」→「Googleスプレッドシート」と選択し、新しいスプレッドシートを作成しましょう。

GoogleスプレッドシートにGoogleアナリティクスのアドオンを追加する

Googleスプレッドシートの画面が開いたら、まずはアナリティクスのデータを利用できるようにアドオンの導入を行います。
メニューから「アドオン」をクリックし、「アドオンを取得」をクリックします。
Ranking33

アドオンの一覧が出てくるので、「Google Analytics」を選択。
Ranking34

「+無料」ボタンを押してアドオンをインストールします。
Ranking35
※Google公式のアドオンに類似したアドオンもあるようなので、公式アドオンであることをしっかり確認のうえインストールしてください。

アカウントを選択すると認証画面が出てくるので、内容を確認の上「許可」をクリック。
Ranking36

以上でアドオンのインストールが完了です。
上部メニューの「アドオン」をクリックすると「Google Analytics」のメニューが追加されていることを確認できると思います。
Ranking37

週間のアプリストア遷移イベントを取得する

スプレッドシートとGoogleアナリティクスが接続できたので、早速ランキングのレポートを作り始めましょう。
まずは、AppStoreへの遷移イベントのデータをまるっとスプレッドシートに抜き出します。
上部メニューの「アドオン」をクリックし、「Google Analytics」にカーソルを合わせます。メニューが展開するので「Create new report」をクリックします。
Ranking38

「Create a new report」のサブウインドウが立ち上がるので、以下のようにデータを入力しましょう。
Ranking39

  • Name:レポート名。適当に「Weekly App Install」とでもつけましょう。
  • Account、Property、View(Profile):計測に利用したいGoogleアナリティクスのアカウント、プロパティ、ビューを選択
  • Metrics:Total Eventsを選択(ga:totalEvents)
  • Dimensions:Event Labelを選択(ga:eventLabel)

※MetricsとDimensionsは軸と指標の設定です。利用できる値はGoogleのAPIで決まっているので以下のリンクを参考にして適切な値を入れてください。
Dimensions & Metrics Explorer  |  アナリティクス Reporting API v4  |  Google Developers

最後に「Create Report」ボタンをクリックすると、スプレッドシートに「Report Configuration」というシートが作られます。

週間のアプリインストール数のレポートを作成するために、「Report Configuration」シートで詳細な設定を入力しましょう。
Ranking40

  • Last N Days:7(初期値のまま。直近7日間に対してレポートを作成)
  • Sort:-ga:totalEvents(イベント数を降順にソート)
  • Filters:ga:eventCategory==iTunes_click(AppStoreへのリンクのクリックイベントのみをレポート)

入力が終わったら、上部メニューから「アドオン」→「Google Analytics」→「Run report」をクリックします。
Ranking41

以下のようなメッセージが表示されればレポート生成は成功です。
Ranking42
※エラーになった場合は、エラーメッセージに従いReport Configurationの入力内容を修正しましょう。

自動で生成されたレポートは以下。
イベントラベル(遷移先のAppStoreのURL)がイベント数順に並んでいるのが確認できると思います。
Ranking43

これでランキング完成!と言いたいところなんですが、そうではないのが残念なところ…。
実はAppStoreのURLって1つのアプリに対していくつかのパターンがありまして…。サイトで統一されていればいいんですが、私のサイトではいろいろな理由から複数のURLが混在しているんですよね…

例)
idのみのシンプルなURL:https://itunes.apple.com/jp/app/id1217925175
アプリ名も入ったURL: https://itunes.apple.com/jp/app/和暦watch/id1217925175?mt=8

というわけで、もう一歩スプレッドシートを活用して、複数のURLをアプリのidで合算したランキングデータを作成していきましょう。

イベントデータからアプリのidを抽出する

まずはスプレッドシートの左下の「+」アイコンから新たなシートを追加。
Ranking44

アドオンが作成した「Weekly App Install」のシートから見出し(ga:eventLabelとga:totalEvents)を1行目にコピー(これはあくまでわかりやすくるためだけなのでなくても良いです。)

2行目のA列には=REGEXEXTRACT('Weekly App Install'!A16, "id[0-9]{9,10}")を入力。
B列には='Weekly App Install'!B16と入力し、A2,B2セルを選択した状態で下方向にドラッグしてセルをコピーします。
Ranking45

A列ではクリックイベントのイベントラベル(AppStoreのURL)からAppIDを抽出しています。
(AppStoreのidはidXXXXXXXXの形式で数字は9桁の場合と10桁の場合があるので、両方を抽出できるよう正規表現で指定しています。)
B列は「Weekly App Install」シートのイベント数をそのままコピーしているだけですね。

これで、IDとクリック数の一覧になりましたが、複数のURLが混在していたリストからIDの文字列を抽出しているだけなので、A列では同じアプリIDが重複しているということになります。
次は、この重複をまとめてIDごとの総イベント数を取得しましょう。

id毎にイベント数をまとめて、イベント数順で並び替える

アプリID毎に重複をまとめるにはピボットテーブルを使います。
上部メニューから「データ」→「ピボットテーブル」を選択。
Ranking46

「ピボットテーブル 1」のシートが自動的に生成され、レポートエディタが開きます。
Ranking47

レポートエディタで以下のように設定しましょう。

  • 行:フィールドを追加→「ga:eventLabel」を選択。
    • 並べ替え:昇順
    • 並べ替え:ga:eventLabel
    • 合計を表示にチェック
  • 列:選択しない
  • 値:フィールドを追加→「ga:totalEvents」を選択
    • 集計:SUM

    これでID毎のイベント数が取れましたが。
    でも、IDの昇順で並んでしまうので、この状態ではちょっと見にくいですよね。
    というわけで、これをさらに見やすくするため、さらにもう1枚新規シートを追加します。

    新規のシートを作成したらA1セルに=QUERY('ピボット テーブル 1'!A:B, "select A,B order by B desc")と入力します。
    Ranking48

    式を入力しEnterを押すと、QUERYに合わせてデータが一気に表示されます。
    Ranking49

    QUERYを使うことで、特定のシートから条件付でデータをコピーすることができます。
    今回は、B列(イベント数)の降順でピボットテーブルの内容を並び替えました。

    これでIDとリンククリック数のランキングデータが完成しました。

    これで終わりでも良いんですが、アプリIDが何のアプリなのか毎回調べるのはちょっと面倒…。
    ということで、最後に「ID」「アプリ名」「AppStoreのURL」の関連表を用意し、アプリ名がわかる形のランキングデータを作成しましょう。

    IDとアプリ名のリストを作成し、ランキングデータと結合する

    先ほど作成した新規のシートを、メインのシートということで「Weekly App Install Report」とリネームしておきましょう。
    さらに、新規のシートを作成し、これを「app list」とします。
    ※「app list」は手動で設定するシートです。
    毎週ランキングの内容が大幅に入れ替わるサイトだと、運用が面倒なのでやらない方がよいかもしれませんが、ある程度決まったアプリがランキングに残るサイトであれば、整理しやすくなるので作っておくとよいと思います。

    「app list」では、A列にAppIDを手入力し、B列にそのAppIDのアプリ名をこちらも手動入力します。
    必要なアプリの情報を2行目、3行目と追記していきましょう。
    Ranking50

    app listにある程度データを入力したら、Weekly App Install Reportのシートに戻ります。
    QUERYで作成したA,B列はそのままで、C2セルに=VLOOKUP(A2, 'app list'!A$2:B$999,2, FALSE)と入力します。
    (A2セル(アプリID)をキーにapplistからアプリIDを検索し、2列目に当たるアプリ名を返します。)
    これでA2セルに当たるアプリ名がC列に表示されます。
    Ranking51

    さらに、D2セルに="https://itunes.apple.com/jp/app/"&A2と入力することで、AppStoreのURLも表示することができます。

    C2、D2セルを選択後ドラッグすることで、アプリ名も含むランキングが生成されます!


    さて、以上でランキングデータの生成の全手順が完了です。

    あとは「アドオン」→「Google Analtyics」→「Run report」をクリックすることで自動的にランキングが生成されます。
    最初はかなりボリュームのある作業になりますが、一度設定してしまえば、一瞬でデータを作ることができます。

    アプリ紹介を行っているサイトはもちろん、クリックイベントの値を変えればAmazonアフィリエイトや、その他アフィリエイトのクリック数ランキングなんかにも応用が利くと思うので、是非Googleのいろいろなツールの連携機能を使い倒してみてください!

    以上、お疲れ様でした~
    (いやいや…ほんとに長い記事をここまでお読みいただきありがとうございました〜!!)