20

Google アナリティクスにデータを送信するアプリがあります。このデータにアクセスし、Hadoop クラスターに保存することに興味があります。この生データはログの形になると思います。特に、user_id、ユーザーが行った検索、およびユーザーがアプリで支払うことを決定した検索オプションを確認したいと思います。

これどうやってするの?私は GA をまったく使用したことがなく、アプリの GA を設定したのは私ではありません。この生データにアクセスできる方法があるかどうかを確認しようとしています。

アクセス権がないため、Big Query を使用できないことを付け加えたいと思います。また、GA を設定した人は、ユニバーサル アナリティクスへのアップグレードには関心がありません。

ヘルプ/考え/提案は大歓迎です。

4

4 に答える 4

18

ログを取得する方法はありませんが、..

Google アナリティクス APIを使用すると、システムからデータを抽出できます。

できることには制限があります。

  1. リクエストごとに 7 つのディメンションと 10 の指標に制限されています。
  2. また、プロファイル (ビュー) ごとに 1 日あたり 10,000 リクエストのクォータもあります。
  3. あなたが話している情報の一部は利用できません。Google アナリティクス アカウントが正しく設定されていない場合。
  4. データは何らかの方法で集計されます。API で使用できる最小の時間単位は分であるため、たとえばタイムスタンプ付きの生データを取得することはできません。

プロの Google アナリティクスの顧客は生データを GA からBig Queryにエクスポートできることに注意してください。BigQuery からのデータのエクスポートは無料ですが、ストレージとクエリ処理の料金は使用量に基づいています。

定額の年会費 $150,000 のリーズナブルな価格でのプレミアム分析

于 2014-10-23T08:22:35.267 に答える
6

元の質問に答える必要があるため、サーバー呼び出しシステムを複製する以外に、実際の生の Google アナリティクス ログを取得する方法はありません。

つまり、analytics.js スクリプトの変更されたコピーを使用して、サーバー呼び出しを収集できるホストされた Web サーバーを指す必要があります。

簡単に言えば、 http : //www.google-analytics.com/collect? v=1&t=ページビュー[...]

これは、通常の Google アナリティクス タグとともに、Google の GTM などのタグ マネージャーを使用して簡単に展開できます。

これにより、ETL、Snowplow、Splunk、またはお気に入りの Python/perl/Ruby テキスト解析エンジンを使用して処理できるログ エントリが Web サーバーに効果的に作成されます。

その後、実際の生ログを処理して管理しやすいものにするのはあなた次第です。そして、あなたが尋ねる前に、これは遡及的ではありません.

于 2016-09-15T10:14:19.370 に答える
3

クリックごとに GA データを取得するには、データを結合できる方法でクエリを作成できます。

まず、GA でデータを準備する必要があります。したがって、送信するヒットごとに、ハッシュ値または clientId + タイムスタンプをカスタム ディメンションに追加します。これにより、各クエリ結果を結合できます。

例 (これは Scitylana での方法です) 以下のスクリプトは、GA の追跡スクリプトにフックし、各ヒットに後でクエリ結果をステッチするためのキーが含まれていることを確認します。

<script>
var BindingsDimensionIndex = CUSTOM DIMENSION INDEX HERE;
var Version = 1;

function overrideBuildTask() {
    var c = window[window['GoogleAnalyticsObject'] || 'ga'];
    var d = c.getAll();
    if (console) { console.log('Found ' + d.length + ' ga trackers') }
    for (var i = 0; i < d.length; i++) {
        var e = d[i]; var f = e.get('name');
        if (console) { console.log(f + ' modified') }
        var g = e.get('buildHitTask');
        if (!e.buildHitTaskIsModified) {
            e.set('buildHitTask', function(a) {
            window['_sc_order'] = typeof window['_sc_order'] == 'undefined' ? 0 : window['_sc_order'] + 1;
                var b = ['sl=' + Version, 'u=' + e.get('clientId'), 't=' + (new Date().getTime() + window['_sc_order'])].join('&');
                a.set('dimension' + BindingsDimensionIndex, b);
                g(a);
                if (console) {
                    console.log(f + '.' + a.get('hitType') + '.set.customDimension' + BindingsDimensionIndex + ' = ' + b)
                }
            });
            e.buildHitTaskIsModified = true
        }
    }
}
window.ga = window.ga || function() {
    (ga.q = ga.q || []).push(arguments);
    if (arguments[0] === 'create') { ga(overrideBuildTask) }
};
ga.l = +new Date();

</script>

もちろん、GA から取り出したすべての結果を結合するスクリプトを作成する必要があります。

于 2016-09-08T09:17:23.670 に答える