제목
GA4 userid 관련 도움 요청드립니다ㅠㅠ..
작성자
헤헤
작성일
2023-04-22 03:05
조회
592
답변완료
(이미지 첨부해두었습니다!)

안녕하세요,

다름이 아니라

데이터레이어로 푸시한 유저 아이디가 GA상에서 조회가 되지 않습니다.

저희 서비스는 로그인을 해야만 이용할 수 있는 서비스이기때문에
개발자분께서 로그인 이후 페이지가 로드될 때마다 유저 아이디를 푸시하는 것으로 세팅을 해주셨습니다.

그런데
GTM 미리보기로 보았을 때 유저아이디가 넘어오는게 확인이 되는데,
이상하게  GA상에서 확인이 안됩니다.
('사용자 ID로 로그인함'으로 측정 기준 선택시, '지금은 이 측정기준에 사용할 수 있는 기준이 없습니다.'가 뜨며,
탐색 - 사용자개별화분석 에서도 앱 인스턴스 ID만 뜹니다..)

GTM에서도 가이드에 맞게 문제 없이 세팅을 하였고,
GA에서도 보고 ID -혼합됨으로 세팅을 해두었는데요,

어떤것이 문제인지 알 수 있을까요?ㅠㅠ

<추가 질문>
1) 서치를 해보니, 유저 아이디의 형식이 단순 숫자열일 경우애는 GA가 인식을 하기 어렵다는 글이 있던데,
(https://www.openads.co.kr/content/contentDetail?contsId=9949)
그것이 문제일 수도 있을까요? (저희 서비스의 유저 고유 식별자는 숫자로만 구성되어있습니다)

2) 유저아이디가 푸시될 때, GTM 미리보기 외에도 GA 의 디버그뷰에서도 바로 유저아이디 확인이 가능한가요?
첨부파일 2개
전체 12

  • 2023-04-23 19:30

    1. 프론트엔드를 reactjs/nextjs를 사용하시고 계신가요?
    - user_id는 로그인 포함하여 모든 이벤트에, 그리고 pageview가 찍힐때, gtm이 호출될 때 (window.datalayer 객체가 생성되면서, gtm스크립트 상단에서) 넣어주어야 하는데..요..
    - next.js/react 동작 특성상 이렇게 하려면 결국 user_id가 갱신될 때 쿠키를 이용하여 리로드 될 때에나 넣어주거나 해야하더라고요

    2. cookie에 넣어서 수집하도록 하세요.
    - 일주일정도 머리 아팠는데 https://www.analyticsmania.com/post/google-analytics-user-id-with-google-tag-manager/
    - 쿠키에 넣어서 인지시키는 것이 가장 편했어요.
    - 개인정보 처리방침 등 검토하시고 괜찮으면 쿠키에 넣으시죠!


    • 2023-04-27 02:21

      쿠키를 활용하는 방법도 있군요..! 공유해주신 자료 참고해보겠습니다. 감사합니다!!!


  • 2023-04-24 03:23

    1. 음... 저는 숫자가 user_id임에도 GTM으로 수집하는데는 문제가 없어서 openads 글의 내용은 문제가 아닐 가능성이 커보이구요.
    2. 정상적으로 설정이 되어있다면, GA 디버그 뷰의 사용자 속성 항목에서 user_id 확인이 가능합니다.

    먼저, GTM의 구성태그에 대해서 설명을 드리자면
    GA4 구성 태그에 설정된 값은 태그가 실행되는 시점에만 업데이트됩니다.
    구성 태그에 설정되어 있는 변수의 값이 이후에 변경되더라도 구성 태그에 설정된 값은 변하지 않습니다.

    이는 구성 태그가 '태그'이기 때문에 발생하는 현상인데요.
    이로 인해 값을 업데이트하기 위해서는 값이 업데이트 되는 시점에 구성 태그를 추가로 실행시켜야 합니다. (추가 실행시 페이지뷰와 같은 기타 설정들이 중복이 되지 않는지는 반드시 점검 필요!)

    예상되는 문제로는 대표적으로 아래 2가지가 있네요.
    1. GA4 구성 태그가 실행된 이후에 user_id가 입력된 경우 (2번째 이미지에서 73번에 user_id가 입력되는데, 71~72번에 구성태그가 실행되었다면 문제가 발생했을 것입니다. )
    2. 일반적인 사이트는 로그인 이후에 페이지가 이동하거나 새로고침되면서 GA4 구성 태그를 새로 호출하여 값이 업데이트가 되지만,
    SPA에서는 화면을 구성하는 컴포넌트만 바뀌다보니 로그인 이후에 GA4 구성 태그가 추가로 호출이 안되어, user_id가 없을 때의 설정이 유지되고 있으면 user_id를 수집하지 못합니다.


  • 2023-04-26 19:26

    안녕하세요! 작성해주신 답변을 보고 GTM 미리보기에서 태그 실행 시점을 확인한 결과, 구성 태그가 유저아이디 푸시 이전에 먼저 실행됨을 확인 했습니다(이미지 첨부).
    이 경우 말씀주신 것처럼 구성 태그를 추가로 실행시켜야하는 것으로 이해되는데요!
    userid 가 DOM ready 시점에 푸시됨을 확인하였는데, 그렇다면 구성 태그의 실행 시점도 "all pages"에 더해, "돔 사용가능( DOM ready)"으로 트리거를 설정해야 하는것인가요?
    구성 태그를 추가로 실행시키기 위해선 GTM 상에서 어떤 작업이 추가로 필요한 지 답변주시면 감사드리겠습니다..!

    스크린샷-2023-04-26-오후-7.17.27.png

    첨부파일 : 스크린샷-2023-04-26-오후-7.17.38.png


    • 2023-04-28 02:14

      가장 이상적인 해결 방법은 push 코드를 GTM 설치 코드보다 상단에 배치 시키면 됩니다.
      (또는, GTM 설치코드 보다 dataLayer 푸시가 먼저 실행 )

      다만, GTM이 설치되기 전에는 dataLayer 변수가 페이지에 존재하지 않으므로, 아래 예시의 첫번째줄 코드처럼 이를 위한 예외처리를 해주셔야합니다.

      window.dataLayer = window.dataLayer || [];
      window.dataLayer.push({
      user_id: {{유저아이디}}
      });


      • 2023-04-28 02:16

        위 방법이 구조상 안되신다면
        Dom Ready로 구성 태그의 발동 시점을 늦추는게 가장 간단한 방법이구요.

        가장 정확한 방법은 user_id를 푸시하실때 [맞춤 이벤트] 트리거를 활용하기 위한 event도 함께 푸시하신다음,
        [맞춤 이벤트] 트리거를 구성 태그에 추가로 연결하시면 됩니다.

        이때, 구성 태그가 호출되면서 페이지뷰를 또 쏜다면
        구성 태그 설정에서 페이지뷰를 자동 전송하는 기능을 해제하고, GA4 이벤트 태그를 추가로 생성하셔서 page_view 이벤트를 수동으로 쏘게끔 설정합니다.

        page_view 이벤트 태그의 트리거는 페이지뷰를 기본으로 적용하시고, 웹 사이트가 SPA이시면 기록 변경 트리거를 추가로 설정하시면 됩니다. (간단한 내용이 아니다보니 내용이 길어졌네요 ㅎㅎ )


        • 2023-06-28 02:24

          안녕하세요! 자세한 설명 정말 감사합니다!!! 대댓글을 너무 늦게 달게되었네요ㅜㅜ
          위에서 말씀주신 "[맞춤 이벤트] 트리거를 활용하기 위한 event 도 함께 푸시"해야한다는 설명이 잘 이해가 가지 않습니다..ㅠㅠ 현재 user_id를 수집하기 위한 구성태그가 아래와 같이 설정되어있는데요!(이미지 첨부) 맞춤 이벤트 트리거를 활용하기 위해서는트리거를 추가하여 맞춤 이벤트를 설정하면 되는 것으로 보이는데 ,구체적으로 "어떤 이벤트"를 푸시해야하는 것인지 구체적으로 설명 부탁드려도 괜찮을까요!? ㅠㅠ

          스크린샷-2023-06-28-오전-2.20.49.png


          • 2023-06-28 20:58

            안녕하세요, 맞춤 이벤트 활용 부분은 아래 링크에서 [맞춤 이벤트 활용하기] 부분을 참고해보세요~
            - https://dachata.com/google-tag-manager/post/how-to-use-gtm-datalayer/

            개발을 통해 dataLayer.push()를 호출하시고 이때 맞춤 이벤트로 사용할 이벤트 명과 user_id 정보를 함께 입력하시면 됩니다.


        • 2023-06-30 02:56

          답변 감사합니다! 말씀주신대로 하나씩 적용해나가다보니 계속 꼬리질문이 생기게되네요 ㅠㅠ

          앞서 답변해주신 내용을 참고하여

          구성태그에 맞춤 이벤트 트리거 추가 연결하는 방식으로 진행하려하는데요!

          혹시 "구성 태그가 호출되면서 페이지뷰를 또 쏘는" 경우를 자세하게 설명 부탁드려도 괜찮을까요..!?

          구성 태그 설정에서,
          '이 구성이 로드될 때 페이지 조회 이벤트 전송 ' 체크박스를 해지하고,
          그 아래의 트리거 all pages도 해지를 하는 것인가요!?
          감이 잡히지 않아 추가 질문 드립니다..

          스크린샷-2023-06-30-오전-2.53.48.png


        • 2023-06-30 21:41

          상세 이미지 첨부드립니다!

          스크린샷-2023-06-30-오후-9.40.13.png


          • 2023-07-01 12:56

            기존 구성 태그의 트리거는 그대로 두시구요~
            [이 구성이 로드될 때 페이지 조회 이벤트 전송] 기능은 해제합니다.

            위 기능을 해제하면 페이지뷰 이벤트를 수동으로 쏴주셔야하는데,
            이를 위한 GA4 이벤트 태그를 새로 만드시고 이벤트 이름은 'page_view'로 입력하시면 됩니다.

            이때 트리거는 'All Pages'와 함께 '기록 변경' 유형의 트리거(모든 변경 내역)를 새로 만들어서 2개를 함께 설정하시면 됩니다.


            • 2023-07-02 04:26

              질문이 많았는데도 자세히 알려주셔서 정말 감사합니다!!!! 큰 도움이 됐습니다!!!! ㅎㅎㅎ