マーケティング担当者向けGoogle Analytics APIのケーススタディ



こんにちは トラフィックソースを分析するためのタスクの1つの実装に基づいて、マーケティング担当者向けの説明記事を作成することにしました。 これは、マーケティング担当者がGoogleアナリティクスAPIなしではできない場合です。 この記事はWeb開発者の利益のために書かれているため、マーケティング担当者は「すべてのゴミ」に気を取られません。



実用的な例で技術に精通します。 行こう!



挑戦する



サイトには約150,000人のユーザーが登録されています。 10月に製品を購入した1,500人のユーザーがどのソースから来たのかを理解する必要があります。

見込み客を引き付けるために、フリーミアムモデルを使用します。販売サイクルは最大1年です。



追加設定から、Googleアナリティクスの統合段階で、ユーザーIDを接続し、その値をカスタムディメンション1 (スコープ:ユーザー)に複製して、レポートでUserIDを操作できるようにしました。



解決策



アルゴリズム



必要な最初のソースを決定するには:



  1. Query Explorerサービスを開きます。
  2. 認証を行い、アカウント、プロパティ、ビューを選択します。
  3. レポートをコンパイルするには:

    • 終了日 :ユーザー登録日+ 5日(念のためマージンを付けて)
    • 開始日 :ユーザー登録日-25日(マージンがある場合、ユーザーは登録前にサイトと対話できます)
    • 指標 :ga:セッション
    • 寸法



      ga:sourceMedium-ソース/チャンネル

      ga:dateHourMinute-時刻。日付、時間、分を含みます。
    • sort :ga:dateHourMinute-最初のセッションが最初の行に表示されるようにします。
    • フィルター :ga:dimension1 == 158384-ユーザーID。
  4. 次のようになります。





  5. [クエリの実行]をクリックして、クエリを実行します。


結果



リクエストを実行すると、結果の表が表示されます:







すなわち 登録前の一定の期間に、最初のセッションはソースyandex / organicからのものであったことがわかります。



一人のユーザーのために。 しかし、1500の自動化のために組み立てる方法は?



自動化



クエリ結果のあるテーブルの下には、2つのテキストフィールドがあります。

このレポートおよびクエリURI API への直接リンク



現在のaccess_tokenを含める... 」というチェックマークが付いた2番目のフィールドに興味があります



フィールドの内容はおよそ次のとおりです。



https://www.googleapis.com/analytics/v3/data/ga?ids=ga%3A118898472&start-date=2017-10-01&end-date=2017-10-26&metrics=ga%3Asessions&dimensions=ga%3AsourceMedium%2Cga%3AdateHourMinute&sort=ga%3AdateHourMinute&filters=ga%3Adimension1%3D%3D158384&access_token=ya29.Gl30BMgGpR89kexsBJS8VMIWimIEghKVHubx9iQH7RljCyQNLjX2LLBQ9AyCCRW9K0TjfJEvwe6qY3SIRKbkm8idMZjdygbN647O7JUgXqcGyDt5b63Y2FjDbeQabfA
      
      





ブラウザでリンクを開くと、リクエストをJSON形式で実行した結果が表示されます。







すなわち クエリURLのデータdimension1、start-date、end-dateを置き換える-ユーザーごとにこのような情報を取得できます。



ユーザーデータファイル



次の形式の行を含む通常のtxtファイルを作成しました(UserID start-date end-date):



 123456 2017-10-01 2017-10-26 123457 2017-10-02 2017-10-27
      
      





開始日と終了日の準備は簡単です-ExcelまたはGoogleスプレッドシートで:



開始日:

=日付(年(B2)、月(B2)、日(B2)-25)



終了日:

=日付(年(B2)、月(B2)、日(B2)+5)



ここで、B2はユーザー登録の日付のセルです。



スクリプトを作成する



Pythonを言語として選択しました-単に私が現在それを学んでいるからです。



スクリプト操作アルゴリズム:



  1. ユーザー情報を含むファイルを開きます。
  2. ファイルの各行は「タブ」で分割されます。
  3. Query Explorerで作業するときに受け取ったQuery Stringの文字列からデータを置き換えます。
  4. このリンクから情報を取得します。
  5. 応答テキストをJSONに変換して、対話できるようにします。
  6. 各ユーザーの回答のバックアップを作成します。これはusers /%userID%.txtに保存されます
  7. 「行」セクションを循環してみましょう。

    • うまくいった場合は、画面にユーザーIDとソース/メディアを書き込みます。
    • うまくいかない場合は、UserIDを書き込むだけです。


 import json import requests with open('users_regs.txt') as f: for line in f: value = line.split("\t") source = 'https://www.googleapis.com/analytics/v3/data/ga?ids=ga%3A118898472&start-date=' + value[1] +'&end-date=' + value[2].strip('\n') +'&metrics=ga%3Asessions&dimensions=ga%3AsourceMedium%2Cga%3AdateHourMinute&sort=ga%3AdateHourMinute&filters=ga%3Adimension1%3D%3D' + value[0] +'&access_token=ya29.Gl3wBOWAecjWj4GgW0Gj920Sx2SBtVBkCHZjOsPNu6MWnN1XnsNwwzVzPVBcdVwDf_7lWJd0mege38pP1PSNvc9aBA7wbndUn-h6vqS5bbbEhSOKHp4cjQvVSQiN5R4' r = requests.get(source) l = json.loads(r.text) with open('users/' + value[0]+'.txt', 'w') as outfile: json.dump(l, outfile) try: for row in l["rows"]: print(value[0] + " " + row[0]) break except: print(value[0])
      
      



メトリクス= GAの%3Asessions&寸法= GA%3AsourceMedium%2Cga%3AdateHourMinute&ソート= GA%3AdateHourMinute&フィルター= GA%3Adimension1%3D%3D' +値[ import json import requests with open('users_regs.txt') as f: for line in f: value = line.split("\t") source = 'https://www.googleapis.com/analytics/v3/data/ga?ids=ga%3A118898472&start-date=' + value[1] +'&end-date=' + value[2].strip('\n') +'&metrics=ga%3Asessions&dimensions=ga%3AsourceMedium%2Cga%3AdateHourMinute&sort=ga%3AdateHourMinute&filters=ga%3Adimension1%3D%3D' + value[0] +'&access_token=ya29.Gl3wBOWAecjWj4GgW0Gj920Sx2SBtVBkCHZjOsPNu6MWnN1XnsNwwzVzPVBcdVwDf_7lWJd0mege38pP1PSNvc9aBA7wbndUn-h6vqS5bbbEhSOKHp4cjQvVSQiN5R4' r = requests.get(source) l = json.loads(r.text) with open('users/' + value[0]+'.txt', 'w') as outfile: json.dump(l, outfile) try: for row in l["rows"]: print(value[0] + " " + row[0]) break except: print(value[0])



h6vqS5bbbEhSOKHp4cjQvVSQiN5R4' import json import requests with open('users_regs.txt') as f: for line in f: value = line.split("\t") source = 'https://www.googleapis.com/analytics/v3/data/ga?ids=ga%3A118898472&start-date=' + value[1] +'&end-date=' + value[2].strip('\n') +'&metrics=ga%3Asessions&dimensions=ga%3AsourceMedium%2Cga%3AdateHourMinute&sort=ga%3AdateHourMinute&filters=ga%3Adimension1%3D%3D' + value[0] +'&access_token=ya29.Gl3wBOWAecjWj4GgW0Gj920Sx2SBtVBkCHZjOsPNu6MWnN1XnsNwwzVzPVBcdVwDf_7lWJd0mege38pP1PSNvc9aBA7wbndUn-h6vqS5bbbEhSOKHp4cjQvVSQiN5R4' r = requests.get(source) l = json.loads(r.text) with open('users/' + value[0]+'.txt', 'w') as outfile: json.dump(l, outfile) try: for row in l["rows"]: print(value[0] + " " + row[0]) break except: print(value[0])





スクリプトファイルの名前はga.pyです。



コマンドラインからスクリプトを実行し、結果を楽しみます。







スクリプトの結果は端末に表示され、さらに処理するためにそれらをコピーするだけです。



スクリプトは例として提示されており、自分で結果を単一のファイルまたはデータベースに保存できます。



大量のデータを使用する場合-1時間に1回、新しいトークンを生成し(クエリエクスプローラーを再度開き、[クエリの実行]をクリックして)、スクリプト内のクエリ文字列を置換する必要があります。



頑張って!



リーダーボーナス



オンライン講座



オンラインコースを使用して3か月間の英語学習を無料でご利用いただけます。 これを行うには、2017年12月31日までリンクをたどるだけです。



Skype経由で個別に



ITプロフェッショナル向け英語コースの個別レッスンでお会いできることを嬉しく思います。

無料の入門レッスンを受講して、知識レベルに関する包括的なフィードバックを得てから、好みの教師とトレーニングプログラムを選択してください。



All Articles