[연재] × 안 된 것들 — 쿠팡 API, 카드 발급 제휴, 애드픽
클릭이 1,030인데, 사람은 214명이었습니다
8월 13일에 제휴 대시보드를 열어봤어요. 링크프라이스 쪽에 클릭 1,030이라고 찍혀 있더라고요.
솔직히 잠깐 기분이 좋았습니다. 하루 스무 명 남짓 들어오는 사이트인데 클릭이 천 번이 넘었다니, 뭔가 되고 있는 건가 싶었죠. 지갑에도 1,000원이 들어와 있었고요.
그런데 그 옆 칸을 봤습니다. 구매 0건. 수익 0원. 지갑의 1,000원은 실적이 아니라 가입 축하금이었어요. 같은 날 쿠팡 파트너스는 구매 1건에 역시 0원이었고요.
여기서 "전환율이 낮네, 링크를 더 붙여야겠다"로 넘어갔으면 그 뒤 며칠을 통째로 날릴 뻔했습니다. 다행히 숫자 하나를 더 열어봤어요.
화면을 본 사람보다 링크를 누른 횟수가 많을 수는 없습니다
같은 날 클라우드플레어에서 '브라우저' 로 분류한 요청이 214였습니다. 그중 스위치 도구(/switch)로 간 게 188이었고요. 제 사이트가 직접 세는 조회수(글을 열 때마다 브라우저가 올리는 값)로 보면 그날은 21이었습니다.

숫자 세 개가 다 다르죠. 세는 자리가 다르니 당연한 일이에요. 그런데 어느 쪽으로 봐도 1,030 근처에 가는 값이 하나도 없습니다.
계산이랄 것도 없어요. 화면을 214번 열었는데 그 화면 안의 링크를 1,030번 눌렀다는 건, 한 사람이 들어와서 링크만 다섯 번씩 눌렀다는 뜻이 됩니다. 그런 사람은 없어요. 크롤러가 딥링크를 따라간 겁니다. 검색엔진이든 뭐든, 페이지에 박힌 주소를 순서대로 훑고 지나간 거죠.
그래서 그 클릭은 막았냐고요? 안 막았습니다. 해로운 짓을 하는 것도 아니고, 봇을 걸러내겠다고 필터를 세게 걸면 사람 클릭까지 같이 잃거든요. 대신 그 숫자를 성과로 읽지 않기로만 했습니다.
여기가 이번 편의 출발점입니다. 숫자가 있다고 뜻이 있는 건 아니에요. 그리고 뜻이 없는 숫자를 붙잡고 있으면, 정작 안 된 것들을 못 보게 됩니다.
이번 편은 '안 된 것'만 적습니다
보통 이런 글은 된 것만 씁니다. 저도 앞 회차들에서 배너를 붙였고, 글 밑에 상품 블록을 넣었고, 알리로 48편을 옮겼다고 자랑했어요.
그런데 그것보다 제가 남기고 싶은 건 벽에 부딪힌 기록입니다. 다음에 같은 걸 해보려는 분이 저랑 똑같은 자리에서 이틀을 쓰지 않았으면 해서요.
그리고 하나 더. 적다 보니 벽이 다 같은 벽이 아니더라고요. 세 종류였습니다.
1. 막힌 것 — 하려고 했는데 상대가 안 열어준 것 2. 안 하기로 정한 것 — 할 수 있었는데 하지 않기로 한 것 3. 아직 안 한 것 — 못 한 게 아니라 순서가 뒤인 것
이 셋을 뭉뚱그려 "안 됐습니다"라고 적으면 나중에 제가 그 기록을 못 씁니다. 다시 시도해야 할 건 1번인데 3번까지 포기한 줄 알고 안 건드리게 되거든요. 그래서 갈라 적습니다.
① 막힌 것 — 쿠팡 API 는 아직 최종승인 전입니다
7월 23일에 정한 것들을 적어둔 문서가 있습니다. 그날 무엇을 왜 바꿨는지만 모아둔 파일인데, 거기 이 항목이 통째로 들어 있어요.

계획은 단순했습니다. 네이버에서 옮겨온 리뷰가 156편이었고, 그 글마다 그 글이 다룬 물건의 구매 링크를 붙이고 싶었어요. 156편을 손으로 하면 며칠이 걸리니까 자동으로 하려고 한 거죠.
쿠팡 파트너스에는 딥링크 API 라는 게 있습니다. 상품 주소를 던지면 내 추적 코드가 붙은 짧은 링크를 돌려주는 창구예요. 코드는 다 짰습니다. 상품번호를 뽑아내는 부분도, 서명을 만드는 부분도, 50개씩 묶어 보내는 부분도요.
그런데 키가 안 나왔습니다. 파트너스 계정이 최종승인 전이라 Open API 발급 자체가 안 열려 있었어요.
키를 읽는 자리는 지금도 비어 있습니다
코드는 키를 파일에서 읽게 돼 있습니다. 이 한 줄이에요.

coupang_api.json — 이 파일에 접근키와 비밀키를 넣어두면 스크립트가 그걸 들고 쿠팡에 갑니다. 그리고 오늘 다시 확인해봤는데요.

아직도 없습니다. 한 달이 지났는데 그대로예요.
여기서 제가 신경 쓴 게 하나 있어요. 키가 없을 때 어떻게 죽느냐입니다.

키를 못 찾으면 그냥 멈춥니다. 그리고 "쿠팡 파트너스 → 도구 → Open API 에서 키를 받아 넣으세요"라고 어디 가서 뭘 해야 하는지까지 적어놓고 끝나요.
별것 아닌 것 같지만, 이게 없으면 어떻게 되냐면요. 키 없이 요청이 나가고, 쿠팡이 401(너 누구냐)을 돌려주고, 스크립트는 "0개 발급됐습니다"라고 조용히 성공한 척 끝납니다. 그러면 저는 API 가 막힌 건지 제 코드가 틀린 건지를 모르는 채로 반나절을 헤매게 되죠.
막히는 건 어쩔 수 없어요. 다만 막혔다는 걸 막힌 자리에서 알려주게 만들어두는 건 할 수 있습니다.
두 번째 길도 막혔습니다 — Access Denied
API 가 안 되면 다른 길이 있죠. 사람이 파트너스 사이트에 들어가서 링크를 만드는 그 과정을, 브라우저를 프로그램으로 조종해서 대신 하는 겁니다. 화면 없는 브라우저(헤드리스라고 부릅니다)를 띄워서 클릭하고 복사하고를 반복시키는 거예요.
이건 첫 화면에서 막혔습니다. Akamai WAF 라는 보안 장치가 걸려 있었고, 페이지 대신 Access Denied 만 돌아왔어요. 사람이 쓰는 브라우저인지 프로그램인지를 보고 프로그램이면 문을 안 열어주는 장치입니다.
두 길이 다 막혔으니 여기서 이번 편의 진짜 이야기가 시작됩니다.
② 안 하기로 정한 것 — 우회는 가능했습니다
솔직하게 적을게요. 뚫으려면 뚫을 수 있었습니다.
Access Denied 를 돌려받은 뒤에 제일 먼저 나온 이야기가 그거였어요. 브라우저가 자기를 뭐라고 소개하는지 바꾸고, 사람처럼 마우스를 조금씩 움직이고, 클릭 사이에 랜덤하게 쉬는 시간을 넣고… 이런 걸 몇 겹 쌓으면 통과할 가능성이 있습니다. 검색하면 방법도 많이 나오고요.
기술적으로는 그냥 "몇 시간 더 쓰면 되는 일"이었어요.
그런데 그 몇 시간을 안 쓰기로 했습니다. 이유는 계산이 안 맞아서예요.
뚫었을 때 얻는 것은 링크 156개를 손으로 안 만들어도 되는 것. 반나절 정도의 노동입니다. 걸렸을 때 잃는 것은 파트너스 계정입니다. 봇 탐지에 걸리면 계정이 정지될 수 있고, 그러면 지금 붙어 있는 배너랑 링크가 전부 죽습니다. 앞으로 벌 수 있는 것도 같이 사라지고요.
반나절을 아끼자고 전부를 걸 이유가 없었습니다.
"막혀 있다는 것 자체가 하지 말라는 뜻"
그날 문서에 적어둔 문장이 이거예요. 위의 첫 번째 사진, 노란 줄이 그어진 두 줄입니다.
우회는 가능했지만 하지 않기로 했다. 봇 탐지에 걸리면 파트너스 계정이 정지될 수 있고, 그러면 쿠팡 수익 전체를 잃는다. 몇 시간 아끼자고 걸 거래가 아니었다.
막혀 있다는 것 자체가 하지 말라는 뜻이라고 봤다.
이 문장을 좀 풀어서 쓰고 싶어요. WAF 를 걸어두는 건 실수가 아니거든요. 누군가 돈을 들여 "프로그램은 들어오지 마세요"라고 써 붙인 겁니다. 그걸 우회한다는 건 안 된다는 걸 못 봐서가 아니라, 보고도 넘어가는 거죠.
그리고 이건 도덕 얘기만도 아니에요. 제휴 마케팅은 상대 회사가 저를 믿어주는 동안만 굴러갑니다. 그 신뢰를 담보로 반나절을 사는 거래는, 아무리 봐도 손해입니다.
알리에서도 같은 자리에서 멈췄습니다
이 판단이 한 번만 나온 거면 그냥 그날 기분이었을 수도 있는데요. 얼마 뒤에 똑같은 장면이 또 나왔습니다.
알리익스프레스 제휴가 승인돼서, 직구 물건을 다루는 글들의 링크를 알리로 옮기는 작업을 했어요. 그때 상품을 찾으려고 검색 페이지를 반복해서 열었더니 캡차가 걸리더라고요. "당신 사람 맞아요?" 하고 물어보는 그 화면이요.
여기서도 우회는 안 했습니다. 대신 확인한 게 하나 있어요. 딥링크를 통해 들어가는 정상 경로는 멀쩡했습니다. 즉 상대가 막은 건 "사람인 척 대량으로 긁는 짓"이지 제휴 링크 자체가 아니었어요. 그러면 막힌 쪽을 뚫을 게 아니라 안 막힌 쪽으로 가면 되는 겁니다.
두 번 같은 결정을 하고 나니 이게 원칙이 됐습니다. 계정을 거는 거래는 안 한다. 뚫는 데 걸리는 시간이 얼마든, 성공 확률이 얼마든 상관없이요.
그래서 뭘 했냐면, 손으로 17개를 만들었습니다
여기서 "그래서 못 했습니다"로 끝내면 그건 어드바이저지 만드는 사람이 아니죠.
파트너스 사이트에 사람이 로그인해서 링크를 만드는 건 막혀 있지 않습니다. 막힌 건 프로그램이 대신 하는 것뿐이에요. 그래서 손으로 만들었습니다.

스위치 편에 붙은 구매 링크 17개입니다. 저 파일 한 곳만 채우면 스위치 도구 화면이랑 영상 설명란이 같이 그 링크를 봅니다. 한 번 만들면 여러 군데가 같이 붙게 해둔 거예요.
그래서 지금 스위치 찾기 화면은 이렇습니다.


카드마다 [자세히] [구매] [알리] [리뷰 읽기] [영상] 이 붙어 있죠. 저 파란 [구매] 가 손으로 만든 17개 중 하나입니다. 스위치는 947개인데 17개니까 2%도 안 되는 셈이에요. 나머지는 국내에 아예 안 들어온 축이 많아서 쿠팡에 물건 자체가 없습니다.
손으로 만들 목록도 따로 남겨뒀습니다. 남은 건 아홉 개예요. 링크를 만들면 그 자리에 채워 넣으면 되게 표로 정리해뒀습니다.
156편은 어떻게 됐냐면요
리뷰 156편 쪽은 규모가 달라서 다르게 갔습니다. 확신이 서는 82편만 추려서, 위에서부터 손으로 채우는 목록을 만들었어요.

여기서 순서를 최근 글부터로 잡은 게 좀 중요합니다. 검색 유입은 최근 글에 먼저 붙거든요. 그러니까 목록 순서가 그대로 우선순위가 됩니다. 82편을 다 못 채워도 위에서부터 채우면 손해가 제일 적어요.
그리고 마지막 줄에 이렇게 적어놨습니다. "제품명이 실제 상품과 다르면 고쳐도 된다. 매칭은 사람이 하는 게 맞다."
이게 제가 이 작업에서 제일 확실하게 배운 겁니다. "이 글이 다루는 물건이 어떤 상품이냐"는 판단은 자동으로 하면 안 돼요. 상품명이 비슷해도 다른 물건인 경우가 너무 많거든요.
자동으로 하되, 모르면 사람한테 넘기기
그렇다고 전부 손으로 하지는 않았어요. 알리로 옮기는 작업은 프로그램이 했습니다. 다만 규칙을 이렇게 뒀어요.

영문 상품명을 얻는 길을 세 개 두고, 정확한 순서대로 시도합니다. 제조사가 쓴 정식 표기가 1순위, 상품명 안의 영문이 2순위, 한글 브랜드 별칭표가 3순위. 그리고 셋 다 안 되면 '보류' 로 빼서 사람이 봅니다. 추측해서 링크를 만들지는 않아요.
결과가 이랬습니다.

옮김 48 · 보류 15 · 국내 유지 148. 저 '보류 15' 가 이 방식의 핵심이에요. 만약 저 15편도 그럴듯하게 추측해서 링크를 만들었다면 화면상으로는 63편이 다 채워진 것처럼 보였을 겁니다. 그리고 그중 몇 개는 엉뚱한 상품으로 사람을 보냈겠죠.
채운 것처럼 보이는 것보다 비어 있는 게 낫습니다. 비어 있으면 제가 채우러 가지만, 잘못 채워져 있으면 안 갑니다.
지금 링크가 붙어 있는 글은 207편이고, 몰별로는 G마켓 139 · 알리익스프레스 48 · 예스24 19 · 마이리얼트립 3 · 아고다 2 예요. 쿠팡이 하나도 없는 게 보이시죠. 그게 이 편 절반의 이야기입니다.
③ 아직 안 한 것 — 애드픽 카드 발급 제휴
세 번째는 성격이 완전히 다릅니다. 막힌 적도 없고, 하지 않기로 정한 적도 없어요. 그냥 아직 안 했습니다.
카드 혜택 도구에는 카드가 1,180장 들어 있습니다. 카드사별로 신한 182, KB국민 173, NH농협 120… 이런 식이에요.

카드 발급 제휴(카드를 실제로 발급하면 수수료가 들어오는 방식)는 이런 화면이랑 궁합이 제일 좋은 광고입니다. 카드를 고르러 온 사람에게 그 카드 발급 링크를 내미는 거니까요.
애드픽이 그걸 중개하는 곳인데요. 지금 상태는 미신청입니다. 신청서를 넣다가 거절당한 게 아니라, 아직 신청을 안 했어요.
지금 카드 화면에는 생필품 배너가 돌고 있습니다
카드 하나를 눌러보면 이렇게 나옵니다.

연회비, 전월 실적, 혜택 목록, 약관 전문까지 다 나오고 [+ 지갑에 담기] 버튼이 있죠. 그런데 [이 카드 발급받기] 버튼은 없습니다. 그 자리가 비어 있어요.
그리고 화면 아래를 보시면 쿠팡 배너가 돌고 있는데, 지금 뜬 게 세제랑 견과류랑 화장지입니다. 카드 혜택을 보러 온 사람에게 화장지를 파는 중이에요. 나쁜 건 아니지만 자리가 아깝습니다.
그런데 왜 아직 안 했냐면요
이걸 실패담에 섞고 싶지 않아서 굳이 갈라 적는 겁니다. 이유는 두 가지예요.
첫째, 순서가 뒤입니다. 지금 이 사이트는 하루 스무 명이 들어옵니다. 카드 발급 제휴를 붙여서 한 달에 한 건 나올까 말까 한 상태에서, 심사받고 계약하고 링크를 1,180장에 붙이는 데 며칠을 쓰는 건 순서가 틀렸어요. 그 며칠을 사람 들이는 데 쓰는 게 맞습니다.
둘째, 애드센스 결과를 기다리는 중입니다. 광고를 여러 개 겹쳐 붙이면 심사에 좋을 게 없거든요. 결과가 나오고 나서 자리를 다시 짜는 게 낫습니다.
그러니까 이건 "안 됩니다"가 아니라 "3순위입니다"예요. 이 둘을 같은 칸에 적어두면 나중에 제가 헷갈립니다.
못 한 것과 안 한 것을 갈라 적어야 하는 이유
세 개를 다시 정리하면 이렇습니다.
| 무슨 일 | 성격 | 다음에 할 일 | |
|---|---|---|---|
| 쿠팡 딥링크 API | 최종승인 전이라 키가 안 나옴 | 막혔다 | 승인 나면 바로 키만 넣으면 됨 |
| 헤드리스 우회 | 가능했지만 안 함 | 안 하기로 정함 | 다시 검토하지 않음 |
| 애드픽 카드 발급 | 미신청 | 아직 안 함 | 유입이 생기면 신청 |
이렇게 적어두니까 각 줄이 서로 다른 일이 됩니다.
첫 줄은 기다리는 일이에요. 제가 할 게 없습니다. 코드는 다 있고 파일 하나만 생기면 되니까, 승인 메일이 오면 그날 10분이면 끝나요.
둘째 줄은 닫힌 일입니다. 다시 안 봅니다. 나중에 제가 "그때 뚫었으면 편했을 텐데" 하고 흔들릴 수 있으니까, 왜 안 했는지를 문장으로 적어둔 거예요. 판단은 시간이 지나면 흐려지는데 문장은 안 흐려집니다.
셋째 줄은 줄 서 있는 일이고요.
만약 이 셋을 "제휴 자동화 실패"라고 한 줄로 적었으면, 승인이 나도 제가 안 건드렸을 겁니다. 실패한 걸로 기억할 테니까요.
그리고 결론 — 문제는 링크가 아니었습니다
이 편을 쓰면서 제일 아팠던 게 이겁니다.
제휴 링크를 제일 촘촘하게 깐 데가 스위치 도구예요. 947개짜리 목록에 카드마다 구매 버튼이 붙어 있고, 쿠팡·알리 두 갈래로 나가고, 아래에는 고정 배너까지 있습니다. 할 수 있는 건 거의 다 했어요.
그 페이지가 사흘 합쳐 열 명이 안 됐습니다.
그러니까 클릭 1,030이니 구매 0건이니 하는 숫자들이 사실 다 같은 얘기를 하고 있었던 거예요. 전환율이 낮은 게 아니라 모수가 없었던 겁니다.
링크를 하나 더 붙이는 일, 딥링크로 바꾸는 일, 카드 발급 제휴를 다는 일 — 이건 전부 들어온 사람에게서 조금 더 얻는 일입니다. 들어오는 사람이 스무 명이면 조금 더 얻어봐야 조금이에요.
남은 일은 링크가 아니라 사람을 들이는 쪽입니다. 그래서 다음 회차들은 도메인이랑 검색 쪽 이야기로 갑니다.
그래서 사람은 어디에 남았나
이번 편에서 사람이 붙잡은 자리는 세 군데였어요.
첫째, 1,030 을 성과로 안 읽은 것. 이건 대시보드가 알려주지 않습니다. 다른 자리에서 센 숫자(브라우저 요청 214, 조회수 21)를 가져와서 나란히 놓고 "말이 안 되는데?" 하는 건 사람이 해야 하는 일이에요. 숫자를 만드는 건 기계가 하고, 숫자끼리 안 맞는 걸 알아채는 건 사람이 합니다.
둘째, 뚫지 않기로 한 것. 기술적으로는 "가능하냐"에 대한 답이 '가능'이었어요. 그런데 여기서 필요한 건 "가능하냐"가 아니라 "걸었을 때 잃는 게 뭐냐" 였습니다. 잃는 게 계정 하나면 감수하지만, 잃는 게 지금 붙어 있는 수익 전부라면 안 하는 거죠. 이 저울질은 코드가 못 합니다.
셋째, 보류 15편을 사람한테 넘긴 것. 자동으로 63편을 다 채웠다고 보고하는 것보다, 48편만 채우고 15편은 "모르겠습니다"라고 남기는 게 낫다고 정한 거예요. 그리고 82편짜리 목록에 "매칭은 사람이 하는 게 맞다"고 아예 적어놨고요.
세 개를 관통하는 게 하나 있습니다. 기계는 "됐다/안 됐다"까지는 잘 말하는데, "안 된 게 어떤 종류의 안 됨이냐"는 말을 못 합니다. 막힌 건지, 안 하기로 한 건지, 아직 안 한 건지. 그걸 갈라서 적어두는 게 이번 편에서 사람이 한 일 전부였어요.
다음 편에서는 도메인 이야기를 해보려고 합니다. 어디서 얼마에 샀는지부터요.
#쿠팡파트너스 #쿠팡API #딥링크 #제휴마케팅 #애드픽 #카드발급CPA #링크프라이스 #알리익스프레스 #블로그수익화 #수익형블로그 #애드센스 #크롤링 #헤드리스브라우저 #WAF #캡차 #봇탐지 #키보드스위치 #스위치찾기 #기계식키보드 #카드추천 #카드혜택 #개인홈페이지 #정적사이트 #CloudflarePages #클로드 #ClaudeCode #바이브코딩 #AI활용법 #휴먼인더루프 #빅터하우스