programing

Google Analytics - 리디렉션에 의한 아웃바운드 링크 추적

sourcejob 2023. 3. 5. 09:44
반응형

Google Analytics - 리디렉션에 의한 아웃바운드 링크 추적

발신 링크를 추적하도록 Google Analytics를 설정했습니다.그러나, 나는 또한 발신 URL을 수정하는 Amazon Link Localizer라고 불리는 WordPress 플러그인을 설치했습니다. 최종 형식은 다음과 같습니다.prourls.com?url=www.amazon.com대신www.amazon.com.

이러한 아웃바운드 링크 클릭을 추적할 수 있도록 Analytics 스크립트를 수정할 수 있습니까?

순서 1: 추가trackOutboundLink스크립트로 지정합니다.

에 이 코드를 추가합니다.<head></head>페이지 HTML 섹션: (전체 스크립트는 이 페이지 하단에 있지만 페이지 크기를 최소화하려면 이 스크립트를 사용하십시오.)

<script>
var trackOutboundLink=function(t,e){var n,o="object"==typeof t?t.href:t,a=document.createElement("a");function c(){document.location=o}e=e||o,a.href=e,/\bprourls\.com?$/i.test(a.host)?e=(n=/[\?&]url=([^&#]+)/.test(a.search)&&RegExp.$1||"")?decodeURIComponent(n):e:/\blinksynergy\.com$/i.test(a.host)&&(e=(n=/[\?&]murl=([^&#]+)/.test(a.search)&&RegExp.$1||"")?decodeURIComponent(n):e),"function"==typeof gtag?gtag("event","click",{event_category:"outbound",event_label:e,transport_type:"beacon",event_callback:c}):ga("send","event","outbound","click",e,{transport:"beacon",hitCallback:c})};window.addEventListener("load",function(){var t,e,n=document.getElementsByTagName("a")||[];function o(t){t.preventDefault();var e=this.getAttribute("data-outbound-link");trackOutboundLink(this.href,"1"===e?"":e)}for(t=0;t<n.length;t++)(e=n[t]).href&&!/^#/.test(e.href)&&location.host!==e.host&&""!==e.getAttribute("data-outbound-link")&&e.addEventListener("click",o,!1)},!1);
</script>

스크립트는 Google Analytics에서 제공하는 스크립트의 수정/맞춤 버전입니다.

  • https://support.google.com/analytics/answer/1136920?hl=en : 구(또는ga.js) 라이브러리입니다.

  • https://support.google.com/analytics/answer/7478520?hl=en - 새 라이브러리의 경우.

순서 2: 추가data-outbound-link="1"발신 링크의 HTML로 이동합니다.

추적하는 각 아웃바운드 링크에 대해 링크의 HTML에 다음을 추가합니다.

data-outbound-link="1"

(이전에 추가하신 경우)onclick="trackOutboundLink('http://www.example.com'); return false;"위의 코드로 대체해 주세요.)

그래서 다음 대신:<a href="http://www.example.com" onclick="trackOutboundLink('http://www.example.com'); return false;">Check out example.com</a>

..이것 사용:<a href="http://www.example.com" data-outbound-link="1">Check out example.com</a>

완전한 스크립트

다음은 커스텀의 완전 미정리 버전입니다. trackOutboundLink스크립트: (참고로만 사용)

<script>
var trackOutboundLink = function(link, url2track) {
  var url2visit = ('object' === typeof link) ? link.href : link,
    a = document.createElement('a'),
    b;

  url2track = url2track || url2visit;
  a.href = url2track;

  // Dynamic redirect URLs via Prourls.com; this was for Amazon URLs.
  if (/\bprourls\.com?$/i.test(a.host)) {
    b = (/[\?&]url=([^&#]+)/.test(a.search) && RegExp.$1) || '';
    url2track = b ? decodeURIComponent(b) : url2track;
  // Dynamic redirect URLs via Link Synergy; this was for Footlocker URLs.
  } else if (/\blinksynergy\.com$/i.test(a.host)) {
    b = (/[\?&]murl=([^&#]+)/.test(a.search) && RegExp.$1) || '';
    url2track = b ? decodeURIComponent(b) : url2track;
  }
  // All other URLs are not parsed and expected to be valid outbound URLs.

  function onTracked() {
    //alert('Tracked: ' + url2track);
    document.location = url2visit;
  }

  if ('function' === typeof gtag) {
    gtag('event', 'click', {
      'event_category': 'outbound',
      'event_label': url2track,
      'transport_type': 'beacon',
      'event_callback': onTracked
    });
  } else {
    ga('send', 'event', 'outbound', 'click', url2track, {
      'transport': 'beacon',
      'hitCallback': onTracked
    });
  }
};

window.addEventListener('load', function() {
  var links = document.getElementsByTagName('a') || [],
    i, a;

  function _go(e) {
    e.preventDefault();

    // Track a custom URL address, if specified.
    var b = this.getAttribute('data-outbound-link');

    trackOutboundLink(this.href, '1' === b ? '' : b);
  }

  for (i = 0; i < links.length; i++) {
    a = links[i];

    if (!a.href || /^#/.test(a.href) || location.host === a.host) {
      continue;
    }

    if ('' !== a.getAttribute('data-outbound-link')) {
      a.addEventListener('click', _go, false);
    }
  }
}, false);
</script>

이것을 시험해 보세요.

먼저, 를 삭제합니다.onclick모든 링크의 핸들러.

번째: 다음 코드를 포함합니다.<head>블록

var trackOutboundLink = function(url) {
    var newUrl = url;
    var re = /prourls\.co.*\?.*url=(.*)/
    var matches = url.match(re);
    if (matches && matches.length > 0) {
        newUrl = matches[1]
    }

    // console.log(newUrl);

    ga('send', 'event', 'outbound', 'click', newUrl, {
      'transport': 'beacon',
      'hitCallback': function(){document.location = url;}
    });
};

var btns = document.querySelectorAll('a.btn');
for (var i = 0, l = btns.length; i < l; i++) {
    btns[i].addEventListener('click', function(e) {
        // console.log(e.target.href);
        trackOutboundLink(e.target.href);
    });
}

수정된trackOutboundLink()지금 바로:

  • 형식인지 확인합니다.prourls.com?url=XXXX
  • 의 값을 추출합니다.url파라미터
  • 이 값을 GA 이벤트 추적 호출에 전달합니다.

언급URL : https://stackoverflow.com/questions/49911882/google-analytics-outbound-link-tracking-with-a-redirect

반응형