2017-05-26 62 views
0

我已設法計算ISO周的總事件數,但未使用BigQuery爲給定Google Analytics事件計算唯一事件。在檢查GA時,total_events與點上的GA接口相匹配,但unique_events已關閉。你知道我怎麼能解決這個問題嗎?在BigQuery中計數Google Analytics(分析)唯一事件

查詢:

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 AND totals.visits = 1,會發生什麼情況?它工作嗎? –

+0

Hi @Will the unique_events在添加AND totals.visits = 1時仍然關閉。你知道我可以嘗試的其他事情嗎? –

+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

在谷歌分析的獨特事件的定義是:

與類別/操作/標籤 值的事件被視爲一個會話中至少一次的次數的計數。

換句話說,發送特定事件(由類別,動作和標籤定義)的會話數量。在您的查詢中,您可以統計具有該事件的唯一身份訪問者的數量,而您需要統計會話的數量,並記住具有不同標籤的事件應計爲不同的唯一事件(儘管我們只對類別感興趣行動)。

一種可能的方式來解決你的代碼是:

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接口的數據。

相關問題