태그는 붙어 있었습니다
쇼츠 자동 업로더는 영상마다 제목, 설명, 해시태그를 조립해서 올립니다. 영상 언어는 한국어, 영어, 일본어 세 가지입니다. 해시태그가 빠진 영상은 없었고, 업로드 에러도 없었습니다.
문제는 순서였습니다. 설명 해시태그의 앞자리에 '무료', '웹앱' 같은 단어가 와 있었습니다. 앱을 설명하는 말로는 틀리지 않습니다. 하지만 누군가 운세 앱을 찾을 때 검색창에 '무료'나 '웹앱'을 먼저 치지는 않습니다. 찾는 단어는 '별자리운세', '占い', 'zodiac' 같은 주제어입니다.
이게 왜 중요한지는 유튜브가 설명 해시태그를 다루는 방식에 있습니다. 설명에 넣은 해시태그 중 앞의 3개만 제목 위에 노출되고, 해시태그가 15개를 넘으면 전부 무시됩니다. 많이 붙일수록 좋은 게 아니라, 앞 세 자리가 사실상 전부이고 너무 많으면 0이 됩니다.
당신의 업로드 파이프라인에서 플랫폼이 실제로 보여주는 앞 몇 자리에는 지금 어떤 단어가 들어가 있습니까?
왜 그냥 지나쳤나
점검 기준이 '태그가 붙었는가'였기 때문입니다. 붙어 있으면 통과입니다. 몇 개인지, 어느 순서인지, 그중 몇 개가 실제로 노출되는지는 확인 대상이 아니었습니다. 태그 목록은 문자열 배열이라 '무료'도 '별자리운세'도 똑같이 유효한 값입니다. 코드 입장에서는 둘 사이에 차이가 없습니다.
또 하나는 설명 해시태그와 API의 tags 필드를 같은 것처럼 다뤘다는 점입니다. 둘은 역할이 다릅니다. 설명 해시태그는 시청자 눈에 보이고 개수와 순서에 제약이 있습니다. tags 필드는 화면에 드러나지 않는 메타데이터입니다. 같은 목록을 양쪽에 비슷하게 넣으면 어느 쪽에도 맞지 않게 됩니다.
당신이라면 태그를 더 붙이시겠습니까, 아니면 보이는 자리를 먼저 정하시겠습니까?
바꾼 것
수정은 업로더 파일 하나, 46줄 추가와 6줄 삭제였습니다.
첫째, 앱별 검색 주제어 사전(TOPIC_TAGS)을 만들었습니다. 앱마다 사람들이 실제로 검색할 법한 주제어를 한국어, 영어, 일본어로 따로 둡니다. 운세 앱이라면 '별자리운세', '占い', 'zodiac' 같은 단어입니다.
둘째, 설명 해시태그를 5개로 압축했습니다. 구성은 주제어 3개, Shorts 태그 1개, 시장 태그 1개입니다. 제목 위에 노출되는 앞 3자리는 전부 주제어가 차지합니다. 개수를 5개로 고정했기 때문에 15개 초과로 전체가 무시되는 상황도 구조적으로 생기지 않습니다.
셋째, '무료', '웹앱' 같은 저가치 태그를 앞자리에서 뺐습니다. 검색 유입으로 이어질 키워드가 먼저 오도록 순서를 바꿨습니다.
넷째, 넓은 범위의 태그는 API tags 필드로 보냈습니다. 여기는 15개 이하로 넉넉하게 채웁니다. 보이는 자리는 좁고 정확하게, 보이지 않는 자리는 넓게 나눈 셈입니다.
자가진단 체크리스트
- 업로드하는 플랫폼이 해시태그를 몇 개까지 노출하고, 몇 개를 넘으면 무시하는지 코드에 반영되어 있습니까?
- 노출되는 앞자리에 들어가는 단어가 사람들이 실제로 검색하는 주제어입니까, 아니면 '무료' 같은 수식어입니까?
- 화면에 보이는 해시태그와 보이지 않는 메타데이터 태그를 같은 목록으로 처리하고 있지는 않습니까?
솔직한 부분
이 수정이 검색 유입을 늘렸는지는 아직 모릅니다. 커밋에는 바꾼 구조만 있고, 전후 노출이나 유입을 비교한 수치는 없습니다. 앱별 주제어도 데이터로 고른 것이 아니라 '사람들이 이렇게 검색할 것'이라는 판단으로 정한 목록이라, 그 판단이 맞는지는 따로 확인해야 합니다. '앞 3개 노출, 15개 초과 시 전체 무시'라는 규칙도 플랫폼이 바꾸면 다시 맞춰야 합니다. 이번에 확실히 고친 것은 노출되는 자리에 무엇이 들어가는지를 코드가 정하게 됐다는 점까지입니다.