해결된 질문
작성
·
433
0
안녕하세요. 좋은 강의 감사합니다 :)
서비스를 고도화 하다보면 특정 페이지의 뷰, 컴포넌트의 클릭 뿐만 아니라 어떤 상품이나 컴포넌트가 노출됐는가도 로깅이 필요한 경우가 많은데요. 노출 이벤트의 경우 페이지 뷰나 클릭 같은 이벤트에 비해 수가 훨씬 많아 써드 파티 툴을 사용하기에는 비용 문제가 발생해서 다른 방법을 찾고 있습니다.
Q. 상품 노출 이벤트를 쌓고자 하는 경우 자체 로그 시스템을 구축하는게 좋을까요?
Q. 상품 노출 이벤트를 설계할 때 더 신경 써야 하는 부분이 있을지도 궁금합니다.
감사합니다!
답변 1
0
안녕하세요! 노출 이벤트에 대해 질문해주셨네요!
말씀하신 것처럼 서비스가 확장되면서 여러 데이터가 필요해요. 특히 클릭률 지표를 구할 때는 항상 어떤 것을 봤는지가 필요한데 이 경우 VIEW 이벤트로 어려운 경우가 있지요(롤링 배너 등)
우선 노출에 대해서도 정의해볼 것 같아요
노출 = "유저"에게 보여지는 경우? 유저가 아직 보진 않았지만 서비스에서 결과가 나온 경우?
이 경우에 따라 구현이 달라집니다. 유저가 특정 스크롤을 내려서 해당 부분을 움직일 때 로그를 남기고 싶은지, 혹은 화면상에만 보여도 로그를 남길지에 따라 다르지요
대부분 보여지는 경우를 노출로 생각할 것 같지만, 검색 결과의 노출과 광고나 롤링 배너의 노출은 조금 다르게 생각해볼 필요가 있을 것 같네요
이걸 어디에 저장할까? 생각하면
한번에 1개씩 보여지는 경우(롤링 배너의 경우 몇초에 1개씩 이동하므로)
PA 도구에 로깅하는 것을 검토할 것 같습니다(PA 도구가 있다는 가정 하에)
다만 이 때 한번 앱에 접속하는 경우 이벤트를 얼마나 발생시킬지 데이터를 통해 파악해봅니다. 현재 사용자일 때 얼마나 발생시키고, 점점 규모가 커지면 얼마나 많아질지를 생각해봅니다
한번에 1개씩 보여지는 경우 파라미터에 긴 문자가 들어가지 않을 것 같아 PA 도구도 괜찮다고 생각했습니다
여러개가 동시에 노출되는 경우(카카오지도에서 장소를 즐겨찾기해두고 지도를 움직이는 경우, 지도를 줌인/줌아웃하는 경우)
이 경우 지도를 조금만 이동하더라도 로그를 남기고 싶을거에요
다만 너무 로그가 많이 발생한다고 생각할 수 있고(이것도 역시 얼마나 하는지 사용자 이벤트를 분석해보는 것이 필요하긴 합니다)
이 경우 저는 서버 로그에 저장합니다
서버 로그에 저장하는 이유는 우선 파라미터의 갯수 제한이 없고 우리가 조절할 수 있습니다. 즉, 많은 양의 데이터를 한번에 남길 수 있는 것이지요
말씀하신 자체 구축 시스템과 맥락이 같으며, 서버 로그로 남겨야 하는 경우(이벤트나 파라미터 갯수 제한 이슈로 PA 도구가 어려운 경우)만 서버 로그로 남기고 나머지는 PA 도구(클라이언트/웹 로깅)에서 남기곤 합니다
저는 검색 시스템의 결과는 대부분 서버 로그로 남기곤 했습니다(아마 검색은 NoSQL 사용할테니 그쪽에도 로그가 있기도 할거에요)
자체 구축 시스템을 구축할 때, 실시간으로 데이터를 보고 싶은지 1시간 단위 같은 Batch 단위로 데이터를 보고 싶은지 고민해도 좋습니다. 실시간이 좋긴하지만, 개발 과정에 더 시간이 사용될 수 있거든요(Batch는 상대적으로 간단합니다. AWS S3에 데이터를 저장하고, 그 데이터를 1시간 단위로 데이터웨어하우스로 옮기면 됩니다)
노출 이벤트 설계시 고려할 부분
PA 도구는 파라미터의 갯수 제한이 있기에 그 갯수 제한을 넘길지 아닐지 파악할 것 같아요! + 위에서 말씀드린 노출의 정의를 정확히 해서 개발자분들과 논의를 할 것 같아요
서버 로그로 남긴다면 user_id나 유저를 식별할 수 있는 것을 꼭 한번 더 확인하면 좋아요!
감사합니다!