2017-10-11 114 views
0

我有一個網站使用的Mozilla PDF.js的iFrame的PDF格式,像這樣:谷歌分析事件一個Mozilla PDF.js PDF中跟蹤

<iframe class="maxit" src="web/viewer.html?file=MaxIT.pdf#zoom=page-fit" frameborder="0"> 
<embed class="maxit" src="web/viewer.html?file=MaxIT.pdf" type=""> 
</iframe> 

,我使用從谷歌的analytics.js跟蹤頁面,像這樣:

<script> 
    (function(i, s, o, g, r, a, m) { 
     i['GoogleAnalyticsObject'] = r; 
     i[r] = i[r] || function() { 
      (i[r].q = i[r].q || []).push(arguments) 
     }, i[r].l = 1 * new Date(); 
     a = s.createElement(o), 
      m = s.getElementsByTagName(o)[0]; 
     a.async = 1; 
     a.src = g; 
     m.parentNode.insertBefore(a, m) 
    })(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga'); 

    ga('create', 'UA-XXXXXX-XX', 'auto'); 
    ga('send', 'pageview'); 

</script> 

一切都會按計劃,甚至標準的事件在頁面上跟蹤。 我的問題是,我無法通過單擊pdf中的鏈接來跟蹤事件。例如,我有一對夫婦郵件的PDF鏈接,我想跟蹤。我正在使用以下腳本將事件發送到GA,但即使將腳本和analytics.js直接放在web/viewer.html頁面上,也沒有任何反應。這是我正在使用的腳本:

<script type="text/javascript"> 
    $("a").each(function() { 
     var href = $(this).attr("href"); 
     var target = $(this).attr("target"); 
     var text = $(this).text(); 
     $(this).click(function(event) { // when someone clicks these links 
      event.preventDefault(); // don't open the link yet 
      if (href.indexOf("mailto") !== -1) { 
       ga('send', 'event', { 
        'eventCategory': "mailto link", 
        'eventAction': "clicked", 
        'eventLabel': href, 
        'transport': 'beacon' 
       }); // create a custom event 
       console.log("mailto clicked"); 
      } 
      setTimeout(function() { // now wait 300 milliseconds... 
       window.parent.open(href, (!target ? "_self" : target)); // ...and open the link as usual 
      }, 300); 
     }); 
    }); 
</script> 

上面的腳本工作正常,只是不適用於pdf中的鏈接。

+0

請注意,PDF.js動態創建鏈接,因此您需要在每次渲染頁面和創建註記圖層時運行腳本。或者不要使用jQuery並通過單個document.addEventListener('click',handler,true)監聽點擊事件; – async5

+0

當然,這工作。謝謝您的回答。 – StefanL

回答

-1

PDF是由插件瀏覽器讀取的,JavaScript無法解析其源代碼。 您可以在鏈接上添加統計信息的唯一方法是使用Google Analytics廣告系列。

在創建PDF,你有三個參數來裝飾你的URL鏈接:

  • utm_source
  • utm_medium
  • utm_campaign

例如:https://www.example.com/?utm_source=courrier-d-ete-&utm_medium=e-mail&utm_campaign=soldes-d-ete

DOCUME ntation:Google Campaigns

+0

謝謝你的回答。不幸的是,我在pdf中的所有鏈接都是外部鏈接,無論是mailto還是som其他網站,我都沒有跟蹤。所以UTM方式將無法工作。 – StefanL

+0

這就是爲什麼在網頁中嵌入pdf文件的原因;) 使用其他工具,您可以在用戶點擊的頁面中跟蹤鼠標繪圖和座標。但它有點沉重 – GGO

+0

也像熱地圖 – GGO