【GA4×データポータル】URLの特定のディレクトリごとに集計したい
やりたいこと
データポータルにて、GA4のデータからURLのディレクトリごとにユーザー数・セッション数などを集計する。
今回の例:/blog/ の下のディレクトリで集計する
https://ドメイン/blog/{ここの部分}
やり方
ディメンション「ページ階層」にドメイン以下のURLがあるので、ここから正規表現で対象部分を抽出
→新しくディメンションを作成
①「フィールドを追加」をクリック
②フィールド名に任意のものを入れ、計算式に以下のものを記入
REGEXP_EXTRACT(ページ階層, "^/blog/(\\w*)/.*$")
③グラフのディメンションに②で作成したものを入れ、指標に集計したいものを選択すると完成。
注意
ここで使える正規表現系の関数はGoogle RE2正規表現を使用しているので、ここにないものは使用できないので注意
↓のような先読み・後読みは反応しませんでした。
/(?<=/blog/).*?(?=/)/
【雑記】GA4で検索キーワードが確認できなくて困った話
ほぼなにも解決していない記事です。
背景
仕事で新しいWEBサービスを作ったのでGA4で確認できるようにしたが、
どこを探しても旧Googleアナリティクスにあった「検索キーワード」が確認できない・・・
SEO対策の検証もしたいのに結果を見れないのは困った・・・という状態になった。
いろいろと調べた結果
GA4のドキュメントをみても、どこから検索キーワードを確認できるのかわからず仕舞いだが、
とりあえず「GoogleSearchConsole」を使うのが一番手っ取り早そう。
ただし、GA4とGoogleSearchConsoleを連携させることはできなさそうなので、できる限り早く対応してくれることを祈るのみ・・・
(この辺りについて知っている人いたら教えてください〜)
【re:dash】PythonでGoogleSpreadSheetのデータを読み込んだら日本語の列名が認識されなかった問題
起こったこと
re:dashのPythonで、スプレッドシートの内容をexecute→カラム名を選択した際、カラム名が日本語のものだけ処理がうまくいなかった(同じ文字だと認識されていない?)
import pandas as pd query_res = execute_query('GoogleSpreadSheet', '{スプレッドシート名}|{シート番号}') ss_df = pd.DataFrame(query_res['rows'], columns=query_res['rows'][0].keys()) print(ss_df) print(ss_df.filter(['id', 'col1', 'カラム1']))
col1 カラム1 id 0 a あ 1 1 b い 2 2 c う 3 3 d え 4 4 e お 5 id col1 0 1 a 1 2 b 2 3 c 3 4 d 4 5 e
解決方法
エンコードを確認したところ、 スプレッドシートから読み込んだDF→ascii Pythonのエンコード→utf-8 だった。
import chardet print(chardet.detect(ss_df.columns.values[2]) ) print(chardet.detect('カラム1'))
{'confidence': 1.0, 'language': '', 'encoding': 'ascii'} {'confidence': 0.87625, 'language': '', 'encoding': 'utf-8'}
import pandas as pd query_res = execute_query('GoogleSpreadSheet', '{スプレッドシート名}|{シート番号}') # 列名のエンコードの変更 utf8_col= {} for i in query_res['rows'][0].keys(): utf8_col[i] = i.encode('utf-8') ss_df = pd.DataFrame( query_res['rows'], columns=query_res['rows'][0].keys() ).\ rename(columns = utf8_col) print(ss_df.filter(['id', 'col1', 'カラム1']))
id col1 カラム1 0 1 a あ 1 2 b い 2 3 c う 3 4 d え 4 5 e お
【R言語】re:dashのAPIが返す結果をhttrパッケージを使ってGETする
目的
業務にて、re:dashでいくつかの集計を管理しているのですが、時折「re:dashの結果をRでごにょごにょしたい」という時があります。
とはいえ毎回csvでダウンロードしてread.csvというのも面倒で、どうにかRでの操作だけで完結させたい。
解決方法
re:dash公式APIより、https://DOMAIN/api/queries/QUERY_ID/results.csv?api_key=API_KEY
形式でGETすると、クエリの結果がそのままcsvが返ってきます。
これをhttrパッケージを使い、data.frameとして結果を取得します。
事前準備
re:dash管理画面のSettings > Accountより、API Keyを取得してください。
サンプルコード
## library library(dplyr) library(stringr) library(httr) ## args domain <- "xxxxx" query_id <- "xx" API_KEY <- "xxxxx" ## get data(csv形式) url <- "https://DOMAIN/api/queries/QUERY_ID/results.csv?api_key=API_KEY" %>% str_replace("DOMAIN", domain) str_replace("QUERY_ID", as.character(query_id)) %>% str_replace("API_KEY", api_key ) response <- GET(url) res_df <- content(response)
その他
「クエリの結果をGETした時刻」などの詳細データも欲しい場合は
url <- "https://DOMAIN/api/queries/QUERY_ID/results.csv?api_key=API_KEY" %>%
の .csv
を.json
に変更すればOK
(ただしGETしてからの処理は若干変わります)