텔레그램 링크, 보내기 전에 열렸다면? 미리보기 끄기와 일회용 링크 점검

아직 전송 버튼도 누르지 않았는데 링크에 접속 기록이 남았나요? 일회용 자료 주소가 이미 열렸다고 나오거나 텔레그램 링크 클릭수가 예상보다 크게 잡혔다면, 먼저 미리보기 조회와 사람의 방문을 나눠 확인하세요. 텔레그램은 입력창에 URL을 붙이는 단계에서 페이지 정보를 가져올 수 있습니다.

바로 할 일은 세 가지입니다. 앱에서는 보낼 메시지의 미리보기 카드를 제거하고, 봇에서는 전송 전에 비활성화 옵션을 지정하세요. 한 번만 열 수 있는 주소라면 서비스가 무엇을 사용 완료로 판단하는지도 확인해야 합니다. 아래에는 실제 설정, 소규모 관찰 결과, 직접 재현할 점검 순서를 담았습니다.

1. 붙여넣기·전송·직접 클릭을 먼저 구분하세요

Telegram의 공식 Link Previews 소개는 URL을 입력창에 붙이면 링크 분석과 미리보기 가져오기를 시작한다고 설명합니다. 그래서 메시지가 아직 대화에 게시되지 않았어도 서버에 요청이 도착할 수 있습니다. 입력창에 제목과 이미지가 나타나는 일, 메시지를 보내는 일, 수신자가 사이트를 여는 일을 각각 별도 단계로 보세요.

예를 들어 자료 주소를 붙인 직후 서버에 GET 한 건이 남았다면, 우선 페이지 정보 조회가 있었다고 기록합니다. 이를 고객 한 명의 클릭이나 자료 열람 완료로 바로 더하지 않습니다. 전송 시각과 실제로 브라우저에서 연 시각을 따로 적으면 뒤에서 요청을 대조하기 쉽습니다.

미리보기 카드를 나중에 없애더라도 서버가 이미 받은 요청은 되돌릴 수 없습니다. 화면에서 카드가 사라졌다는 사실과 네트워크 요청이 한 번도 없었다는 주장은 다릅니다. 특히 고객별 주소를 넣는 작업은 텔레그램 메시지 개인화 설정과 함께 확인해, 어떤 대상에게 어떤 URL을 배정했는지 먼저 고정하세요.

링크 입력·편집 단계의 미리보기 조회, 메시지 발송 상태, 실제 링크 클릭 후 웹사이트 방문을 구분한 흐름도
링크를 입력할 때의 미리보기 조회와 발송, 실제 웹사이트 방문을 각각 확인하세요. 서버 요청만으로 고객 클릭을 확정할 수 없습니다.

2. 앱의 X와 봇의 is_disabled를 실제로 설정하기

앱에서 특정 메시지의 텔레그램 링크 미리보기 끄기를 하려면 URL을 붙여넣고, 생긴 카드의 x 또는 닫기 표시를 눌러 제거한 다음, 전송할 메시지에 카드가 없는지 확인하세요. x 방식은 공식 2015년 안내에 나옵니다. 현재 앱 버전에 따라 위치와 표현이 다를 수 있으므로 실제 입력창에서 확인해야 합니다.

카드를 유지하려는 경우에는 크기, 본문 위·아래 배치, 여러 URL 중 미리볼 링크도 확인할 수 있습니다. 이 조절 항목은 공식 2023년 소개에 설명돼 있습니다. 카드 제거는 해당 메시지의 표시를 다루는 동작이며, 이미 발생한 조회를 취소하는 전역 네트워크 차단 설정은 아닙니다.

봇의 sendMessage 요청에는 현재 Bot API의 link_preview_options 안에 is_disabled를 true로 지정합니다. 다음은 가상 chat_id와 예시 주소를 쓴 요청 본문입니다. 사용하는 발송 코드에서 메시지를 보내기 전에 이 값이 들어가는지 확인하세요.

{"chat_id": 123456, "text": "안내 https://example.com/info", "link_preview_options": {"is_disabled": true}}

주소 경로를 /no-preview로 바꾸는 것은 옵션 설정이 아닙니다. 경로 이름과 API 필드를 혼동하지 마세요. 비활성화 조건을 비교할 때도 이미 조회한 주소를 재활용하기보다 새 테스트 주소로 조건을 나눠야, 이전 조회나 캐시가 결과에 섞이는 일을 줄일 수 있습니다.

본문에 보이는 주소, 버튼을 눌렀을 때 열릴 주소, 카드가 소개할 주소는 아래처럼 따로 확인합니다. 버튼 목적지를 바꿨다고 본문의 URL이나 미리보기 대상도 함께 바뀌는 것은 아닙니다. 버튼 URL만으로 카드가 항상 생기거나 항상 생기지 않는다고 단정하지 마세요.

설정 위치예시 값의미
text의 URLhttps://example.com/info본문에 표시되는 주소
inline_keyboard 버튼의 urlhttps://example.com/reserve버튼을 눌렀을 때 열 주소
link_preview_options.urlhttps://example.com/info카드를 켰을 때 선택할 미리보기 주소
link_preview_options.is_disabledtrue해당 메시지의 링크 미리보기 비활성화

3. 실제 관찰: 전송 보고 전 2건, 브라우저 1건

2026년 10월 23일 PSYKE 소유 테스트 페이지에서는 사용자 전송 보고 전에 TelegramBot (like TwitterBot)이라는 User-Agent의 GET 요청 두 건을 관찰했습니다. 두 요청은 HTTP/2였고 관찰 네트워크는 AS62041이었습니다. 사용자가 직접 열었다고 보고한 동작에는 모바일 브라우저 요청 한 건이 대응했습니다.

첫 전송 보고 뒤 121초, 두 번째 전송 보고 뒤 129초 동안 추가 요청은 각각 0건이었습니다. 다만 붙여넣기·전송·카드 제거의 정확한 시점은 사용자 보고에 의존했고 화면으로 독립 검증하지 않았습니다. 이 숫자는 그 관찰 구간의 기록이며 이후에도 요청이 없다는 뜻은 아닙니다.

두 번째는 기존 URL을 다른 경로로 편집한 경우였습니다. 처음부터 비활성화한 새 URL을 대조한 실험은 아니며, no-preview도 구별용 이름이었습니다. 추가 요청이 없는 결과는 캐시와 양립하지만 캐시가 원인이었는지와 유지 시간은 입증하지 못합니다. 관찰된 UA와 ASN도 전체 Telegram 요청 목록이나 요청자 신원의 확정 근거가 아닙니다. 공개 관찰 요약은 아래 출처에서 확인할 수 있습니다.

4. 일회용 링크는 조회와 사용 완료를 분리하세요

외부 서비스의 일회용 메모나 자료 링크가 첫 접속만으로 사용 완료 처리된다면, 미리보기 조회가 사람보다 먼저 링크를 소모할 가능성이 있습니다. 그러나 서비스마다 만료와 열람 처리 조건이 다릅니다. 이번 관찰은 자동 요청의 존재를 확인한 것으로, 실제 일회용 토큰 소모까지 검증한 실험은 아닙니다.

외부 서비스를 쓴다면 공급자 문서에서 “이미 열림”이 되는 조건부터 찾으세요. 첫 GET인지, 페이지 표시 이후인지, 별도 확인 버튼 이후인지 질문하면 됩니다. 운영자가 서버를 바꿀 수 없다면 자동 조회가 링크 수명에 영향을 주는지, 시험용 링크를 어떻게 만드는지 공급자에게 확인하고 고객용 한정 주소는 점검에 쓰지 마세요.

직접 만드는 링크라면 GET·HEAD 조회는 안내와 상태 확인에만 쓰고, 실제 사용 처리는 명시적 확인 버튼과 서버 검증 뒤에 두는 설계를 점검하세요. RFC 9110은 GET·HEAD를 읽기 중심의 안전한 메서드로 정의합니다. 단순히 POST로 바꾼다고 사람 인증이 되는 것은 아니므로 필요한 로그인·권한·중복 처리도 따로 확인해야 합니다.

URL에는 전화번호나 이름 대신 의미 있는 업무 구분값과 별도 토큰을 사용하세요. 예를 들어 campaign=workshop은 캠페인을 구별하고, 추측하기 어려운 토큰은 서버에서 배정 기록에 연결합니다. 고유 주소는 전달될 수 있으므로 수신자의 신원 확인을 대신하지는 않습니다.

5. 붙여넣기부터 확인 버튼까지 한 단계씩 테스트하세요

아래 표는 독자가 소유한 테스트 페이지와 테스트 대화에서 재현할 점검안입니다. 이미 수행한 실험 결과가 아닙니다. 먼저 새 테스트 URL과 토큰을 만들고 앱 버전, 미리보기 조건, 관찰 시간을 적으세요. 서버와 작업 기록은 같은 시간대를 사용하고, 각 동작 뒤에 로그를 확인한 다음 다음 단계로 넘어갑니다.

봇 비교는 기본 조건과 is_disabled=true 조건에 서로 다른 새 테스트 URL을 배정하고, 옵션을 전송 전에 적용하세요. 앱에서 카드를 없애는 시험도 별도로 기록합니다. 반복 조회가 없더라도 캐시 가능성이 있으므로 “한 번 안 나왔다”만으로 모든 환경에서 요청이 차단된다고 결론 내리지 않습니다.

실제 발송 준비에는 텔레그램 메시지 발송 전 점검 순서를 함께 사용해 본문, 배정 주소, 버튼 목적지와 완료 확인 방법을 맞추세요. 발송 중 계정 자체에 동결 안내가 나타나는 문제는 텔레그램 메시지 발송 중 계정 동결 점검에서 별도로 다룹니다. 미리보기 설정을 바꿨다는 이유로 계정 제한이 예방된다고 해석하면 안 됩니다.

단계기록할 것확인하려는 관찰
새 테스트 URL 준비조건·앱 버전·시작 시각아직 요청이 없는 기준 상태
입력창에 붙여넣기붙인 시각과 서버 로그전송 전 조회가 생기는지
카드 제거닫은 시각과 표시 상태카드 제거와 기존 요청 구분
테스트 대화에 전송전송 시각·관찰 종료 시각전송 뒤 추가 요청 여부
직접 열기연 시각·페이지 이벤트브라우저 방문 대응 여부
CTA·확인 실행버튼 이벤트·서버 결과사용·신청 완료가 별도 기록되는지

6. 요청·페이지 조회·CTA·실제 구매를 따로 집계하세요

텔레그램 링크 클릭수를 보고할 때는 숫자가 어디서 나왔는지부터 적으세요. HTTP 요청은 페이지 정보를 요청한 기록이고, page_view는 태그가 실행되는 조건의 페이지 조회입니다. CTA는 설정한 버튼 상호작용이며, 신청·사용·구매 확정은 서버의 업무 결과로 확인해야 합니다. 한 단계의 숫자를 다음 단계의 완료 수로 바꾸지 마세요.

GA4 향상된 측정의 click은 기본적으로 내 사이트에서 다른 도메인으로 나가는 링크 동작을 다룹니다. Telegram 앱에서 내 사이트로 들어온 클릭을 직접 세는 값과 다릅니다. 캠페인 URL에 UTM을 붙이면 유입을 분류하는 데 도움이 되지만, 그 값만으로 사람이 클릭했다는 사실이나 고유 고객 수를 인증할 수는 없습니다.

리다이렉트는 다음 주소로 이동을 안내하는 응답이고, exit URL은 도구에 따라 목적지를 부르는 이름입니다. 클로커는 조건에 따라 응답을 나누는 도구를 가리키지만, 이런 경로만으로 최종 페이지 로드나 구매를 증명할 수 없습니다. 이번 관찰은 리다이렉트 체인 시험도 아니었습니다. 실제 랜딩과 확인 결과를 단계별로 대조하세요.

PSYKE의 제품 역할은 보유 전화번호 목록의 확인입니다. 이 글의 미리보기 시험, 링크 배정, 웹 이벤트 측정은 운영자가 별도로 구성할 점검 절차입니다.

기록의미완료 판단
HTTP GET·HEAD주소 접근 또는 정보 조회열람·구매 완료로 처리하지 않음
page_view설정 조건에서 페이지 조회 이벤트방문 신호로 구분
CTA 이벤트지정한 버튼 동작다음 행동 신호로 구분
서버 확정 결과검증된 사용·신청·구매해당 업무 완료로 집계
보유 번호 목록 검수 살펴보기

자주 묻는 질문

미리보기 카드를 닫으면 이미 생긴 접속 요청도 취소되나요?

아니요. 카드 표시를 없애도 서버가 이미 받은 요청은 되돌릴 수 없습니다. 카드 유무와 요청 시각을 따로 확인하세요.

일회용 링크가 미리보기 때문에 반드시 소모되나요?

서비스의 사용 처리 조건에 달려 있습니다. 첫 조회를 사용 완료로 보는지 공급자 문서를 확인하세요. 이번 관찰은 일회용 토큰 소모까지 검증하지 않았습니다.

출처 및 참고 자료

관련 가이드