"내 블로그 글, 누가 얼마나 퍼갈까? GTM으로 복사 이벤트 추적하기"

제출 후 보이는 문구 - 듣는 사람이 없는 것처럼 노래를 부르세요

구글 태그관리자(GTM)와 GA4를 연동하여 블로그 글 복사 이벤트 추적하는 방법. 내 블로그 글, 누가 얼마나 퍼갈까? 광고 수익 보호를 위한 '무효 클릭 IP 추적'에 이어 콘텐츠 보호를 위한 Ctrl+C 추적을 시작해보자.

"이 방법을 따라하면 어느 부분을 복사한지 알 수 있다!"

GA4 실시간 개요에서 copied text 확인
구글 애널리틱스 content_copy 추적 화면


태그관리자로 복사 이벤트 추적하기 (GA4 연동)

누군가 내 글을 드래그해서 Ctrl+C를 누를 때, GA4에 기록이 남게 만드는 방법.

1단계: GTM에서 맞춤 자바스크립트 변수 만들기

  1. GTM 접속 > 변수 > 사용자 정의 변수 [새로 만들기].
  2. 이름: JS - Copied Text
  3. 변수 유형: 맞춤 자바스크립트 선택 후 아래 코드 복사/붙여넣기.

JavaScript

function() {
  return window.getSelection().toString();
}
  


위 코드는 사용자가 드래그한 영역이 한 문장이든, 포스팅 전체든 상관없이 텍스트 전부를 긁어와 GA4로 보낸다.

맞춤 자바스크립트 변수 만들기
태그관리자 변수 만들기(JS - Copied Text)


2단계: 트리거 만들기

  1. 트리거 > [새로 만들기].
  2. 이름: Event - Copy
  3. 트리거 유형: 맞춤 이벤트.
  4. 이벤트 이름: copy (반드시 소문자).

Event Copy 트리거 만들기
태그관리자 트리거 만들기(Event - Copy)


3단계: 태그 만들기 (GA4로 전송)

  1. 태그 > [새로 만들기].
  2. 이름: GA4 Event - Content Copy
  3. 태그 유형: Google 애널리틱스: GA4 이벤트.
  4. 측정 ID: 본인의 GA4 ID 입력.
  5. 이벤트 이름: content_copy
  6. 이벤트 매개변수 추가:

  • 행 추가: 매개변수 이름 copied_text / 값 {{JS - Copied Text}}

  1. 트리거: 방금 만든 Event - Copy 선택 후 저장.

    GA4 이벤트 태그 만들기
    태그관리자 태그 만들기(GA4 Event - Content Copy)


4단계: 트리거를 일으키는 '리스너(Listener)' 코드 추가

GTM은 브라우저에서 '복사'가 일어나는지 기본적으로 감시하지 않는다. 그래서 우리가 "복사하면 알려줘!"라고 명령하는 코드를 하나 심어줘야 한다.

  1. 태그 > [새로 만들기].
  2. 이름: JS - Copy Listener
  3. 태그 유형: 맞춤 HTML.
  4. 아래 코드를 복사해서 붙여넣기.

HTML

<script>
  document.addEventListener('copy', function(e) {
    window.dataLayer = window.dataLayer || [];
    window.dataLayer.push({
      'event': 'copy'
    });
  });
</script>
  
  1. 트리거: All Pages (모든 페이지) 선택 후 저장.
트리거를 일으키는 태그 만들기
태그관리자 태그 만들기(JS - Copy Listener)

위의 가이드대로 한다면 최대 500자까지 수집된다. GA4에는 이벤트 매개변수 하나당 500자(Byte가 아니라 글자 수 기준)라는 제한이 있다고 함.

주의! 만약 블로그에 자바스크립트로 만든 '코드 복사 버튼'이 따로 있다면, 위 설정만으로는 버튼 클릭은 잡을 수 없다. 그럴 땐 버튼 코드 안에 window.dataLayer.push 신호를 넣어줘야 함.

이런식으로 ∇ (제미나이 스타일 코드 블럭 - 아이콘 SVG들과 상태 변경 사이에 삽입)

JavaScript

// --- [추가 시작] GTM 및 GA4로 복사 데이터 전송 ---
    window.dataLayer = window.dataLayer || [];
    window.dataLayer.push({
      'event': 'copy',
      'copied_text': codeText.substring(0, 100) // 코드의 앞 100글자만 수집
    });
    // --- [추가 끝] ---
  

오늘의 한마디

복사 버튼 박스 안에 넣은 코드는 공유 목적이니 상관 없지만, 글까지 불펌하면 안되겠지?

하나 더!
4단계까지 마쳤다면 잊지 말자! 태그매니저에서 [제출] 버튼을 눌러야 블로그에 적용됨을. 오랜만이지, 이 멘트? '듣는 사람이 없는 것처럼 노래를 부르세요.'

제출 후 보이는 문구 - 듣는 사람이 없는 것처럼 노래를 부르세요
제출 후 화면