事の始まり
このツイートをグループのメンバーから共有してもらった。
うちのサイトは数が多いから割り当てに引っかかる可能性も高くなってくるなーと。
割当制限に引っかかって「みれないんですけど!」って問合せを回避したいので、別の方法も検討
GA4のデータはBigQueryに連携はしてるので、BigQueryから取ってくるのが候補にあがってきた。
ただ、コストをできる限り抑えた運用をしたいと思ったので、改めてちゃんと調べてみたのをまとめてます。
Looker Studio使用時のBigQueryの課金体制
どういうタイミングで課金されるのかは良記事があるので紹介。
- データポータルは無料だが、データポータル経由でBigQueryにアクセスすると、BigQueryの利用料金が発生する
- レポートの編集・閲覧中またはキャッシュ保存中に不定期に、BigQueryに対するクエリが発行される
- ビュー側(利用者側)でディメンションを使用すると対応するグラフの数だけクエリが実行される
- デフォルトで12時間ごとにBigQueryから非同期的にデータを取得しようとし、このたびにBigQueryの費用が発生する
- キャッシュによってBigQueryの費用は最小限に抑えられるが、キャッシュを更新すると、BigQueryの費用が発生する可能性がある
- キャッシュはベストエフォート型であり、クエリレスポンスのサイズによっては利用できない可能性がある
データポータルとBigQueryを連携したら、数十万課金してしまった
https://qiita.com/yan_yan/items/3aa4cb23a221b0db0c18
個人的に想定と違って注意しなきゃいけないと思った点は2つ。
- デフォルトで12時間ごとにBigQueryから非同期的にデータを取得するということ。
- キャッシュの範囲?が狭い
データの更新頻度が最大12時間
コネクタの種類によってデータの更新頻度は異なる。
コネクタ | 更新頻度オプション |
---|---|
BigQuery | 分単位:1~50分、時間単位:1~12時間 |
Googleアナリティクス | 1、4、12時間ごと |
Googleスプレッドシート | 15分ごと、1、4、12時間ごと |
12時間が最大ってことなので、見ることのない休みの日まで動くということ。
Tableauとかなら曜日指定もできるから、最低限をギリギリ攻めることできたけど、Looker Studioでは調節がゆるめ。
日次レポートならまだしも、月次レポートとかもし作ってしまったら、無駄なクエリコストの垂れ流し。
頻度少ないものは、GA4から直接とってきた方がいい。
全部BigQueryってやるんじゃなくて、上手く組み合わせる必要あり。
キャッシュ保存の仕組み
まずは、ヘルプの情報を確認してみると以下のような内容が書いてある
データポータルにはそれぞれ固有のキャッシュが存在する。
キャッシュには、コンポーネントのデフォルトのビジュアル表示を作成するために必要なデータのみが含まれる
例
2つのディメンションと3つの指標を含むグラフを作成し、条件としてデフォルトの期間過去28日間、なんらかの値(国=ベルギーなど)でフィルタしたテーブルのキャッシュにはそのテーブルの表示に必要なデータのみが含まれる。
閲覧者が機関を変更したり、新しい国でフィルタしたりすると、基になるデータセットから新しいデータが要求される。新しいクエリの結果はテーブルのキャッシュに追加され、将来の仕様に備えて新しいクエリを記憶する。
キャッシュが更新されると、古いキャッシュデータと記憶されているクエリはすべて破棄される。
ここで厄介なのが、フィルタの値変えるだけでキャッシュが更新されるということ。
想定ではある程度まとまった範囲の情報を取ってきて、その中で表示するものを選択できるのかと思ったけど、そうじゃないらしい。
だから、現場が見る時にフィルタをいじれるようにしておくと、とんでもないクエリコストが発生するということなんじゃないかと。
なので、Looker Studio上でデータをいじくりまわしてみてもらう運用じゃなくて、ある程度幅を持たせた状態で表示させておくほうよい。
まとめ
基本的に意識しないと結構クエリが流れているっていう状態に陥ることを把握しておくことで、余計な垂れ流しを防ぐことはできるようになる。
見る頻度が毎日じゃないものはGA4から直接とるようにすることで、できる限り余計なクエリを流さないようにすること。
そして、ユーザーがLooker Studio上でいじっていろんな角度から分析できるような環境を整えてあげよう!とかするとコストが跳ね上がる可能性があるので、細かい部分はデータをダウンロードしてもらって手元でやってもらうほうがコストを抑えるという点ではよさそう。