온실 GreenHouse TIL 3
내가 만든 앱들이 서로를 홍보하는 광고판을 온실이라 부른다. 앱 화면 구석의 250×250 자리에 내 다른 앱과 블로그 배너가 돌아간다. 광고를 열한 건까지 채우고 나니, 채우는 동안에는 안 보이던 것이 두 가지 보였다.
열한 개를 다 같은 비중으로 돌리고 있었다
광고마다 노출 비중이라는 값이 있다. 값이 크면 더 자주 뽑힌다. 처음에는 새 광고를 넣을 때마다 기본값 1을 그대로 뒀고, 열한 개가 다 1이었다.
그러다 목록을 보니 성격이 같지 않았다. 열 개는 내가 만든 앱을 구경하라는 것이고, 하나는 로그스톤 샵 — 실제로 물건을 파는 곳이다. 광고 자리를 클릭하는 사람이 하루에 몇 명이라 치면, 그중 열한 분의 일만 돈이 될 수 있는 쪽으로 간다는 뜻이었다. 그래서 샵만 셋으로 올렸다.
여기서 알게 된 건 기본값의 성질이다. 전부 기본값으로 두는 건 중립이 아니라 “아직 아무 우선순위도 정하지 않았다”는 상태다. 그런데 화면에서는 멀쩡히 돌아가니 정한 것처럼 보인다. 목록이 서너 개일 때는 차이가 없어서 안 보이고, 열 개가 넘어가면서 갑자기 비싸진다.
비중 값은 결국 “이 자리를 왜 두었나”를 적는 칸이다. 나는 수익과 직접 이어지는 것 하나를 올리는 쪽으로 답했는데, 답이 무엇이든 한 번은 적어야 하는 칸이었다.
“광고 없는 메트로놈”에 광고가 붙었다
비중을 정리하고 목록을 훑다가 메트로놈 광고 문구가 눈에 걸렸다. “광고 없는 심플 안드로이드 메트로놈”이라고 적혀 있었는데, 그 앱에는 이미 광고가 들어가 있었다.
문구를 쓸 때는 사실이었다. 그 뒤로 앱이 바뀌었고 문구는 그대로였다. 광고 문구는 제품을 가리키는 말인데 제품은 계속 움직이니까, 문구는 가만히 있어도 혼자 늙는다.
특히 무엇이 “없다”고 단언한 문구가 제일 빨리 상한다. “빠르다”, “간단하다” 같은 말은 제품이 변해도 어느 정도 버티는데, “광고가 없다”는 말은 광고가 생기는 순간 그날로 거짓이 된다. 없다는 주장은 그 뒤로 영원히 유지해야 참으로 남는 약속이라, 마케팅 문구로는 값이 비싼 편이다.
그래서 프로젝트 작업 지침 파일(CLAUDE.md)의 백로그에 광고 문구를 주기적으로 훑는 항목을 넣었다. 자동으로 걸릴 성질이 아니라서 사람이 한 번씩 봐야 한다.
데이터를 고쳤는데 배너에는 옛 문구가 남아 있었다
문구를 고치는 건 간단해 보였다. 광고 목록 파일에서 그 줄을 바꾸면 끝이라고 생각했다.
그런데 같은 문구가 한 군데 더 있었다. 배너 그림 안이다. 온실 배너는 앱 아이콘과 제목, 한 줄 소개가 들어간 카드 이미지이고, 그 소개 줄에도 “광고 없는”이 그려져 있었다. 그림 안의 글자는 글자가 아니라 픽셀이라 파일을 검색해도 안 걸린다. 목록 파일만 훑으면 “다 고쳤다”는 결론이 나오는데 화면에는 옛 문구가 그대로 떠 있는 상태가 된다.
글자를 그림으로 굽는 순간 그 글자는 찾기 대상에서 빠진다는 걸 여기서 배웠다. 배너·썸네일·스토어 스크린샷처럼 이미지에 문구를 넣는 자리는 전부 같은 성질이라, 문구를 바꿀 일이 생기면 관리 대상이 둘로 갈린다.
대응은 규칙 하나로 정리했다. 광고 문구 수정은 목록 파일과 배너 그림을 한 건으로 본다. 둘 중 하나만 고친 상태는 완료가 아니다.
앞의 두 절과 묶어 보면 순서가 이렇다. 광고를 채우는 동안에는 채우는 게 일이었는데, 다 채우고 나니 일이 바뀌었다. 무엇을 더 자주 보여줄지 정하는 일과, 이미 채워 둔 것이 아직도 사실인지 확인하는 일이다. 뒤엣것은 끝이 없고, 화면이 멀쩡해 보이는 동안에도 계속 어긋나고 있다.