advanced_ dom_ input_ focusedinterface
The event is published when an input on a page gains focus.
This event is limited on checkout to stores on the Shopify Plus plan.
Anchor to propertiesProperties
- Anchor to clientIdclientIdstring
The client-side ID of the customer, provided by Shopify
- Anchor to datadata
- string
The ID of the customer event
- Anchor to namenamestring
The name of the customer event
- number
The sequence index number of the event.
- Anchor to timestamptimestampstring
The timestamp of when the customer event occurred, in ISO 8601 format
- Anchor to typetype.AdvancedDom
PixelEventsAdvancedDomInputFocused
The `advanced_dom_input_focused` event logs an instance where an input, textarea, or select element on the page has received focus
- clientId
The client-side ID of the customer, provided by Shopify
string
- data
PixelEventsAdvancedDomInputFocusedData
- id
The ID of the customer event
string
- name
The name of the customer event
string
- seq
The sequence index number of the event.
number
- timestamp
The timestamp of when the customer event occurred, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format
string
- type
EventType.AdvancedDom
export interface PixelEventsAdvancedDomInputFocused {
/**
* The client-side ID of the customer, provided by Shopify
*/
clientId?: string;
data?: PixelEventsAdvancedDomInputFocusedData;
/**
* The ID of the customer event
*/
id?: string;
/**
* The name of the customer event
*/
name?: string;
/**
* The sequence index number of the event.
*/
seq?: number;
/**
* The timestamp of when the customer event occurred, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format
*/
timestamp?: string;
type?: EventType.AdvancedDom;
}
PixelEventsAdvancedDomInputFocusedData
- node
The node object for the event target.
DomNode
export interface PixelEventsAdvancedDomInputFocusedData {
/**
* The node object for the event target.
*/
node?: DomNode;
}
DomNode
Representation of a node in the document.
- attributes
A dictionary of attributes of an element. Only available on element nodes.
{ [key: string]: string; }
- checked
The checked state of an element. Only available on input element nodes.
boolean
- clientRect
The coordinates of the element in the viewport. Only available on element nodes.
ClientRect
- nodeType
The type of node based on the native DOM API's [`nodeType`](https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType) values. It distinguishes different kind of nodes from each other, such as elements, text and comments.
number
- scroll
The scroll coordinates of the element in the viewport. Only available on element nodes.
ClientRect
- serializationId
The serialization id of the node. This is a unique identifier for the node based on its stable reference in the host DOM tree.
number
- tagName
A string representation of the tag of a node. Only available on element nodes.
string
- textContent
The text content of an element. Only available on text nodes.
string
export interface DomNode {
/**
* The type of node based on the native DOM API's
* [`nodeType`](https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType) values. It distinguishes different kind of
* nodes from each other, such as elements, text and comments.
*/
nodeType?: number;
/**
* The serialization id of the node. This is a unique identifier for the node
* based on its stable reference in the host DOM tree.
*/
serializationId?: number;
/**
* A dictionary of attributes of an element. Only available on element nodes.
*/
attributes?: {[key: string]: string};
/**
* The checked state of an element. Only available on input element nodes.
*/
checked?: boolean;
/**
* The coordinates of the element in the viewport. Only available on element
* nodes.
*/
clientRect?: ClientRect;
/**
* The scroll coordinates of the element in the viewport. Only available on
* element nodes.
*/
scroll?: ClientRect;
/**
* A string representation of the tag of a node. Only available on element
* nodes.
*/
tagName?: string;
/**
* The text content of an element. Only available on text nodes.
*/
textContent?: string;
}
ClientRect
An object that contains data about an element coordinates in a viewport.
- height
number
- width
number
- x
number
- y
number
export interface ClientRect {
height?: number;
width?: number;
x?: number;
y?: number;
}
EventType
- AdvancedDom
advanced-dom
- Custom
custom
- Dom
dom
- Meta
meta
- Standard
standard
export enum EventType {
AdvancedDom = 'advanced-dom',
Custom = 'custom',
Dom = 'dom',
Meta = 'meta',
Standard = 'standard',
}
Accessing Advanced DOM Events
App Pixel
examples
Accessing Advanced DOM Events
App Pixel
import {register} from '@shopify/web-pixels-extension'; register(({analytics}) => { analytics.subscribe('advanced_dom_input_focused', (event) => { // Accessing event payload const node = event.data.node; if (node?.nodeType !== Node.ELEMENT_NODE) return; const payload = { event_name: event.name, event_data: { id: node.serializationId, value: node.attributes?.value, }, }; // E.g. sending event to third party servers fetch('https://example.com/pixel', { method: 'POST', body: JSON.stringify(payload), keepalive: true, }); }); });