特定のページのすべてのメタ タグを読み取り、各メタ名とコンテンツ値を Google タグ マネージャーで使用されるデータレイヤー配列に保存する必要があります。
すべてのメタ タグを取得したいので、それに応じて配列内の各値をプッシュできるようにしたいと考えています。
次のコードがありますが、メタ タグが 20 ~ 30 個ある場合、それが最善の方法だとは思いません。誰かがこのコードを改善するのを手伝ってくれることを願っています!!
<html>
<head>
<title> test metas</title>
<meta name="ABC" content="dummy"/>
<meta name="DEF" content="dummy"/>
<meta name="JHK" content="dummy"/>
</head>
<body>
<script type="text/javascript" charset="utf-8">
function GTMMeta(name) {
var metas = document.getElementsByTagName('meta');
for (i=0; i<metas.length; i++) {
if (metas[i].getAttribute('name') == name) {
return metas[i].getAttribute('content');
}
}
return '';
}
dataLayer = [{}];
if (GTMMeta('ABC') !=''){
dataLayer.push({'cmsName': GTMMeta('ABC')})
};
if (GTMMeta('DEF') !=''){
dataLayer.push({'transactionTotal': GTMMeta('DEF')});
}
if (GTMMeta('JHK') !=''){
dataLayer.push({'market': GTMMeta('JHK')});
}
</script>
</body>
</html>