2016-04-28 2 views
0

クリックトラッキングURLのパラメータを指定しないで広告を配信する広告代理店にこの問題があります。私の例では絶対パスがページ上で実行されているすべてのクリック先にURLを付ける

、クリックURLは次のようになります。 http://landing-page.com

マイトラッキングURLは次のようになります。 http://tracker.com?url=

所望の効果が、そのユーザーが創作上の任意のリンクをクリックしたときに、彼は、ありますを使用して、リンクが定義されていることを、

http://tracker.com?url=http://landing-page.com

キャッチがある:に送信されますタグまたはclickeventListenerです。 onclickまたはaddEventListener('click', func)のいずれか)

すべてa[href^=http]を繰り返し処理できます。

URLをイベントリスナーにキャッチ/プリペンドするにはどうすればよいですか?事前に

感謝

EDIT:

<script> 
 
    var links = adContainer.querySelectorAll('a[href^=http]'); 
 
    window.adclick = 'http://tracker.com?url=' 
 
    for (var i = 0; i < links.length; i++) { 
 
    (function(i) { 
 
     links[i].addEventListener('click', function(e) { 
 
     window.open(window.adclick + links[i].href, '_blank'); 
 
     e.preventDefault(); 
 
     }); 
 
    })(i); 
 
    } 
 
</script>

私が持っている問題で、ということです。私はこのような何かをやっているhrefのためので

私はうまく動かすことができない、またはオンラインでイベントリスナーと同様のことをする方法を見つけることができません。

+1

一部を、助けるより多くの何かを追加しようとすることができます。 – lamp76

+0

乾杯ランプ76 - 私は私の最初の投稿を更新しました。 –

+0

私の解決策に従ってください。 – lamp76

答えて

-1

もう少し試してみると、私は簡単な解決策を見つけました。

URLが httpで始まる場合、私はまだチェックすべき

- しかし、あなたはその要旨を得る:

window._open = window.open; 
 

 
window.open = function(url, target) { 
 
    window._open('http://tracker.com?url=' + url, target); 
 
}

+0

これにより、リクエストリンクだけでなく、ページのすべてのリンクのwindow.openが変更されます。 – lamp76

+0

はい、正しいです。申し訳ありませんが、広告がすべて自分のフレーム内に配信されていることに言及していません。\ –

1

単に変更しよう:

window.open(window.adclick + links[i].href, '_blank'); 

window.open(window.adclick + this.href, '_blank'); 

ので、これを試してください:あなたのコードスニペットの

<script> 
    var links = adContainer.querySelectorAll('a[href^=http]'); 
    window.adclick = 'http://tracker.com?url=' 
    for (var i = 0; i < links.length; i++) { 
     links[i].addEventListener('click', function(e) { 
     window.open(window.adclick + this.href, '_blank'); 
     e.preventDefault(); 
     }); 
    } 
</script> 
+0

その部分はうまくいきました。有難うございます。 最初の問題は、私は上記で解決しました:) –

関連する問題