「ページビュー」はウェブブラウザがページの読み込みを開始するとすぐに発動するため、CVページで注文番号の値等をdataLayerで渡す前にすぐにCVタグが発火している可能性があります。
値が反映されずタグ(変数)名がそのまま出てしまっているケース、または数値型の箇所に「“”」で囲って文字列にしてしまっているケースも考えられます。
「LPタグ」より先に「CVタグ」のタグが発火するエラーが起きている可能性があります。
(CVタグにa8sales.jsが入っていない場合によく起こるエラーです。)
┗「LPタグ」→「CVタグ」の順番で読み込みされる必要があるため、タグの優先度またはトリガーを変更することで解消される場合があります。
上記のケースも基本的には読み込みの順番で起きるケースが多いです。
または、貴社サイトで呼び出している何らかのjsタグによってa8sale.jsの読み込みが阻害されている可能性もございます。
// GTMへのデータプッシュ
dataLayer.push({
pid,
salesOrder,
items: [
{
itemCode,
price,
quantity,
},
],
totalPrice,
})
items自体がデータレイヤー変数として設定されていない為、値が渡せない状態であることが考えられます。下記のように設定ください。
(dataLayer.pushの配列渡しを使用する)
var items = [{"code":"11111","price":1000,"quantity":2},{"code":"22222","price":2000,"quantity":1},];
// GTMへのデータプッシュ
dataLayer.push({
pid,
salesOrder,
items,
totalPrice,
})
ポイント!
予め変数に値を入れておけば、GTM上で設定した変数と同じ名前であれば変数をそのままpushしても送ることができます。
itemsを変数として設定し、GTMで設定しているCVタグの設定部分を下記のように設定ください。
"items": [
{
"code": {{itemCode}},
"price": {{price}},
"quantity": {{quantity}}
},
↓
↓
"items":{{items}},
・半角が全角になっていないかご確認ください。
・「’」が「`」や「’」 で囲っていないかもご確認ください。
例:
【誤】
dataLayer.push({
orderNumber ':'order001',
});
↓
↓
【正】
dataLayer.push({
'orderNumber':'order001',
});
Mixed Content: The page at 'https://cart.com/' was loaded over HTTPS, but requested an insecure script 'http://statics.a8.net/a8sales/a8sales.js'. This request has been blocked; the content must be served over HTTPS.
【混合コンテンツ】であることが原因
混在コンテンツとはHTTPS接続で表示させるよう作成されているが、暗号化されていないHTTP接続で画像、動画、スクリプトなどのコンテンツを読み込もうとするWebサイトを指します。
大体のケースがサイトがhttpsに対してjsタグがhttpで設定されている場合です。
タグの案内はhttpから記載せず、「//」前を下記のように省略すると自動的にhttpのサイトならhttpに、httpsのサイトならhttpsになりますので推奨します。
<script src="//statics.a8.net/a8sales/a8sales.js"></script>
<script src="//statics.a8.net/a8sales/a8crossDomain.js"></script>
Refused to load the script 'https://statics.a8.net/a8sales/a8sales.js' because it violates the following Content Security Policy directive: ~~~
以下ドメインが許可が必要なドメインとなりますので、ご設定お願い致します。
https://statics.a8.net
https://px.a8.net