Google 분석법 4가 나왔습니다. 방문 내역을 바탕으로 BigQuery로 데이터 분석을 진행했습니다.

찌꺼기는 가5의 mm를 잘못 썼다

TL;DR

  • Virtual 360을 사용하지 않고 액세스 로그를 BigQuery
  • 로 전달
  • Google 분석법 4의 데이터를 바탕으로 BigQuery 데이터 분석 단계
  • 요약
  • 실제적으로 서로 다른 경로의 사용자 등록수를 제시했다
  • 구글 분석 4


    2019년 발표된'적용+네트워크 속성'은 2020년 10월 공식 발표된 새로운 속성이다.
    https://support.google.com/analytics/answer/10089681
    GA4

    특징.

  • 페이지 보기와 발화 사건 등을 모두'사건'으로 관리
  • 웹 뿐만 아니라 응용 프로그램도 측정할 수 있음
  • 무료 GA라도 BigQuery에 데이터 출력
  • 구해상도 또는 GA4가 할 수 없는(search constore 설정 등)
  • 실제로 BigQuery로 GA4의 데이터를 분석해 봤어요.


    이번에 BigQuery에 데이터를 출력하고 BigQuery로 접근 로그를 데이터 분석합니다

    분석 내용


    아래의 구상을 분석해 보자

    사용자 등록 프로세스



  • LP로 이동
  • 쿼리 매개변수에 utm_xx를 추가하여 GA를 통한 경로 결정

  • 등록 페이지로 마이그레이션 버튼에서 서비스 등록 페이지로 마이그레이션
  • 서로 다른 영역이나 조회 파라미터를 계승할 수 없기 때문에 버튼을 눌렀을 때 GA 이벤트에 불을 붙인다

  • 등록!
  • 등록 시 데이터베이스에 등록된 사용자utm_campaign와 연결
  • 구상된 표 설계


    다음 표의 데이터도 BigQuery와 함께 작동한다고 가정합니다.
    -- ユーザ情報が格納されているテーブル
    CREATE TABLE `user` (
      `id` bigint NOT NULL AUTO_INCREMENT,
      `name` varchar(255) DEFAULT NULL,
      `created_at` datetime NOT NULL,
      `updated_at` datetime NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
    
    -- ユーザ登録時のutm_campainを取得
    CREATE TABLE `user_referrer` (
      `user_id` bigint NOT NULL,
      `utm_campaign` varchar(255) NOT NULL,
      `created_at` datetime NOT NULL,
      `updated_at` datetime NOT NULL,
      PRIMARY KEY (`user_id`)
    )ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
    
    주제 밖의 말, cloud_sql을 사용한다면 CloudSQL Federation를 사용하면 UI로 연합할 수 있어 추천합니다.
    https://qiita.com/fuku_tech/items/1c0a1d1d1e59cd188e2f

    절차.


    큰 강
  • LP에 GA4 설정
  • GA4에서 BigQuery로의 데이터 내보내기 포트 설정
  • BigQuery를 통한 쿼리
  • LP에 GA4 설정


    https://support.google.com/tagmanager/answer/9442095?hl=ja
    알기 쉬운 기사가 있으니 여기를 참조하세요.
    https://blog.apar.jp/web/14911/

    GA4->BigQuery 제휴


    알기 쉬운 기사가 있으니 여기를 참조하세요.
    이 글은 흐르는 데이터 추출 포트의 비용이 높기 때문에 매일 일괄 처리되는 추출 포트를 전제로 조회를 써 보았다
    https://yoshihiko-nakata.com/archives/799

    BigQuery로 GA4 페이지 보기


    BigQuery에서 GA4 데이터analytics_xxxxxx/event_YYYYMMDD는 매일 데이터를 저장합니다.
    SELECT DATE(DATETIME_ADD(PARSE_DATETIME("%Y%m%d", event_date), INTERVAL 9 HOUR)) AS event_date,
            event_timestamp,
            event_name,
            traffic_source.name AS campaign,
            (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'link_domain') AS link_domain
    FROM `xxxxxxx.analytics_YYYYMMDD.events_*`
    WHERE _TABLE_SUFFIX BETWEEN FORMAT_DATE("%Y%m%d", PARSE_DATE("%Y-%m-%d", '2021-01-05')) AND FORMAT_DATE("%Y%m%d", PARSE_DATE("%Y-%m-%d", '2021-01-17')
    AND  event_name = 'page_view';
    
  • GA4의 데이터는 등급으로 평탄화되어야 한다.
    GA4 모드
    https://support.google.com/analytics/answer/7029846?hl=en&ref_topic=9359001
  • traffic_source.name에campaign의 데이터가 있음
  • _TABLE_SUFFIX 중 일부로PARSE_DATE Redash에서 날짜를 변수로 할 때 쉽게 변경할 수 있도록 설정
  • event_namepage_view.이벤트click를 클릭하면 적절하게 수정하십시오.
  • link_domain는 이벤트를 클릭할 때 이전할domain입니다.
  • 사용자의 등록 경로 가져오기


    SELECT 
        user_id, 
        utm_campaign,
        DATE(DATETIME_ADD(created_at, INTERVAL 9 HOUR)) AS registered_date,
    FROM xxxxx.user_referrer
    

    경로별 로그인 수


    상술한 두 개의 조회를 합쳐서 얻다.
    날짜와 경로에 따라 로그인 페이지의 클릭수/가입 사용자 수를 계산합니다.
    WITH 
    analytics AS
      (SELECT DATE(DATETIME_ADD(PARSE_DATETIME("%Y%m%d", event_date), INTERVAL 9 HOUR)) AS event_date,
            event_timestamp,
            event_name,
            traffic_source.name AS campaign,
            (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'link_domain') AS link_domain -- clickイベント時の遷移先ドメイン
        FROM `xxxxxxx.analytics_YYYYMMDD.events_*`
        WHERE _TABLE_SUFFIX BETWEEN FORMAT_DATE("%Y%m%d", PARSE_DATE("%Y-%m-%d", '2021-01-05')) AND FORMAT_DATE("%Y%m%d", PARSE_DATE("%Y-%m-%d", '2021-01-17')
        AND  (event_name = 'page_view' OR event_name = 'click')),
    user_ref AS
      (SELECT user_id, utm_campaign
        FROM xxxxx.user_referrer),
    analytics_sum AS
      (SELECT event_date,
              utm_campaign,
              COUNTIF(event_name = "page_view") AS page_view,
              COUNTIF(event_name = "click" AND link_domain = "register.xxxx.com") AS click_register_button -- 登録ページに遷移するボタンのみカウント
       FROM analytics
       GROUP BY event_date, utm_campaign)
    
    SELECT  analytics_sum.event_date, -- アクセスログの日
            analytics_sum.utm_campaign AS utm_campaign, -- utm_campaign
            analytics_sum.page_view AS page_view, -- ページビュー
            analytics_sum.click_register_button AS click_register_button_count, --登録ページ遷移ボタンクリック
            count(user_ref.user_id) AS sum, -- 登録数
    FROM analytics_sum
    LEFT JOIN user_ref ON user_ref.registered_date = analytics_sum.event_date AND user_ref.utm_campaign = analytics_sum.utm_campaign
    GROUP BY analytics_sum.event_date,
             analytics_sum.page_view,
             analytics_sum.click_register_button,
             analytics_sum.utm_campaign
    ORDER BY analytics_sum.event_date DESC, analytics_sum.utm_campaign DESC
    
    
  • analytics에서 page_view 이벤트 가져오기click
  • user_ref에서 사용자의 로그인 경로 일람
  • analytics_sum 날짜당 클릭수 및 페이지 뷰 개수
  • user_refanalytics_sum 더하기
  • 감상


    개인은 서비스 데이터 내 데이터만 분석할 수 있고, 유입에 대한 종합 분석이 가능하기 때문에 비즈니스 대책을 고려할 때 범위가 확대되겠죠.
    또 홈페이지뿐 아니라 앱에서도 이용할 수 있어 다음에 한번 해보고 싶다.

    좋은 웹페이지 즐겨찾기