Googleアナリティクス4(以降 GA4)がリリースされて約半年。ユニバーサルアナリティクス(以降 UA)に加えて、使い始めてみたいというクライアントも、少しづつお見かけするようになってきました。
ところで、ECサイトの顧客の中には、一度に何十種類も商品を購入するような大口顧客も存在します。購入する商品の数が多いほど、タグからGAに送信するデータのサイズも大きくなります。
UAでは、タグから送信しようとするビーコンのデータ本体のサイズが8,192byteを超えた場合、その送信が失敗する(下記図③)ため、大口顧客のトランザクション計測が漏れる場合がありました。(*1)
それでは、GA4の制限はどうなっているのでしょうか?つまり、GA4に送信できるデータ本体のサイズは何バイトなのでしょうか? また、一度の購入で計測することのできる商品は何種類なのでしょうか?(*2)
筆者はこの懸念を解消すべく、GA4(gtag.js)で送信できるデータの大きさの上限を調査しました。(*3)
備考
*1. UA環境におけるビーコンサイズの削減対策
商品の購入数が多いECサイトでは、eコマース/拡張eコマーストラッキングで送信したい商品情報の項目(商品名や商品カテゴリ)を一部省くことでサイズを削減する、といった対処をすることもありました。
*2. 送信する商品の種類
GA4では送信するビーコンのデータ全体のサイズの制限だけでなく、データの各項目でも制限があります。トランザクションを計測する場合にもその制限が適用されると考えるのが自然です。トランザクションは「purchase」というイベントでデータ送り、そのとき購入された商品情報は「items」というパラメータで送られます。このパラメータの値として各商品を複数(配列型で)指定するのですが、ここに現状どの程度の種類、商品を指定できるのかについては公式ドキュメントには明示されていません。
*3. 調査範囲の注意点
本調査は、公式ドキュメントに仕様として記載のないものされていない内容を対象としています。したがって、本調査で上記の上限が判明したとしても、それはGA4の仕様として確定したものではなく、あくまで現時点(2021年3月22日時点)のものですので、ご承知おきください。
調査の結果、以下の2点が確認できました。
- 送信できたビーコンは最大16,384byte
- 送信できた商品の種類は最大200個
送信できたビーコンは最大16,384byte
ここで言うビーコンのサイズとは、送信されているデータ本体(「ペイロード」)のテキスト数(=byte、サイズ)のことです。購入情報をGA4に送信しようとしたとき、ビーコンのデータ本体のテキスト数が16,384文字(=16,384byte)を超えていると、送信に失敗しました。送信自体が失敗するため、GAは購入情報を登録してくれませんでした。
データ本体のテキスト数が16,384文字以内のビーコン:成功
データ本体のテキスト数が16,384文字を超えるビーコン:失敗
▼検証で実行したコード
// トラッカーを作成
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-***');
// 商品リストを作成
function generateItems(num){
var items = [];
for(var id=1;id<=num;id++){
var id_digit3 = ("000"+id).slice(-3);
items.push({
item_id: '100000000000000000000000000000000000000000'+id_digit3,
price: 1000,
currency: 'JPY',
quantity: 1
});
}
return items;
}
// purchaseイベントを送信
gtag('event', 'purchase', {
currency: 'JPY',
items: generateItems(200),
transaction_id: "_".repeat(56),
})
送信できた商品の種類は最大200個
商品情報を一度に200種類までGA4に送信可能でした。
送信しようとする商品の種類が200を超えると、201番目以降の商品情報がビーコンから自動的に除外された状態でGA4に送信されました。逆に言うと、送信する商品の種類が極端に多くても、(ビーコンのペイロードサイズを超えない限り)GA4は200番目までの商品情報を登録してくれることになります。
GA4のレポートでも実際に商品ID200まで登録されることが確認できました。
▼検証で実行したコード
// purchaseイベントを送信
gtag('event', 'purchase', {
items: generateItems(500),
transaction_id: "_",
})
おわりに
UAでは、送信するビーコンサイズが8,192byteを超えると送信できなくなる、という制限がありましたが、GA4では、少なくとも現時点(2021年3月22日)でその上限が2倍に拡張されていることが分かりました。
そのため、eコマーストラッキングで送信する商品情報の項目を省くといった対策の必要性は現時点で薄れているのではと考えています。他方、送信される商品の種類は200個までという制限が設けられているため、大口顧客がいるECサイトでは留意しておくと良いかもしれません。
筆者は今回の調査に続き、今後もGA4で何ができて何ができないかを明確にしていきたいと考えています。それではまた次の記事でお会いしましょう。
なお、プリンシプルでは、ご状況・ご要望に応じて最適な運用が行えるようサポートさせていただいております。GA4はリリースされてまだ間もないですが、既に導入支援を行った実例もございます。ご興味ありましたら、是非お気軽にお問い合わせください。