2017-03-03 3 views
0

Googleタグマネージャを使用して特定のドメインへの発信リンクをいくつかのUTM情報とともに追加しようとしています。要素のオンクリックIDを取得し、GTMを使用して発信URLに追加します。

私は正常以下でpageloadにHTMLを書き換えています

<script type="text/javascript"> 
// 
var myDomain = "www.target.com"; 
// 
var links = document.getElementsByTagName('a'); 
// Loop 
Array.prototype.forEach.call(links, function (link) { 
// Link check 
if (link.href.indexOf(myDomain) > 0) { 
    // Take the href and append the UTM parameters 
    link.href += "?utm_source=" + {{UTMsource}} + "&utm_campaign=target_blog&utm_medium=" + {{UTMmedium}} + "&utm_term=&utm_content="; 
} 
}); 
</script> 

{{UTMsource}}は、現在のページのURLをキャプチャしています。私は{{UTMmedium}}に、ユーザーがサイトを離れるときにクリックするオンクリック要素のIDを取得することができません。

次のCSSセレクタで要素のテキストをキャプチャできます:a [href * = "target.com"] ただし、ページに複数のリンクがある場合、最初のリンクページに見つかりました。

クリックした要素のIDを取得し、{{UTMmedium}}がその情報を取得して発信リンクのUTMコードに含める必要があります。

答えて

0

問題は、GTMがpageloadでHTMLタグを実行しているためです。

変数(UTMmedium)に入力するチャンスがないため(クリックイベントなし)、この値は定義されません。

さらに、GTMは静的な値を1つしか収集せず、ロード時のすべてのリンクにその単一のIDを入力するという問題があります。

代わりに変数を使用するのでは、以下のように、あなたのループを修正し、HREFをキャプチャしながらJSを使用してIDをキャプチャ:

// Link check 
if (link.href.indexOf(myDomain) > 0) { 
    // Take the href and append the UTM parameters 
    link.href += "?utm_source=" + {{UTMsource}} + 
    "&utm_campaign=target_blog&utm_medium=" + link.id + 
    "&utm_term=&utm_content="; 
    } 
+1

素晴らしい、完璧にあなたに感謝動作します。 – andruil

関連する問題