1.6만 뷰에 좋아요 4
제 소셜 대시보드는 Threads 계정 지표를 끌어와 한 줄로 보여 줍니다. 어느 날 그 줄이 이랬습니다. 조회 약 1.6만, 좋아요 4, 답글 2, 리포스트 0.
처음에는 콘텐츠 문제로 읽었습니다. 보는 사람은 있는데 아무도 반응하지 않는다는 뜻으로요. 숫자가 그렇게 나오면 그렇게 읽기 쉽습니다. 원인을 바깥에서 찾게 되죠.
당신의 대시보드에서 지표 하나가 이상하게 낮을 때, 그 숫자가 어느 기간을 센 것인지 코드에서 바로 짚을 수 있습니까?
제 경우는 짚을 수 없었습니다. 호출하는 코드에 기간이 아예 적혀 있지 않았기 때문입니다.
원인: since를 비워 두면 기본 창은 하루쯤입니다
계정 인사이트를 가져오는 engine/threads.py의 threads_insights 호출에는 since/until 파라미터가 없었습니다. 이 경우 API는 기본 창을 씁니다. 그 기본 창이 약 1일이었습니다.
그래서 좋아요와 답글은 계정 전체 누적이 아니라 하루치만 들어오고 있었습니다. 에러도 경고도 없었습니다. 응답은 정상이었고 형식도 맞았습니다. 다만 묻지 않은 기간에 대해서는 API가 알아서 짧게 답하고 있었을 뿐입니다.
같은 화면에 조회수처럼 큰 숫자가 나란히 놓이면서 '1.6만 뷰에 좋아요 4'라는 착시가 생겼습니다. 하루치 숫자와 더 넓은 기간의 숫자를 한 줄에 놓고 비율로 읽은 셈입니다.
당신이라면?
지표가 이상할 때 콘텐츠부터 의심하시겠습니까, 아니면 쿼리의 기간 인자부터 보시겠습니까?
수정: 기간을 명시하기
수정은 작았습니다. since/until을 넣고 725일 창으로 계정 전기간을 합산하도록 바꿨습니다. 변경은 파일 하나, 10줄 추가에 4줄 삭제였습니다.
바꾼 뒤 실측값은 이랬습니다.
- 좋아요: 4 → 670
- 답글: 2 → 230
- 리포스트: 0 → 40
같은 계정, 같은 날, 같은 API입니다. 바뀐 것은 기간 인자 하나였습니다.
Instagram 쪽도 같은 문제가 있을까 봐 확인했습니다. 게시물별 like_count를 검증해 보니 정상이었습니다. 그쪽은 버그가 아니었고, 그래서 손대지 않았습니다. 한쪽 플랫폼에서 찾은 함정을 다른 쪽에 그대로 덮어씌우지 않으려고 따로 확인했습니다.
자가진단 체크리스트
- 지표를 가져오는 모든 API 호출에 기간(since/until 같은 것)이 명시돼 있습니까, 아니면 기본값에 맡기고 있습니까?
- 한 화면에 나란히 놓인 숫자들이 같은 기간을 센 것인지 확인한 적이 있습니까?
- 숫자가 낮게 나왔을 때 해석보다 먼저 쿼리 인자를 보는 순서가 정해져 있습니까?
솔직한 부분
725일이라는 창이 계정의 실제 전기간을 빠짐없이 덮는지, API가 허용하는 최대치인지는 이 기록만으로는 말할 수 없습니다. 조회수 쪽이 왜 같은 방식으로 줄어들지 않았는지도 따로 확인하지 않았습니다. 그리고 이 버그가 언제부터 있었는지, 그동안 이 숫자를 보고 어떤 판단을 내렸는지도 되짚어 보지 않았습니다. 분명한 것은 하나입니다. 제가 '반응 없음'이라고 읽은 숫자의 상당 부분은 콘텐츠가 아니라 비워 둔 파라미터에서 나왔습니다.