Googleアナリティクスにデータを送信するアプリがあります。 Hadoopクラスターでこのデータにアクセスして保存することに興味があります。この生データはログの形になると思います。特に、user_id、ユーザーが行った検索、およびユーザーがアプリで支払うことにした検索オプションを確認してください。
これどうやってするの?私はGAにまったく慣れていないので、アプリにGAを設定したのは私ではありませんでした。この生データにアクセスできます。
アクセスできないため、Big Queryを使用できないことを追加します。また、GA=を設定したユーザーは、ユニバーサルアナリティクスへのアップグレードに興味がありません。
どんな助け/考え/提案もありがたいです。
ありがとう!
ログを取得する方法はありませんが、..
Google Analytics API を使用すると、システムからデータを抽出できます。
できることには制限があります。
Google Analyticsのプロのお客様は、GA to Big Query から生データをエクスポートできます。BigQueryからのデータのエクスポートは無料ですが、ストレージですが、クエリ処理の料金は使用量に基づいています。
元の質問に回答することになっているため、サーバーコールシステムを複製する以外に、実際の生のGoogle Analyticsログを取得する方法はありません。
つまり、analytics.jsスクリプトの変更されたコピーを使用して、サーバー呼び出しを収集できるホストされたウェブサーバーを指す必要があります。
一言で言えば、あなたのサイトが http://www.yourdatacollectionserver.com/collect?v=1&t=pageview [...]の代わりにhttp://www.google-analytics.com/collect?v=1&t=pageview[...]
これは、通常のGoogle Analyticsタグと共に、GoogleのGTMなどのタグマネージャーを使用して簡単に導入できます。
これにより、ETL、Snowplow、Splunk、またはお気に入りのPython/Perl/Rubyテキスト解析エンジンを使用して処理できるログエントリがWebサーバーに効率的に作成されます。
その場合、実際の生ログを処理可能なものに処理するのはあなた次第です。そして、あなたが尋ねる前に、これは遡及的ではありません。
つまり、集計データを取得できます。 Google Analytics APIを使用して、Google Analyticsアカウントで表示できるデータ。生データを取得するには、プレミアムユーザーである必要があります(1年あたり約150,000のコスト)。プレミアムユーザーは、Google BigQueryにエクスポートして、そこから好きな場所にエクスポートできます。
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から取り出したすべての結果を結合するスクリプトを作成する必要があります。