From 0ada9dbb7eaa6ab78d653d2b8d78a9ba923fb7ee Mon Sep 17 00:00:00 2001 From: Jethro Nederhof Date: Tue, 20 May 2025 16:58:09 +1000 Subject: [PATCH] Fix Element Tracking element_content entity properties (#1430) --- .../element-tracker-schemafix_2025-05-16-01-10.json | 10 ++++++++++ plugins/browser-plugin-element-tracking/src/data.ts | 11 ++++++----- .../browser-plugin-element-tracking/test/api.test.ts | 6 +++--- 3 files changed, 19 insertions(+), 8 deletions(-) create mode 100644 common/changes/@snowplow/browser-plugin-element-tracking/element-tracker-schemafix_2025-05-16-01-10.json diff --git a/common/changes/@snowplow/browser-plugin-element-tracking/element-tracker-schemafix_2025-05-16-01-10.json b/common/changes/@snowplow/browser-plugin-element-tracking/element-tracker-schemafix_2025-05-16-01-10.json new file mode 100644 index 000000000..4e6c58b66 --- /dev/null +++ b/common/changes/@snowplow/browser-plugin-element-tracking/element-tracker-schemafix_2025-05-16-01-10.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@snowplow/browser-plugin-element-tracking", + "comment": "Fix element_content schema implementation.", + "type": "none" + } + ], + "packageName": "@snowplow/browser-plugin-element-tracking" +} \ No newline at end of file diff --git a/plugins/browser-plugin-element-tracking/src/data.ts b/plugins/browser-plugin-element-tracking/src/data.ts index 99e5062cb..05315dccc 100644 --- a/plugins/browser-plugin-element-tracking/src/data.ts +++ b/plugins/browser-plugin-element-tracking/src/data.ts @@ -192,17 +192,18 @@ export function buildContentTree( const contents = getMatchingElements(contentConfig, element); contents.forEach((contentElement, i) => { - context.push({ + const entity: ElementContentEntity = { schema: Entities.ELEMENT_CONTENT, data: { - element_name: contentConfig.name, parent_name: config.name, - parent_position: parentPosition, - position: i + 1, + parent_index: parentPosition, + element_name: contentConfig.name, + element_index: i + 1, attributes: extractSelectorDetails(contentElement, contentConfig.selector, contentConfig.details), }, - }); + }; + context.push(entity); context.push(...contentConfig.context(contentElement, contentConfig)); context.push(...buildContentTree(contentConfig, contentElement, i + 1)); }); diff --git a/plugins/browser-plugin-element-tracking/test/api.test.ts b/plugins/browser-plugin-element-tracking/test/api.test.ts index f1c10359e..33ff280ff 100644 --- a/plugins/browser-plugin-element-tracking/test/api.test.ts +++ b/plugins/browser-plugin-element-tracking/test/api.test.ts @@ -241,10 +241,10 @@ describe('Element Tracking Plugin API', () => { ]); expect(entityOf(eventQueue[0], 'element_content')).toEqual([ { - element_name: 'h1', parent_name: '.advanced', - parent_position: 1, - position: 1, + parent_index: 1, + element_name: 'h1', + element_index: 1, attributes: [ { source: 'content',