버그 내용
GA4 질의 이벤트를 연결하기 위해 query_id를 사용하고 있으나, Google 웹 태그가 동일한 이름을 내부 공유 식별자로 사용합니다. 그 결과 브라우저 이벤트의 query_id는 애플리케이션 UUID가 아닌 Google 관리 식별자로 처리되고, 서버 이벤트 및 DB 질의 로그와 연결되지 않습니다.
직접 재현한 동일 질의 기준:
- 서버
query_submit.query_id: 애플리케이션 UUID
- 서버
query_response_complete.query_id: 동일 UUID
- 브라우저 전송
query_result_click.query_id: 동일 UUID
- GA4 처리 후
query_result_click.query_id: Google 관리 식별자
기존 #293에서 USER/AI 메시지 및 서버 이벤트가 동일한 UUID를 사용하도록 정합성을 확보했지만, GA 웹 이벤트와의 파라미터명 충돌은 별도로 해결해야 합니다.
버그 재현 방법
- AI 질의를 전송하고 서버의
query_submit, query_response_complete 이벤트를 확인합니다.
- 같은 응답에서 결과 링크를 클릭합니다.
- GA4 실시간 보고서에서 각 이벤트의
query_id 값을 확인합니다.
- 서버 이벤트에는 UUID가 유지되지만 브라우저 이벤트에는 Google 관리 식별자가 표시되는 것을 확인합니다.
작업 내용
query_submit, query_response_complete의 GA 이벤트 파라미터명을 query_id에서 app_query_id로 변경합니다.
- 프론트의
query_result_click, query_feedback과 동일한 파라미터 계약을 사용합니다.
- 질의 생성 시 만들어진 하나의 UUID를 네 이벤트가 계속 공유하도록 보장합니다.
- Measurement Protocol payload 테스트 및 관련 서비스 테스트를 갱신합니다.
- DB 컬럼
query_id, Java 변수 queryId, API/WebSocket 응답 필드는 변경하지 않습니다. 변경 범위는 GA 이벤트 파라미터명입니다.
완료 조건
query_submit.app_query_id와 query_response_complete.app_query_id에 기존 질의 UUID가 담깁니다.
- 동일 질의의 프론트 이벤트까지 네 이벤트가 동일한
app_query_id로 연결됩니다.
- 정상 응답과 오류 응답 경로 모두 동일한 연결 키를 유지합니다.
- 기존 DB
query_id 및 API 계약에는 영향이 없습니다.
참고 자료
버그 내용
GA4 질의 이벤트를 연결하기 위해
query_id를 사용하고 있으나, Google 웹 태그가 동일한 이름을 내부 공유 식별자로 사용합니다. 그 결과 브라우저 이벤트의query_id는 애플리케이션 UUID가 아닌 Google 관리 식별자로 처리되고, 서버 이벤트 및 DB 질의 로그와 연결되지 않습니다.직접 재현한 동일 질의 기준:
query_submit.query_id: 애플리케이션 UUIDquery_response_complete.query_id: 동일 UUIDquery_result_click.query_id: 동일 UUIDquery_result_click.query_id: Google 관리 식별자기존 #293에서 USER/AI 메시지 및 서버 이벤트가 동일한 UUID를 사용하도록 정합성을 확보했지만, GA 웹 이벤트와의 파라미터명 충돌은 별도로 해결해야 합니다.
버그 재현 방법
query_submit,query_response_complete이벤트를 확인합니다.query_id값을 확인합니다.작업 내용
query_submit,query_response_complete의 GA 이벤트 파라미터명을query_id에서app_query_id로 변경합니다.query_result_click,query_feedback과 동일한 파라미터 계약을 사용합니다.query_id, Java 변수queryId, API/WebSocket 응답 필드는 변경하지 않습니다. 변경 범위는 GA 이벤트 파라미터명입니다.완료 조건
query_submit.app_query_id와query_response_complete.app_query_id에 기존 질의 UUID가 담깁니다.app_query_id로 연결됩니다.query_id및 API 계약에는 영향이 없습니다.참고 자료