From 1fd997c374c14dc7251d257c9daaa742a72076b0 Mon Sep 17 00:00:00 2001 From: Ewen Le Bihan Date: Sun, 17 Dec 2023 00:11:39 +0100 Subject: [PATCH] Allow setting custom data on autotracked pageviews via data attributes on script element --- src/tracker/index.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/tracker/index.js b/src/tracker/index.js index 606da9257..c1efbc422 100644 --- a/src/tracker/index.js +++ b/src/tracker/index.js @@ -39,6 +39,15 @@ } }; + const getPageviewEventData = () => Object.fromEntries( + [...currentScript.attributes] + .filter(attribute => eventRegex.match(attribute.name)) + .map(attribute => { + const match = attribute.name.match(eventRegex); + return [match[1], attribute.value] + }) + ) + const getPayload = () => ({ website, hostname, @@ -207,7 +216,7 @@ } else if (typeof obj === 'function') { return send(obj(getPayload())); } - return send(getPayload()); + return send({ ...getPayload(), data: getPageviewEventData() }); }; const identify = data => send({ ...getPayload(), data }, 'identify');