2016-11-28 12 views
3

Firebase Analyticsの文書(https://support.google.com/firebase/answer/6317517#active-users)によると、有効なユーザ数は、特定の日にセッションを開始したユニークユーザの数です。また、ドキュメントに従って、セッションが開始されるたびにsession_startという名前のイベントが送信されます。私はBigQueryのエクスポートを使用してそのメトリックを取得しようとしていますが、私のクエリは私に別の結果を与えています(FB分析の14908 BigQueryで15636)Firebase AnalyticsダッシュボードとBigQueryエクスポートの間の「アクティブユーザのメトリック」の差異

私はまた別のタイムゾーンに変換して、どのようなタイムゾーンでも同じ(または類似の)結果を得ることはありません

アクティブなユーザのFirebase Analyticsダッシュボードと同じ結果を得るには、どのクエリを実行する必要がありますか?

私のクエリは

SELECT EXACT_COUNT_DISTINCT(user_dim.app_info.app_instance_id) 
FROM table_date_range([XXXXX.app_events_], timestamp('2016-11-26'), timestamp('2016-11-29')) 
WHERE DATE(event_dim.timestamp_micros) = '2016-11-27' 
AND event_dim.name ='session_start' 

おかげ@djabiの答えは私がuser_engagementではなくsession_startを使用するように私のクエリを変更

更新

あり、それはかなり良く働くようになりました。ただし、若干の小さな違いがあります(日付によっては16Kのうち10から50までの範囲です)。

DATE(date_add(event_dim.timestamp_micros,1,'hour'))で遊んでもう一度別のタイムゾーンを使用しようとしましたが、Firebase Analyticsダッシュボードの正確な数値は決して得られません。

新しい数値は統計的に許容できると考えられるほど十分ですが、クエリを改善し正確な結果を得るための提案があれば疑問ですか?

現在のクエリは次のようになります。

SELECT 
    COUNT(*) AS active_users 
FROM (
    SELECT 
    COALESCE(user_dim.user_id, user_dim.app_info.app_instance_id) AS user_id 
    FROM 
    TABLE_DATE_RANGE([XXXXX.app_events_], TIMESTAMP('2016-11-24'), TIMESTAMP('2016-11-29')) 
    WHERE 
    DATE(event_dim.timestamp_micros) = '2016-11-25' 
    AND event_dim.name ='user_engagement' 
    GROUP BY 
    user_id) 

注:それが問題

可能性が示唆するつもりだった場合、誰に、私たちはuser_idを送信していないので、 COALESCEは常に app_instance_idを返します。現時点では

答えて

3

オフラインデバイスのデータがアップロードされるまで、3日間のフルサポートが必要です。クエリでは、イベントのタイムスタンプに基づいてイベントを正しくフィルタリングし、3日からデータを取得しますが、それは今日から1日半であり、すべてのデータをアップロードするだけで十分です。昨日から3日間をお試しください。

また、session_startの代わりにuser_engagementイベントを使用してみてください。私は、アクティブなユーザー数はsession_startイベントではなく、user_engagementに基づいていると考えています。

また、FBレポートには少し時間がかかるため、翌日にFBレポートを確認してください。

FBレポートはアカウントのタイムゾーンで実行され、イベントはUTCでタイムスタンプされるため、FBレポートの日はUTCの暦日と異なります。その不一致をコントロールして、一致する数字を取得したいとします。代わりに

user_dim.app_info.app_instance_id 

user_dim.device_info.resettable_device_id 

をし、それが良い結果をもたらし:私が使用Androidの統計については

+0

それは素晴らしいです。ありがとうございました! user_engagementでsession_startを変更すると、数値はまだ正確ではありませんが、はるかに近い数値になります。 タイムゾーンを混乱させようとしましたが、最良の結果は私がそれを変更しない時なので、タイムゾーンは実際にはUTC(私のクライアントはロンドンに拠点を置くので意味があります)と仮定しています。 さらに詳しい情報がある場合はこの質問を残しておいてください。他に誰もいない場合は正しい答えを受け入れるようにします –

+0

ユーザーの関与を試みたことはありませんでした。セッションを開始したユーザー "_。しかし経験的には正しいと思いますが、ドキュメントはありません(セッションを開始せずにユーザーのエンゲージメントを見ることは可能ですが、[この他の質問](http://stackoverflow.com/questions/38967231/firebase)。 -analytics-data-disparity)) –

+0

文書が正しくありません。すぐに修正される予定です。質問していただきありがとうございます。私のマニュアルが壊れていることがわかりました。乾杯。 – djabi

0

1

セッションは、変更可能なそれぞれのアプリでユーザーアクティビティ10秒後にデフォルトで測定されます。セッションの開始時間カウントをできるだけ少ない数字に変更してみると、期待している数字に近い数字が表示されます。

関連する問題