2017-05-26 91 views
0

Bigweryを使用したGoogleアナリティクスのイベントで、ISOweekによる合計イベントは計算できましたが、ユニークイベントは計算できませんでした。 GAをチェックすると、total_eventsはドットのGAインターフェースに一致しますが、unique_eventsはオフです。私はこれをどのように解決できるか知っていますか?BigQueryでのGoogleアナリティクスのユニークなイベントのカウント

クエリ:

SELECT INTEGER(STRFTIME_UTC_USEC(PARSE_UTC_USEC(date),"%V")) iso8601_week_number, 
hits.eventInfo.eventCategory, 
hits.eventInfo.eventAction, 
COUNT(hits.eventInfo.eventCategory) AS total_events, 
EXACT_COUNT_DISTINCT(fullVisitorId) AS unique_events 
FROM 
    TABLE_DATE_RANGE([XXXXXX.ga_sessions_], TIMESTAMP('2017-05-01'), TIMESTAMP('2017-05-07')) 
WHERE 
    hits.type = 'EVENT' AND hits.eventInfo.eventCategory = 'BIG_Transaction' 
GROUP BY 
iso8601_week_number, hits.eventInfo.eventCategory, hits.eventInfo.eventAction 
+0

where句に 'AND totals.visits = 1'を追加するとどうなりますか?それは動作しますか? –

+0

こんにちは、AND totals.visits = 1を追加すると、unique_eventsはオフになります。私が試すことができる他のことを知っていますか? –

+0

なぜうまくいかないのか分かりません。他のものは、あなたの 'TABLE_DATE_RANGE'がintradaysとga_sessionsテーブルを同時に含んでいないこと(データが重複する原因となるもの)を確認することです。また、GAの解析が正しく行われているかどうかを確認することもできます。それ以外の場合は、このクエリでエラーが表示されません(ある場合は表示できません)。また、BQの標準バージョンを使用することをお勧めします。 https://cloud.google.com/bigquery/docs/reference/standard-sql/はるかに優れています。 –

答えて

0

私は問題がGAはユニークなイベントを定義しながら、あなただけの日付の間に「として、ユニーク訪問者の数が指定されたアクションを完了した回数をカウントしていることであると信じてセッションに特定のディメンション「」が含まれる範囲。

したがって、私はすぐ下にあなたのコードを変更します

SELECT INTEGER(STRFTIME_UTC_USEC(PARSE_UTC_USEC(date),"%V")) iso8601_week_number, 
hits.eventInfo.eventCategory, 
hits.eventInfo.eventAction, 
COUNT(hits.eventInfo.eventCategory) AS total_events, 
EXACT_COUNT_DISTINCT(CONCAT(fullVisitorId, STRING(visitId))) AS unique_events 
FROM 
    TABLE_DATE_RANGE([XXXXXX.ga_sessions_], TIMESTAMP('2017-05-01'), TIMESTAMP('2017-05-07')) 
WHERE 
    hits.type = 'EVENT' AND hits.eventInfo.eventCategory = 'BIG_Transaction' 
GROUP BY 
iso8601_week_number, hits.eventInfo.eventCategory, hits.eventInfo.eventAction 

はこれがあなたに与えられたイベントを持っていたセッションの個別のカウント数を与える必要があります。

+0

標準SQL構文を使用してそれを行うには? – igsm

0

Googleアナリティクスでユニークなイベントの定義は次のとおりです。

カテゴリ/アクション/ラベル 値を持つイベントが少なくとも一回のセッション内で見られた回数のカウント。

つまり、特定のイベント(カテゴリ、アクションANDラベルで定義)が送信されたセッション数。あなたのクエリでは、イベントが発生したユニークビジターの数をカウントしますが、セッション数を数え、異なるラベルのイベントを異なるユニークイベントとしてカウントする必要があります(カテゴリーやアクション)。あなたのコードを修正する

可能な方法は次のとおりです。

SELECT 
    INTEGER(STRFTIME_UTC_USEC(PARSE_UTC_USEC(date),"%V")) iso8601_week_number, 
    hits.eventInfo.eventCategory, 
    hits.eventInfo.eventAction, 
    COUNT(hits.eventInfo.eventCategory) AS total_events, 
    EXACT_COUNT_DISTINCT(CONCAT(fullVisitorId,'-',string(visitId),'-',date,'-',ifnull(hits.eventInfo.eventLabel,'null'))) AS unique_events  
FROM 
    TABLE_DATE_RANGE([XXXXXX.ga_sessions_], TIMESTAMP('2017-05-01'), TIMESTAMP('2017-05-07')) 
WHERE 
    hits.type = 'EVENT' AND hits.eventInfo.eventCategory = 'BIG_Transaction' 
GROUP BY 
    iso8601_week_number, hits.eventInfo.eventCategory, hits.eventInfo.eventAction 

このクエリの結果は、GAインターフェース内のデータと一致している必要があります。

関連する問題