2017-10-11 2 views
0

ように、私は、Mozilla PDF.jsを使用してiframeをPDFファイルでサイトを持っている:私はページを追跡するためにGoogleからのanalytics.jsを使用していますGoogleアナリティクスイベント

<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> 

そして、次のようになります。

<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の中にいくつかのog mailtoリンクを持っています。次のスクリプトを使用してイベントを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はリンクを動的に作成するので、ページがレンダリングされアノテーションレイヤーが作成されるたびにスクリプトを実行する必要があることに注意してください。または、単一のdocument.addEventListener( 'click'、handler、true)を使用してjQueryを使用してクリックイベントをリッスンしないでください。 – async5

+0

もちろん、これはうまくいきました。あなたの答えをありがとう。 – StefanL

答えて

-1

PDFはプラグインブラウザで読み取られ、javascriptはソースコードを解析することができません。 統計情報をリンクに追加できる唯一の方法は、アナリティクスキャンペーンを使用することです。 PDFの作成時

、次の3つのパラメータを使用して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 :Google Campaigns

+0

ありがとうございました。残念なことに、pdfの私のリンクはすべて、mailtoまたはsomの他のサイトに行く外部リンクです。私はそのトラッキングを持っていません。したがって、UTMの方法は機能しません。 – StefanL

+0

だからこそ、Webページにpdfファイルを埋め込むのは悪いことです) 他のツールを使うと、ユーザーがクリックしたページのマウスの描画と座標を追跡できます。しかし、それはちょっと重いです – GGO

+0

ヒートマップのように – GGO

関連する問題