公開2022/06/02 18:04:30
function gtag(){dataLayer.push(arguments);}
Google アナリティクスを導入したことがある人なら見たことがあるだろうコード。 当然、このままなら普通に動く。 だが、私は可能であれば絶対にfunctionを使いたくない。 そこで、gtag.jsを以下のように書いたことでこの問題に遭遇した。
const gtag = (...args) => dataLayer.push(args);
collectのリクエストが送信されなかった。 これが送信されないと計測ができない。
これは推測でしかないが、dataLayerにpushするのはただの配列風オブジェクトではなく、Argumentsオブジェクトでないといけないのが原因。 実際、functionでも下のコードでは動かなかった。
const gtag = function (...args) { dataLayer.push(args); };
argumentsを使用できるfunctionを使わないといけないので、アロー関数は諦める。
© 2022 sqrtox, All Rights Reserved.