はじめに:GA4のBQエクスポートに2方式(日次バッチ/ストリーミング)があり迷う
GA4(Googleアナリティクス4)をBigQueryと連携させると、画面の管理機能では集計しきれない生のイベントデータを、自分の手で自由に分析できるようになります。これは中小ECや個人事業主にとっても、大きな武器になります。
ところが、いざ連携設定の画面を開くと「毎日(Daily)」と「ストリーミング(Streaming)」という2つのチェックボックスが並んでいて、ここで手が止まる方がとても多いです。
- どちらを選べばいいのか分からない
- 両方チェックすると何が起きるのか分からない
- ストリーミングは課金されると聞いて怖い
この記事では、この2方式の仕組みと違いを整理したうえで、中小ECの現場ではどう選ぶのが現実的かをお話しします。結論を先にお伝えすると、多くの場合は「日次(Daily)」だけで十分です。理由も含めて見ていきましょう。
なお、課金額や仕様の細かい数値は時期によって変わります。最終的な判断の前には、必ずBigQuery の料金ページなど最新の公式ドキュメントを確認してください。
2つの方式の仕組み
GA4からBigQueryへのエクスポートは、選んだ方式によって作られるテーブルが変わります。
日次バッチエクスポート(Daily)
その名のとおり、1日分のイベントをまとめて1日1回エクスポートする方式です。
- 作られるテーブル:
events_YYYYMMDD(日付ごとに1つ) - 反映タイミング:おおむね翌日(前日分が完成した形で届く)
- 性質:データが確定した「完成版の台帳」
たとえば7月3日のデータは、events_20260703 というテーブルに、7月3日の全イベントがそろった状態で入ります。後から数字がブレにくいのが特徴です。
-- 日次テーブルを参照する例
SELECT
event_name,
COUNT(*) AS event_count
FROM `your-project.analytics_XXXXXXXXX.events_20260703`
GROUP BY event_name
ORDER BY event_count DESC;
ストリーミングエクスポート(Streaming)
イベントが発生するたびに、数分以内でBigQueryへほぼリアルタイムに流し込む方式です。
- 作られるテーブル:
events_intraday_YYYYMMDD - 反映タイミング:おおむね数分以内
- 性質:その日の最新状況を映す「途中経過のメモ」
events_intraday_ は当日分の一時テーブルです。1日が終わって日次バッチが完成すると、その日の確定版として events_YYYYMMDD が別途新しく作られ、対応する events_intraday_YYYYMMDD は削除されます。同じテーブルが書き換わるのではなく、確定版テーブルが新規に作られ、一時テーブルが消える、という流れです。
-- 当日のintradayテーブルを参照する例
SELECT
event_name,
COUNT(*) AS event_count
FROM `your-project.analytics_XXXXXXXXX.events_intraday_20260705`
GROUP BY event_name
ORDER BY event_count DESC;
ここで大事なのは、両方の設定を有効にしている場合、当日は events_intraday_ を見て、過去日は events_ を見るという使い分けになる点です。集計クエリを書くときは、この違いを意識しないと「当日だけデータが出ない」「同じ日を二重に数える」といった事故が起きます。
コスト・鮮度・用途の違い
3つの観点で比較すると、性格の違いがはっきりします。
| 観点 | 日次バッチ(Daily) | ストリーミング(Streaming) |
|---|---|---|
| テーブル | events_YYYYMMDD | events_intraday_YYYYMMDD |
| 鮮度 | 翌日に前日分が確定 | 数分以内でほぼリアルタイム |
| データの安定性 | 高い(確定済み) | 途中経過のため変動あり |
| エクスポート自体の費用 | かからない | Google側のエクスポート課金の対象 |
| 向いている用途 | 月次・週次の定例分析、レポート | 当日の動きの監視、即時の異常検知 |
ポイントは、日次バッチはエクスポートの追加費用がかからないのに対し、ストリーミングはエクスポートそのものに対してGoogle側が課金する仕組みになっていることです。これはGA4 BigQuery Export の「ストリーミングエクスポート」に対する課金であり、BigQuery一般の「ストリーミングインサート(streaming inserts)」課金とは名目が異なります(同じものと混同しないよう注意してください)。正確な課金条件・金額は時期によって変わりうるため、必ずGA4 BigQuery Export の公式ドキュメントとBigQuery の料金ページで最新情報を確認してください。
もうひとつ忘れがちなのが、どちらの方式でも「エクスポート後のデータをBigQueryに保管する費用(ストレージ)」と「そのデータを分析クエリで読む費用(クエリ)」は別途かかるという点です。エクスポートの方式選びと、その後の運用コストは分けて考えるとすっきりします。クエリ費用を抑える具体的な工夫は BigQueryのコストを月1万円以内に抑える実践テクニック にまとめています。
中小ECでの使い分け
ここからが実務の話です。在庫数十〜数百点、1日のセッションが数十〜数千程度の中小ECや個人事業主を想定すると、判断はかなりシンプルになります。
基本は「日次(Daily)」だけでよい
多くの中小ECで本当に知りたいのは、次のような問いです。
- 先月いちばん売れた商品ページはどれか
- 検索流入の多いページはどこか
- カート投入から購入までどのくらい離脱しているか
これらはすべて翌日確定の日次データで答えられます。当日の数字を秒単位で追いかける必要はほとんどありません。日次バッチはエクスポート費用もかからないので、まずは Daily だけを有効にするのが、コストと安定性の両面で最も無難です。
ストリーミングを足すべきケース
一方で、次のような「即時性」が事業上の価値になる場合は、ストリーミングを追加する意味があります。
- 大型セール・タイムセール当日に、流入や購入の動きをリアルタイムで監視したい
- 広告を大きく出稿した直後の反応を、その場で確かめたい
- 決済エラーや特定イベントの急増を、当日中に検知して手を打ちたい
このような明確なリアルタイム要件がある場合は、Daily と Streaming を併用します。普段はDailyだけにしておき、イベント前に一時的にStreamingを有効化するといった運用も可能です。
迷ったときの目安
| あなたの状況 | おすすめ |
|---|---|
| とりあえずBQで分析を始めたい | Daily のみ |
| 月次・週次レポートが中心 | Daily のみ |
| セール当日の動きを生で見たい | Daily + Streaming |
| 当日中の異常検知をしたい | Daily + Streaming |
注意:ストリーミングは課金・intradayの扱い
ストリーミングは「有効にしただけ」で費用が発生しうる方式です。 GA4 BigQuery Export の「ストリーミングエクスポート」に対してGoogle側がエクスポート量に応じて課金する仕組みのため、アクセスが多いサイトほどエクスポート量も増え、費用も積み上がります(BigQuery一般の「ストリーミングインサート」課金とは名目が別です)。「念のため両方チェック」は、知らないうちにコストを増やす原因になりがちです。正確な課金条件は公式の料金ページで確認し、本当にリアルタイムが必要かを見きわめてから有効にしましょう。
events_intraday_の扱いにも注意が必要です。 intradayは当日用の一時テーブルで、日次バッチが完成すると確定版のevents_YYYYMMDDが別途新規に作られ、その日のevents_intraday_YYYYMMDDは削除されます(同じテーブルが書き換わるわけではありません)。当日と過去日でテーブル名が変わるため、集計クエリでは「当日はintraday、過去日はevents」をきちんと出し分ける必要があります。これを誤ると、二重カウントや当日分の欠落が起こります。
課金体系・テーブルの挙動・反映タイミングは時期によって変わる可能性があります。実際に設定・運用する前に、必ずBigQuery の料金とGA4 BigQuery Export の公式ドキュメントで最新情報を確認してください。
まとめ
GA4のBigQueryエクスポートにおける2方式の違いを整理しました。
- 日次バッチ(Daily):翌日確定・
events_YYYYMMDD・エクスポート費用なし。安定した定例分析向き。 - ストリーミング(Streaming):数分以内・
events_intraday_YYYYMMDD・Google側のエクスポート課金の対象。当日の即時監視向き。 - 中小ECの基本は Daily のみ。明確なリアルタイム要件があるときだけ Streaming を足す。
- intradayテーブルは当日用の一時テーブル。日次確定時に
events_YYYYMMDDが新規作成されevents_intraday_YYYYMMDDは削除されるため、当日と過去日でテーブルの出し分けが必要。
「とりあえず両方オン」ではなく、自分の事業に本当に即時性が要るのかを起点に選ぶと、コストも運用もすっきりします。
なお、BigQueryに集めたGA4データは、検索流入の分析と組み合わせるとさらに役立ちます。Search Consoleと掛け合わせて自然検索の動きを追う方法は GA4×BigQuery×Search Consoleで自然検索を分析する で解説しているので、あわせてどうぞ。