애드센스 클릭 유도 문구, 글에 섞이지 않게 빌드에서 막았다
이 블로그엔 나중에 애드센스를 붙일 생각이다. 그래서 빌드 스크립트를 처음 만들 때부터 클릭을 부탁하는 문장이 글에 있으면 빌드가 오류를 내게 해 뒀다. 근데 그게 정말 막는지는 한 번도 시험을 안 해 봤다. 해 보니 반은 맞고 반은 틀렸다.
애드센스의 비보상형 광고 정책은 방문자에게 Google 광고를 누르거나 보도록 부탁하는 행위를 금지한다. 나는 그런 문구가 글에 섞이는 걸 줄이려고 빌드에 정규식 검사를 넣었다. 다만 정규식은 말투가 조금만 달라도 놓치고, 넓히면 멀쩡한 문장도 같이 걸린다. 나는 넓히는 쪽을 골랐다.
애드센스 정책이 막는 클릭 유도 문구
애드센스 프로그램 정책에 클릭 또는 조회 유도라는 항목이 있고, 제목 옆에 비보상형 광고 인벤토리라고 범위가 붙어 있다. 클릭을 부탁하는 문구, 화살표 같은 그림으로 광고 쪽에 눈이 가게 만드는 것, 오해를 부르는 이름표가 안 된다고 적혀 있었다. '광고'와 '스폰서 링크'는 써도 되는 이름표 예시로 나와 있었고.
보상형 광고는 따로 정책이 있었다. 일반 버튼이나 문서 링크 안내까지 다 막는 것도 아니고. 그럼 내 검사는? 그 문장이 광고로 이어지는지까지는 구분을 못 한다.
클릭을 부탁하는 문구가 섞이지 않게 빌드에서도 한 번 걸러 두고 싶었다.
빌드에 넣어 둔 클릭 유도 검사
처음 넣어 둔 정규식은 세 개였다. 첫째는 클릭 뒤에 해 보세요, 하세요 같은 부탁이 붙는 꼴. 둘째는 눌러나 클릭이 광고라는 낱말 바로 다음에 오는 꼴. 셋째는 아래쪽 버튼이나 링크를 눌러 달라는 꼴이다. 글 본문이나 제목에서 하나라도 걸리면 빌드가 오류를 낸다. 빌드 오류가 있으면 공개하지 않는 게 이 블로그 규칙이다.
시험 글을 넣어 보니
일부러 걸릴 문장을 넣은 시험 글을 잠깐 만들어 빌드를 돌렸다. 처음엔 존댓말로 쓴 뻔한 문장 두 개. 세 검사가 다 걸렸다. 여기까진 예상대로.
두 번째는 반말로 바꿔 봤다. 이 블로그 글이 반말이라 실제로 섞인다면 이쪽일 것 같아서. 세 문장 중 하나만 걸렸다. 광고와 동사 사이에 다른 말이 끼거나 배너라는 낱말을 쓰면 그냥 통과였다.
아래 그림은 검사에 넣은 시험 문장과 결과다. 독자한테 부탁하는 문장이 아니다.

클릭 유도 검사에 멀쩡한 문장도 걸렸다
그래서 두 번째 식을 넓혔다. 이제는 광고나 배너라는 낱말이 나오고, 그 뒤 열 글자 안에 눌러나 클릭이 오면 잡는다. 사이 글자는 공백까지 쳐서 센다. 마침표, 느낌표, 물음표, 줄바꿈을 사이에 두고는 안 잡게 했다. 다시 돌리니 놓쳤던 두 문장도 걸렸다.
이 글을 쓰면서 평범한 문장을 하나 더 대 봤다. 광고 정산 방식을 설명하는 문장인데 이것도 걸렸다. 사실 옛 식으로도 걸리는 문장이었다. 클릭을 부탁하는 게 아니라 설명만 하는 문장도 낱말 순서가 맞으면 막힌다. 정규식은 뜻을 모르니까.
웃긴 건 이 글도 걸렸다는 거다. 위에서 정책을 설명하다가 광고라는 낱말 바로 뒤에 클릭을 붙여 썼더니 빌드가 오류를 냈다. 정책을 설명하는 문장이었는데도. 그 부분은 낱말 순서를 바꿔서 넘어갔다.
그래도 넓힌 쪽을 그대로 두기로 했다. 놓치면 정책에 걸릴 수 있는 문장이 그대로 나가고, 잘못 막히면 문장 하나 바꾸면 끝이다. 고치는 값이 훨씬 싸다.
정규식이 못 잡는 것
정책 문서 예시 중엔 아주 흔한 부탁 말도 있다. 그런 말은 평소 글에도 자주 써서 검사에 넣지 않았다. 그림 안 글자도 검사 밖이다. 그러니까 빌드를 통과했다고 다 괜찮은 건 아니다. 그런 건 결국 글을 다시 읽으면서 걸러야 한다.
그리고 이 블로그엔 아직 광고가 없었다. 애드센스 신청 전이라 이 검사가 실제 심사에서 무슨 의미가 있는지는 모른다. 확실한 건 이번에 넣어 본 시험 문장 다섯 개는 지금 검사에 걸린다는 것까지다. 다른 표현까지 막는지는 이 시험으로 알 수 없다.
다음엔 Claude Code 랑 Codex 사용량 한도에 걸렸을 때 먼저 볼 것을 정리해 보려고 한다.