GTM (Google タグ マネージャー) では、カスタム JavaScript マクロを使用できます。これは、タグまたはルールによって使用されるものを返す匿名関数です。
各マクロは try/catch を使用しているため、実装エラーを簡単に表面化できます (UA タグによってキャッチされる dataLayer イベントを発生させます)。
しかし、ここで奇妙なことがあります... try/catch のコメントを外すと、GTM は頑固にそれを使用することを拒否し、エラーは発生しません... しかし、常に保存モードになります (つまり、ブラウザは何かを待ち続けます)。デバッグ コンソールで実行すると、このコードが機能することはわかっています。また、同じ try/catch 手法を使用するマクロが他にもあります。何か考えはありますか?
function () {
/*try {*/
var v = '';
// HTML5 video
if(document.getElementsByTagName('video').length) v += 'video,';
// Youtube video
var i = document.getElementsByTagName('iframe');
for(x = 0; x < i.length; x++)
if(/youtube.com\/embed/.test(i[x].src)) {
v += 'youtube,';
break;
}
// Limelight video
if(document.getElementsByClassName('LimelightEmbeddedPlayer')) v += 'limelight,';
return v.length ? v.slice(0, -1) : v;
/*} catch(e) {
dataLayer.push({
'event': 'error',
'action': 'GTM',
'label': '713-Video Type:' + e.message
});
}*/
}