1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【BigQuery】BigQuery UtilsでGA4のデータ抽出

Posted at

みなさんこんにちは
今回は、Googleアナリティクス4(GA4)のSQLが長ったらしくてイヤ複雑で困っているという人向けに便利なライブラリ「BigQuery Utils」を紹介します。

BigQuery Utils

bigquery-utils

README(一部抜粋)

This repository provides useful utilities to assist you in migration and usage of BigQuery.

(BQの複雑なデータ構造に悩む全人類の救世主!個人的にはusefulの前にveryを10個くらい追加したい!)

この中のbigquery-utils/udfs/community/に便利なUDFがたくさん置かれています。

今回は、特に使用頻度が高い関数get_value()url_parse()を見ていきます。

get_value()

構造体の配列を扱うときに便利な関数

閲覧されたページのurlを知りたい場合、GA4のevent_paramsフィールドからkey=page_locationのvalueのstring_valueをみるために、こんなSQLを書いていると思います

SELECT 
    (SELECT value.string_value FROM UNNEST(event_params) WHERE key = "page_location") AS page_location
FROM 
    `project-***.analytics_*****.events_YYYYMMDD`

これが、BigQuery Utilsを使うと次のように書けます。

SELECT
    bqutil.fn.get_value("page_location", event_params).string_value AS page_location
FROM 
    `project-***.analytics_*****.events_YYYYMMDD`

url_parse()

URLから指定した部分を返す関数

例えば取得したpage_location

https://qiita.com/hirakuma/items/06aa9784073609d425de?key=value#anchor

このままでは使いにくいので、HOSTやPATHを取得したいときは

bqutil.fn.url_parse(url, 'HOST'), -- => qiita.com
bqutil.fn.url_parse(url, 'PATH'), -- => hirakuma/items/06aa9784073609d425de
bqutil.fn.url_parse(url, 'QUERY'), -- => key=value#anchor
bqutil.fn.url_parse(url, 'REF'), -- => anchor
bqutil.fn.url_parse(url, 'PROTOCOL') -- => https

こうします。QUERY部分をもっと詳しく見たいときはurl_keys()url_parse()を使うと良いです
(正規表現などでごにょごにょ書く必要が無く、とても重宝しています!)

まとめ

・BigQuery Utilsはとても良い
・BigQuery Utilsはとても良い(大事なことなので2回言いました)

bqutil.fnには他にも便利な関数がたくさんあるので、暇なときに覗いてみるといいかもしれません

次回予告

データポータル連携について書く、、、かも(UAからGA4への移行で困っている人たくさんいますよね。きっと)

1
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?