Contentful Personalization & Analytics
    Preparing search index...

    Interface PersonalizationOfflineQueueDropContext

    Context payload emitted when offline personalization events are dropped due to queue bounds.

    interface PersonalizationOfflineQueueDropContext {
        droppedCount: number;
        droppedEvents: (
            | {
                channel: "mobile"
                | "server"
                | "web";
                context: {
                    app?: { name: string; version: string };
                    campaign: {
                        content?: string;
                        medium?: string;
                        name?: string;
                        source?: string;
                        term?: string;
                    };
                    gdpr: { isConsentGiven: boolean };
                    library: { name: string; version: string };
                    locale: string;
                    location?: {
                        city?: string;
                        continent?: string;
                        coordinates?: { latitude: number; longitude: number };
                        country?: string;
                        countryCode?: string;
                        postalCode?: string;
                        region?: string;
                        regionCode?: string;
                        timezone?: string;
                    };
                    page?: {
                        path: string;
                        query: Record<string, string>;
                        referrer: string;
                        search: string;
                        title?: string;
                        url: string;
                        [key: string]: JSONType;
                    };
                    screen?: { name: string; [key: string]: JSONType };
                    userAgent?: string;
                };
                messageId: string;
                originalTimestamp: string;
                sentAt: string;
                timestamp: string;
                type: "alias";
                userId?: string;
            }
            | {
                channel: "mobile"
                | "server"
                | "web";
                componentId: string;
                componentType: "Entry" | "Variable";
                componentViewId: string;
                context: {
                    app?: { name: string; version: string };
                    campaign: {
                        content?: string;
                        medium?: string;
                        name?: string;
                        source?: string;
                        term?: string;
                    };
                    gdpr: { isConsentGiven: boolean };
                    library: { name: string; version: string };
                    locale: string;
                    location?: {
                        city?: string;
                        continent?: string;
                        coordinates?: { latitude: number; longitude: number };
                        country?: string;
                        countryCode?: string;
                        postalCode?: string;
                        region?: string;
                        regionCode?: string;
                        timezone?: string;
                    };
                    page?: {
                        path: string;
                        query: Record<string, string>;
                        referrer: string;
                        search: string;
                        title?: string;
                        url: string;
                        [key: string]: JSONType;
                    };
                    screen?: { name: string; [key: string]: JSONType };
                    userAgent?: string;
                };
                experienceId?: string;
                messageId: string;
                originalTimestamp: string;
                sentAt: string;
                timestamp: string;
                type: "component";
                userId?: string;
                variantIndex: number;
                viewDurationMs: number;
            }
            | {
                channel: "mobile"
                | "server"
                | "web";
                context: {
                    app?: { name: string; version: string };
                    campaign: {
                        content?: string;
                        medium?: string;
                        name?: string;
                        source?: string;
                        term?: string;
                    };
                    gdpr: { isConsentGiven: boolean };
                    library: { name: string; version: string };
                    locale: string;
                    location?: {
                        city?: string;
                        continent?: string;
                        coordinates?: { latitude: number; longitude: number };
                        country?: string;
                        countryCode?: string;
                        postalCode?: string;
                        region?: string;
                        regionCode?: string;
                        timezone?: string;
                    };
                    page?: {
                        path: string;
                        query: Record<string, string>;
                        referrer: string;
                        search: string;
                        title?: string;
                        url: string;
                        [key: string]: JSONType;
                    };
                    screen?: { name: string; [key: string]: JSONType };
                    userAgent?: string;
                };
                messageId: string;
                originalTimestamp: string;
                sentAt: string;
                timestamp: string;
                type: "group";
                userId?: string;
            }
            | {
                channel: "mobile"
                | "server"
                | "web";
                context: {
                    app?: { name: string; version: string };
                    campaign: {
                        content?: string;
                        medium?: string;
                        name?: string;
                        source?: string;
                        term?: string;
                    };
                    gdpr: { isConsentGiven: boolean };
                    library: { name: string; version: string };
                    locale: string;
                    location?: {
                        city?: string;
                        continent?: string;
                        coordinates?: { latitude: number; longitude: number };
                        country?: string;
                        countryCode?: string;
                        postalCode?: string;
                        region?: string;
                        regionCode?: string;
                        timezone?: string;
                    };
                    page?: {
                        path: string;
                        query: Record<string, string>;
                        referrer: string;
                        search: string;
                        title?: string;
                        url: string;
                        [key: string]: JSONType;
                    };
                    screen?: { name: string; [key: string]: JSONType };
                    userAgent?: string;
                };
                messageId: string;
                originalTimestamp: string;
                sentAt: string;
                timestamp: string;
                traits: Record<string, JSONType>;
                type: "identify";
                userId?: string;
            }
            | {
                channel: "mobile"
                | "server"
                | "web";
                context: {
                    app?: { name: string; version: string };
                    campaign: {
                        content?: string;
                        medium?: string;
                        name?: string;
                        source?: string;
                        term?: string;
                    };
                    gdpr: { isConsentGiven: boolean };
                    library: { name: string; version: string };
                    locale: string;
                    location?: {
                        city?: string;
                        continent?: string;
                        coordinates?: { latitude: number; longitude: number };
                        country?: string;
                        countryCode?: string;
                        postalCode?: string;
                        region?: string;
                        regionCode?: string;
                        timezone?: string;
                    };
                    page: {
                        path: string;
                        query: Record<string, string>;
                        referrer: string;
                        search: string;
                        title?: string;
                        url: string;
                        [key: string]: JSONType;
                    };
                    userAgent?: string;
                };
                messageId: string;
                name?: string;
                originalTimestamp: string;
                properties: {
                    path: string;
                    query: Record<string, string>;
                    referrer: string;
                    search: string;
                    title?: string;
                    url: string;
                    [key: string]: JSONType;
                };
                sentAt: string;
                timestamp: string;
                type: "page";
                userId?: string;
            }
            | {
                channel: "mobile"
                | "server"
                | "web";
                context: {
                    app?: { name: string; version: string };
                    campaign: {
                        content?: string;
                        medium?: string;
                        name?: string;
                        source?: string;
                        term?: string;
                    };
                    gdpr: { isConsentGiven: boolean };
                    library: { name: string; version: string };
                    locale: string;
                    location?: {
                        city?: string;
                        continent?: string;
                        coordinates?: { latitude: number; longitude: number };
                        country?: string;
                        countryCode?: string;
                        postalCode?: string;
                        region?: string;
                        regionCode?: string;
                        timezone?: string;
                    };
                    screen: { name: string; [key: string]: JSONType };
                    userAgent?: string;
                };
                messageId: string;
                name: string;
                originalTimestamp: string;
                properties?: Record<string, JSONType>;
                sentAt: string;
                timestamp: string;
                type: "screen";
                userId?: string;
            }
            | {
                channel: "mobile"
                | "server"
                | "web";
                context: {
                    app?: { name: string; version: string };
                    campaign: {
                        content?: string;
                        medium?: string;
                        name?: string;
                        source?: string;
                        term?: string;
                    };
                    gdpr: { isConsentGiven: boolean };
                    library: { name: string; version: string };
                    locale: string;
                    location?: {
                        city?: string;
                        continent?: string;
                        coordinates?: { latitude: number; longitude: number };
                        country?: string;
                        countryCode?: string;
                        postalCode?: string;
                        region?: string;
                        regionCode?: string;
                        timezone?: string;
                    };
                    page?: {
                        path: string;
                        query: Record<string, string>;
                        referrer: string;
                        search: string;
                        title?: string;
                        url: string;
                        [key: string]: JSONType;
                    };
                    screen?: { name: string; [key: string]: JSONType };
                    userAgent?: string;
                };
                event: string;
                messageId: string;
                originalTimestamp: string;
                properties: Record<string, JSONType>;
                sentAt: string;
                timestamp: string;
                type: "track";
                userId?: string;
            }
        )[];
        maxEvents: number;
        queuedEvents: number;
    }
    Index

    Properties

    droppedCount: number

    Number of dropped events.

    droppedEvents: (
        | {
            channel: "mobile"
            | "server"
            | "web";
            context: {
                app?: { name: string; version: string };
                campaign: {
                    content?: string;
                    medium?: string;
                    name?: string;
                    source?: string;
                    term?: string;
                };
                gdpr: { isConsentGiven: boolean };
                library: { name: string; version: string };
                locale: string;
                location?: {
                    city?: string;
                    continent?: string;
                    coordinates?: { latitude: number; longitude: number };
                    country?: string;
                    countryCode?: string;
                    postalCode?: string;
                    region?: string;
                    regionCode?: string;
                    timezone?: string;
                };
                page?: {
                    path: string;
                    query: Record<string, string>;
                    referrer: string;
                    search: string;
                    title?: string;
                    url: string;
                    [key: string]: JSONType;
                };
                screen?: { name: string; [key: string]: JSONType };
                userAgent?: string;
            };
            messageId: string;
            originalTimestamp: string;
            sentAt: string;
            timestamp: string;
            type: "alias";
            userId?: string;
        }
        | {
            channel: "mobile"
            | "server"
            | "web";
            componentId: string;
            componentType: "Entry" | "Variable";
            componentViewId: string;
            context: {
                app?: { name: string; version: string };
                campaign: {
                    content?: string;
                    medium?: string;
                    name?: string;
                    source?: string;
                    term?: string;
                };
                gdpr: { isConsentGiven: boolean };
                library: { name: string; version: string };
                locale: string;
                location?: {
                    city?: string;
                    continent?: string;
                    coordinates?: { latitude: number; longitude: number };
                    country?: string;
                    countryCode?: string;
                    postalCode?: string;
                    region?: string;
                    regionCode?: string;
                    timezone?: string;
                };
                page?: {
                    path: string;
                    query: Record<string, string>;
                    referrer: string;
                    search: string;
                    title?: string;
                    url: string;
                    [key: string]: JSONType;
                };
                screen?: { name: string; [key: string]: JSONType };
                userAgent?: string;
            };
            experienceId?: string;
            messageId: string;
            originalTimestamp: string;
            sentAt: string;
            timestamp: string;
            type: "component";
            userId?: string;
            variantIndex: number;
            viewDurationMs: number;
        }
        | {
            channel: "mobile"
            | "server"
            | "web";
            context: {
                app?: { name: string; version: string };
                campaign: {
                    content?: string;
                    medium?: string;
                    name?: string;
                    source?: string;
                    term?: string;
                };
                gdpr: { isConsentGiven: boolean };
                library: { name: string; version: string };
                locale: string;
                location?: {
                    city?: string;
                    continent?: string;
                    coordinates?: { latitude: number; longitude: number };
                    country?: string;
                    countryCode?: string;
                    postalCode?: string;
                    region?: string;
                    regionCode?: string;
                    timezone?: string;
                };
                page?: {
                    path: string;
                    query: Record<string, string>;
                    referrer: string;
                    search: string;
                    title?: string;
                    url: string;
                    [key: string]: JSONType;
                };
                screen?: { name: string; [key: string]: JSONType };
                userAgent?: string;
            };
            messageId: string;
            originalTimestamp: string;
            sentAt: string;
            timestamp: string;
            type: "group";
            userId?: string;
        }
        | {
            channel: "mobile"
            | "server"
            | "web";
            context: {
                app?: { name: string; version: string };
                campaign: {
                    content?: string;
                    medium?: string;
                    name?: string;
                    source?: string;
                    term?: string;
                };
                gdpr: { isConsentGiven: boolean };
                library: { name: string; version: string };
                locale: string;
                location?: {
                    city?: string;
                    continent?: string;
                    coordinates?: { latitude: number; longitude: number };
                    country?: string;
                    countryCode?: string;
                    postalCode?: string;
                    region?: string;
                    regionCode?: string;
                    timezone?: string;
                };
                page?: {
                    path: string;
                    query: Record<string, string>;
                    referrer: string;
                    search: string;
                    title?: string;
                    url: string;
                    [key: string]: JSONType;
                };
                screen?: { name: string; [key: string]: JSONType };
                userAgent?: string;
            };
            messageId: string;
            originalTimestamp: string;
            sentAt: string;
            timestamp: string;
            traits: Record<string, JSONType>;
            type: "identify";
            userId?: string;
        }
        | {
            channel: "mobile"
            | "server"
            | "web";
            context: {
                app?: { name: string; version: string };
                campaign: {
                    content?: string;
                    medium?: string;
                    name?: string;
                    source?: string;
                    term?: string;
                };
                gdpr: { isConsentGiven: boolean };
                library: { name: string; version: string };
                locale: string;
                location?: {
                    city?: string;
                    continent?: string;
                    coordinates?: { latitude: number; longitude: number };
                    country?: string;
                    countryCode?: string;
                    postalCode?: string;
                    region?: string;
                    regionCode?: string;
                    timezone?: string;
                };
                page: {
                    path: string;
                    query: Record<string, string>;
                    referrer: string;
                    search: string;
                    title?: string;
                    url: string;
                    [key: string]: JSONType;
                };
                userAgent?: string;
            };
            messageId: string;
            name?: string;
            originalTimestamp: string;
            properties: {
                path: string;
                query: Record<string, string>;
                referrer: string;
                search: string;
                title?: string;
                url: string;
                [key: string]: JSONType;
            };
            sentAt: string;
            timestamp: string;
            type: "page";
            userId?: string;
        }
        | {
            channel: "mobile"
            | "server"
            | "web";
            context: {
                app?: { name: string; version: string };
                campaign: {
                    content?: string;
                    medium?: string;
                    name?: string;
                    source?: string;
                    term?: string;
                };
                gdpr: { isConsentGiven: boolean };
                library: { name: string; version: string };
                locale: string;
                location?: {
                    city?: string;
                    continent?: string;
                    coordinates?: { latitude: number; longitude: number };
                    country?: string;
                    countryCode?: string;
                    postalCode?: string;
                    region?: string;
                    regionCode?: string;
                    timezone?: string;
                };
                screen: { name: string; [key: string]: JSONType };
                userAgent?: string;
            };
            messageId: string;
            name: string;
            originalTimestamp: string;
            properties?: Record<string, JSONType>;
            sentAt: string;
            timestamp: string;
            type: "screen";
            userId?: string;
        }
        | {
            channel: "mobile"
            | "server"
            | "web";
            context: {
                app?: { name: string; version: string };
                campaign: {
                    content?: string;
                    medium?: string;
                    name?: string;
                    source?: string;
                    term?: string;
                };
                gdpr: { isConsentGiven: boolean };
                library: { name: string; version: string };
                locale: string;
                location?: {
                    city?: string;
                    continent?: string;
                    coordinates?: { latitude: number; longitude: number };
                    country?: string;
                    countryCode?: string;
                    postalCode?: string;
                    region?: string;
                    regionCode?: string;
                    timezone?: string;
                };
                page?: {
                    path: string;
                    query: Record<string, string>;
                    referrer: string;
                    search: string;
                    title?: string;
                    url: string;
                    [key: string]: JSONType;
                };
                screen?: { name: string; [key: string]: JSONType };
                userAgent?: string;
            };
            event: string;
            messageId: string;
            originalTimestamp: string;
            properties: Record<string, JSONType>;
            sentAt: string;
            timestamp: string;
            type: "track";
            userId?: string;
        }
    )[]

    Dropped events in oldest-first order.

    Type Declaration

    • {
          channel: "mobile" | "server" | "web";
          context: {
              app?: { name: string; version: string };
              campaign: {
                  content?: string;
                  medium?: string;
                  name?: string;
                  source?: string;
                  term?: string;
              };
              gdpr: { isConsentGiven: boolean };
              library: { name: string; version: string };
              locale: string;
              location?: {
                  city?: string;
                  continent?: string;
                  coordinates?: { latitude: number; longitude: number };
                  country?: string;
                  countryCode?: string;
                  postalCode?: string;
                  region?: string;
                  regionCode?: string;
                  timezone?: string;
              };
              page?: {
                  path: string;
                  query: Record<string, string>;
                  referrer: string;
                  search: string;
                  title?: string;
                  url: string;
                  [key: string]: JSONType;
              };
              screen?: { name: string; [key: string]: JSONType };
              userAgent?: string;
          };
          messageId: string;
          originalTimestamp: string;
          sentAt: string;
          timestamp: string;
          type: "alias";
          userId?: string;
      }
      • channel: "mobile" | "server" | "web"

        Channel from which the event originated.

      • context: {
            app?: { name: string; version: string };
            campaign: {
                content?: string;
                medium?: string;
                name?: string;
                source?: string;
                term?: string;
            };
            gdpr: { isConsentGiven: boolean };
            library: { name: string; version: string };
            locale: string;
            location?: {
                city?: string;
                continent?: string;
                coordinates?: { latitude: number; longitude: number };
                country?: string;
                countryCode?: string;
                postalCode?: string;
                region?: string;
                regionCode?: string;
                timezone?: string;
            };
            page?: {
                path: string;
                query: Record<string, string>;
                referrer: string;
                search: string;
                title?: string;
                url: string;
                [key: string]: JSONType;
            };
            screen?: { name: string; [key: string]: JSONType };
            userAgent?: string;
        }

        Context object carrying environment and client metadata.

        • Optionalapp?: { name: string; version: string }

          Application-level metadata.

          • name: string

            Name of the application.

          • version: string

            Version of the application.

        • campaign: {
              content?: string;
              medium?: string;
              name?: string;
              source?: string;
              term?: string;
          }

          Campaign attribution metadata.

          • Optionalcontent?: string

            Campaign content (e.g., utm_content).

          • Optionalmedium?: string

            Campaign medium (e.g., utm_medium).

          • Optionalname?: string

            Name of the campaign (e.g., utm_campaign).

          • Optionalsource?: string

            Campaign source (e.g., utm_source).

          • Optionalterm?: string

            Campaign term (e.g., utm_term).

        • gdpr: { isConsentGiven: boolean }

          GDPR-related consent information.

          • isConsentGiven: boolean

            Indicates whether the user has given consent.

        • library: { name: string; version: string }

          Analytics library metadata.

          • name: string

            Name of the SDK/library (e.g., "@contentful/optimization-web").

          • version: string

            Version of the analytics library.

        • locale: string

          Locale identifier of the event (e.g., "en-US").

        • Optionallocation?: {
              city?: string;
              continent?: string;
              coordinates?: { latitude: number; longitude: number };
              country?: string;
              countryCode?: string;
              postalCode?: string;
              region?: string;
              regionCode?: string;
              timezone?: string;
          }

          Optional geo-location information associated with the event.

          • Optionalcity?: string

            City name associated with the location.

          • Optionalcontinent?: string

            Continent name associated with the location.

          • Optionalcoordinates?: { latitude: number; longitude: number }

            Geographical coordinates for the location.

            • latitude: number

              Latitude component of the coordinates.

            • longitude: number

              Longitude component of the coordinates.

          • Optionalcountry?: string

            Country name associated with the location.

          • OptionalcountryCode?: string

            Country code associated with the location.

            Validated to exactly COUNTRY_CODE_LENGTH characters, typically an ISO 3166-1 alpha-2 code.

          • OptionalpostalCode?: string

            Postal or ZIP code associated with the location.

          • Optionalregion?: string

            Region or state name associated with the location.

          • OptionalregionCode?: string

            Region or state code associated with the location.

          • Optionaltimezone?: string

            Time zone identifier associated with the location.

            Typically an IANA time zone string (e.g., "Europe/Berlin").

        • Optionalpage?: {
              path: string;
              query: Record<string, string>;
              referrer: string;
              search: string;
              title?: string;
              url: string;
              [key: string]: JSONType;
          }
          • path: string

            Path component of the page URL (e.g., /products/123).

          • query: Record<string, string>

            Parsed query parameters for the page.

          • referrer: string

            Referrer URL that led to the current page.

          • search: string

            Raw search string including the leading ? (e.g., "?q=test").

          • Optionaltitle?: string

            Title of the page as seen by the user.

          • url: string

            Full URL of the page.

        • Optionalscreen?: { name: string; [key: string]: JSONType }
          • name: string

            Name or label for the screen.

        • OptionaluserAgent?: string

          User agent string of the client, if available.

      • messageId: string

        Unique identifier for this message.

        Used to deduplicate events across retries and transports.

      • originalTimestamp: string

        Timestamp when the event originally occurred.

        ISO 8601 datetime string.

      • sentAt: string

        Timestamp when the event payload was sent.

        ISO 8601 datetime string.

      • timestamp: string

        Timestamp when the event was recorded or processed.

        ISO 8601 datetime string.

      • type: "alias"

        Discriminator indicating that this event is an alias event.

      • OptionaluserId?: string

        Identifier of the authenticated user, if known.

    • {
          channel: "mobile" | "server" | "web";
          componentId: string;
          componentType: "Entry" | "Variable";
          componentViewId: string;
          context: {
              app?: { name: string; version: string };
              campaign: {
                  content?: string;
                  medium?: string;
                  name?: string;
                  source?: string;
                  term?: string;
              };
              gdpr: { isConsentGiven: boolean };
              library: { name: string; version: string };
              locale: string;
              location?: {
                  city?: string;
                  continent?: string;
                  coordinates?: { latitude: number; longitude: number };
                  country?: string;
                  countryCode?: string;
                  postalCode?: string;
                  region?: string;
                  regionCode?: string;
                  timezone?: string;
              };
              page?: {
                  path: string;
                  query: Record<string, string>;
                  referrer: string;
                  search: string;
                  title?: string;
                  url: string;
                  [key: string]: JSONType;
              };
              screen?: { name: string; [key: string]: JSONType };
              userAgent?: string;
          };
          experienceId?: string;
          messageId: string;
          originalTimestamp: string;
          sentAt: string;
          timestamp: string;
          type: "component";
          userId?: string;
          variantIndex: number;
          viewDurationMs: number;
      }
      • channel: "mobile" | "server" | "web"

        Channel from which the event originated.

      • componentId: string

        Contentful entry ID corresponding to the interacted component.

      • componentType: "Entry" | "Variable"

        Type of component for the interaction event.

        • 'Entry' — A content entry component.
        • 'Variable' — A variable or inline value component.
      • componentViewId: string

        UUID identifying a single active component view session.

        Multiple events emitted for the same active view share this identifier.

      • context: {
            app?: { name: string; version: string };
            campaign: {
                content?: string;
                medium?: string;
                name?: string;
                source?: string;
                term?: string;
            };
            gdpr: { isConsentGiven: boolean };
            library: { name: string; version: string };
            locale: string;
            location?: {
                city?: string;
                continent?: string;
                coordinates?: { latitude: number; longitude: number };
                country?: string;
                countryCode?: string;
                postalCode?: string;
                region?: string;
                regionCode?: string;
                timezone?: string;
            };
            page?: {
                path: string;
                query: Record<string, string>;
                referrer: string;
                search: string;
                title?: string;
                url: string;
                [key: string]: JSONType;
            };
            screen?: { name: string; [key: string]: JSONType };
            userAgent?: string;
        }

        Context object carrying environment and client metadata.

        • Optionalapp?: { name: string; version: string }

          Application-level metadata.

          • name: string

            Name of the application.

          • version: string

            Version of the application.

        • campaign: {
              content?: string;
              medium?: string;
              name?: string;
              source?: string;
              term?: string;
          }

          Campaign attribution metadata.

          • Optionalcontent?: string

            Campaign content (e.g., utm_content).

          • Optionalmedium?: string

            Campaign medium (e.g., utm_medium).

          • Optionalname?: string

            Name of the campaign (e.g., utm_campaign).

          • Optionalsource?: string

            Campaign source (e.g., utm_source).

          • Optionalterm?: string

            Campaign term (e.g., utm_term).

        • gdpr: { isConsentGiven: boolean }

          GDPR-related consent information.

          • isConsentGiven: boolean

            Indicates whether the user has given consent.

        • library: { name: string; version: string }

          Analytics library metadata.

          • name: string

            Name of the SDK/library (e.g., "@contentful/optimization-web").

          • version: string

            Version of the analytics library.

        • locale: string

          Locale identifier of the event (e.g., "en-US").

        • Optionallocation?: {
              city?: string;
              continent?: string;
              coordinates?: { latitude: number; longitude: number };
              country?: string;
              countryCode?: string;
              postalCode?: string;
              region?: string;
              regionCode?: string;
              timezone?: string;
          }

          Optional geo-location information associated with the event.

          • Optionalcity?: string

            City name associated with the location.

          • Optionalcontinent?: string

            Continent name associated with the location.

          • Optionalcoordinates?: { latitude: number; longitude: number }

            Geographical coordinates for the location.

            • latitude: number

              Latitude component of the coordinates.

            • longitude: number

              Longitude component of the coordinates.

          • Optionalcountry?: string

            Country name associated with the location.

          • OptionalcountryCode?: string

            Country code associated with the location.

            Validated to exactly COUNTRY_CODE_LENGTH characters, typically an ISO 3166-1 alpha-2 code.

          • OptionalpostalCode?: string

            Postal or ZIP code associated with the location.

          • Optionalregion?: string

            Region or state name associated with the location.

          • OptionalregionCode?: string

            Region or state code associated with the location.

          • Optionaltimezone?: string

            Time zone identifier associated with the location.

            Typically an IANA time zone string (e.g., "Europe/Berlin").

        • Optionalpage?: {
              path: string;
              query: Record<string, string>;
              referrer: string;
              search: string;
              title?: string;
              url: string;
              [key: string]: JSONType;
          }
          • path: string

            Path component of the page URL (e.g., /products/123).

          • query: Record<string, string>

            Parsed query parameters for the page.

          • referrer: string

            Referrer URL that led to the current page.

          • search: string

            Raw search string including the leading ? (e.g., "?q=test").

          • Optionaltitle?: string

            Title of the page as seen by the user.

          • url: string

            Full URL of the page.

        • Optionalscreen?: { name: string; [key: string]: JSONType }
          • name: string

            Name or label for the screen.

        • OptionaluserAgent?: string

          User agent string of the client, if available.

      • OptionalexperienceId?: string

        Identifier of the experience that rendered this component.

        Optional; interactions may occur outside of a specific experience/personalization.

      • messageId: string

        Unique identifier for this message.

        Used to deduplicate events across retries and transports.

      • originalTimestamp: string

        Timestamp when the event originally occurred.

        ISO 8601 datetime string.

      • sentAt: string

        Timestamp when the event payload was sent.

        ISO 8601 datetime string.

      • timestamp: string

        Timestamp when the event was recorded or processed.

        ISO 8601 datetime string.

      • type: "component"

        Discriminator indicating that this event is a component view.

      • OptionaluserId?: string

        Identifier of the authenticated user, if known.

      • variantIndex: number

        Index of the variant associated with this interaction.

        Typically corresponds to the index of the selected personalization entry.

      • viewDurationMs: number

        Monotonically increasing visible duration for the active component view.

        This value is updated and re-emitted while the same view remains active.

    • {
          channel: "mobile" | "server" | "web";
          context: {
              app?: { name: string; version: string };
              campaign: {
                  content?: string;
                  medium?: string;
                  name?: string;
                  source?: string;
                  term?: string;
              };
              gdpr: { isConsentGiven: boolean };
              library: { name: string; version: string };
              locale: string;
              location?: {
                  city?: string;
                  continent?: string;
                  coordinates?: { latitude: number; longitude: number };
                  country?: string;
                  countryCode?: string;
                  postalCode?: string;
                  region?: string;
                  regionCode?: string;
                  timezone?: string;
              };
              page?: {
                  path: string;
                  query: Record<string, string>;
                  referrer: string;
                  search: string;
                  title?: string;
                  url: string;
                  [key: string]: JSONType;
              };
              screen?: { name: string; [key: string]: JSONType };
              userAgent?: string;
          };
          messageId: string;
          originalTimestamp: string;
          sentAt: string;
          timestamp: string;
          type: "group";
          userId?: string;
      }
      • channel: "mobile" | "server" | "web"

        Channel from which the event originated.

      • context: {
            app?: { name: string; version: string };
            campaign: {
                content?: string;
                medium?: string;
                name?: string;
                source?: string;
                term?: string;
            };
            gdpr: { isConsentGiven: boolean };
            library: { name: string; version: string };
            locale: string;
            location?: {
                city?: string;
                continent?: string;
                coordinates?: { latitude: number; longitude: number };
                country?: string;
                countryCode?: string;
                postalCode?: string;
                region?: string;
                regionCode?: string;
                timezone?: string;
            };
            page?: {
                path: string;
                query: Record<string, string>;
                referrer: string;
                search: string;
                title?: string;
                url: string;
                [key: string]: JSONType;
            };
            screen?: { name: string; [key: string]: JSONType };
            userAgent?: string;
        }

        Context object carrying environment and client metadata.

        • Optionalapp?: { name: string; version: string }

          Application-level metadata.

          • name: string

            Name of the application.

          • version: string

            Version of the application.

        • campaign: {
              content?: string;
              medium?: string;
              name?: string;
              source?: string;
              term?: string;
          }

          Campaign attribution metadata.

          • Optionalcontent?: string

            Campaign content (e.g., utm_content).

          • Optionalmedium?: string

            Campaign medium (e.g., utm_medium).

          • Optionalname?: string

            Name of the campaign (e.g., utm_campaign).

          • Optionalsource?: string

            Campaign source (e.g., utm_source).

          • Optionalterm?: string

            Campaign term (e.g., utm_term).

        • gdpr: { isConsentGiven: boolean }

          GDPR-related consent information.

          • isConsentGiven: boolean

            Indicates whether the user has given consent.

        • library: { name: string; version: string }

          Analytics library metadata.

          • name: string

            Name of the SDK/library (e.g., "@contentful/optimization-web").

          • version: string

            Version of the analytics library.

        • locale: string

          Locale identifier of the event (e.g., "en-US").

        • Optionallocation?: {
              city?: string;
              continent?: string;
              coordinates?: { latitude: number; longitude: number };
              country?: string;
              countryCode?: string;
              postalCode?: string;
              region?: string;
              regionCode?: string;
              timezone?: string;
          }

          Optional geo-location information associated with the event.

          • Optionalcity?: string

            City name associated with the location.

          • Optionalcontinent?: string

            Continent name associated with the location.

          • Optionalcoordinates?: { latitude: number; longitude: number }

            Geographical coordinates for the location.

            • latitude: number

              Latitude component of the coordinates.

            • longitude: number

              Longitude component of the coordinates.

          • Optionalcountry?: string

            Country name associated with the location.

          • OptionalcountryCode?: string

            Country code associated with the location.

            Validated to exactly COUNTRY_CODE_LENGTH characters, typically an ISO 3166-1 alpha-2 code.

          • OptionalpostalCode?: string

            Postal or ZIP code associated with the location.

          • Optionalregion?: string

            Region or state name associated with the location.

          • OptionalregionCode?: string

            Region or state code associated with the location.

          • Optionaltimezone?: string

            Time zone identifier associated with the location.

            Typically an IANA time zone string (e.g., "Europe/Berlin").

        • Optionalpage?: {
              path: string;
              query: Record<string, string>;
              referrer: string;
              search: string;
              title?: string;
              url: string;
              [key: string]: JSONType;
          }
          • path: string

            Path component of the page URL (e.g., /products/123).

          • query: Record<string, string>

            Parsed query parameters for the page.

          • referrer: string

            Referrer URL that led to the current page.

          • search: string

            Raw search string including the leading ? (e.g., "?q=test").

          • Optionaltitle?: string

            Title of the page as seen by the user.

          • url: string

            Full URL of the page.

        • Optionalscreen?: { name: string; [key: string]: JSONType }
          • name: string

            Name or label for the screen.

        • OptionaluserAgent?: string

          User agent string of the client, if available.

      • messageId: string

        Unique identifier for this message.

        Used to deduplicate events across retries and transports.

      • originalTimestamp: string

        Timestamp when the event originally occurred.

        ISO 8601 datetime string.

      • sentAt: string

        Timestamp when the event payload was sent.

        ISO 8601 datetime string.

      • timestamp: string

        Timestamp when the event was recorded or processed.

        ISO 8601 datetime string.

      • type: "group"

        Discriminator indicating that this event is a group event.

      • OptionaluserId?: string

        Identifier of the authenticated user, if known.

    • {
          channel: "mobile" | "server" | "web";
          context: {
              app?: { name: string; version: string };
              campaign: {
                  content?: string;
                  medium?: string;
                  name?: string;
                  source?: string;
                  term?: string;
              };
              gdpr: { isConsentGiven: boolean };
              library: { name: string; version: string };
              locale: string;
              location?: {
                  city?: string;
                  continent?: string;
                  coordinates?: { latitude: number; longitude: number };
                  country?: string;
                  countryCode?: string;
                  postalCode?: string;
                  region?: string;
                  regionCode?: string;
                  timezone?: string;
              };
              page?: {
                  path: string;
                  query: Record<string, string>;
                  referrer: string;
                  search: string;
                  title?: string;
                  url: string;
                  [key: string]: JSONType;
              };
              screen?: { name: string; [key: string]: JSONType };
              userAgent?: string;
          };
          messageId: string;
          originalTimestamp: string;
          sentAt: string;
          timestamp: string;
          traits: Record<string, JSONType>;
          type: "identify";
          userId?: string;
      }
      • channel: "mobile" | "server" | "web"

        Channel from which the event originated.

      • context: {
            app?: { name: string; version: string };
            campaign: {
                content?: string;
                medium?: string;
                name?: string;
                source?: string;
                term?: string;
            };
            gdpr: { isConsentGiven: boolean };
            library: { name: string; version: string };
            locale: string;
            location?: {
                city?: string;
                continent?: string;
                coordinates?: { latitude: number; longitude: number };
                country?: string;
                countryCode?: string;
                postalCode?: string;
                region?: string;
                regionCode?: string;
                timezone?: string;
            };
            page?: {
                path: string;
                query: Record<string, string>;
                referrer: string;
                search: string;
                title?: string;
                url: string;
                [key: string]: JSONType;
            };
            screen?: { name: string; [key: string]: JSONType };
            userAgent?: string;
        }

        Context object carrying environment and client metadata.

        • Optionalapp?: { name: string; version: string }

          Application-level metadata.

          • name: string

            Name of the application.

          • version: string

            Version of the application.

        • campaign: {
              content?: string;
              medium?: string;
              name?: string;
              source?: string;
              term?: string;
          }

          Campaign attribution metadata.

          • Optionalcontent?: string

            Campaign content (e.g., utm_content).

          • Optionalmedium?: string

            Campaign medium (e.g., utm_medium).

          • Optionalname?: string

            Name of the campaign (e.g., utm_campaign).

          • Optionalsource?: string

            Campaign source (e.g., utm_source).

          • Optionalterm?: string

            Campaign term (e.g., utm_term).

        • gdpr: { isConsentGiven: boolean }

          GDPR-related consent information.

          • isConsentGiven: boolean

            Indicates whether the user has given consent.

        • library: { name: string; version: string }

          Analytics library metadata.

          • name: string

            Name of the SDK/library (e.g., "@contentful/optimization-web").

          • version: string

            Version of the analytics library.

        • locale: string

          Locale identifier of the event (e.g., "en-US").

        • Optionallocation?: {
              city?: string;
              continent?: string;
              coordinates?: { latitude: number; longitude: number };
              country?: string;
              countryCode?: string;
              postalCode?: string;
              region?: string;
              regionCode?: string;
              timezone?: string;
          }

          Optional geo-location information associated with the event.

          • Optionalcity?: string

            City name associated with the location.

          • Optionalcontinent?: string

            Continent name associated with the location.

          • Optionalcoordinates?: { latitude: number; longitude: number }

            Geographical coordinates for the location.

            • latitude: number

              Latitude component of the coordinates.

            • longitude: number

              Longitude component of the coordinates.

          • Optionalcountry?: string

            Country name associated with the location.

          • OptionalcountryCode?: string

            Country code associated with the location.

            Validated to exactly COUNTRY_CODE_LENGTH characters, typically an ISO 3166-1 alpha-2 code.

          • OptionalpostalCode?: string

            Postal or ZIP code associated with the location.

          • Optionalregion?: string

            Region or state name associated with the location.

          • OptionalregionCode?: string

            Region or state code associated with the location.

          • Optionaltimezone?: string

            Time zone identifier associated with the location.

            Typically an IANA time zone string (e.g., "Europe/Berlin").

        • Optionalpage?: {
              path: string;
              query: Record<string, string>;
              referrer: string;
              search: string;
              title?: string;
              url: string;
              [key: string]: JSONType;
          }
          • path: string

            Path component of the page URL (e.g., /products/123).

          • query: Record<string, string>

            Parsed query parameters for the page.

          • referrer: string

            Referrer URL that led to the current page.

          • search: string

            Raw search string including the leading ? (e.g., "?q=test").

          • Optionaltitle?: string

            Title of the page as seen by the user.

          • url: string

            Full URL of the page.

        • Optionalscreen?: { name: string; [key: string]: JSONType }
          • name: string

            Name or label for the screen.

        • OptionaluserAgent?: string

          User agent string of the client, if available.

      • messageId: string

        Unique identifier for this message.

        Used to deduplicate events across retries and transports.

      • originalTimestamp: string

        Timestamp when the event originally occurred.

        ISO 8601 datetime string.

      • sentAt: string

        Timestamp when the event payload was sent.

        ISO 8601 datetime string.

      • timestamp: string

        Timestamp when the event was recorded or processed.

        ISO 8601 datetime string.

      • traits: Record<string, JSONType>

        Traits describing the user.

        Traits

      • type: "identify"

        Discriminator indicating that this event is an identify event.

      • OptionaluserId?: string

        Identifier of the authenticated user, if known.

    • {
          channel: "mobile" | "server" | "web";
          context: {
              app?: { name: string; version: string };
              campaign: {
                  content?: string;
                  medium?: string;
                  name?: string;
                  source?: string;
                  term?: string;
              };
              gdpr: { isConsentGiven: boolean };
              library: { name: string; version: string };
              locale: string;
              location?: {
                  city?: string;
                  continent?: string;
                  coordinates?: { latitude: number; longitude: number };
                  country?: string;
                  countryCode?: string;
                  postalCode?: string;
                  region?: string;
                  regionCode?: string;
                  timezone?: string;
              };
              page: {
                  path: string;
                  query: Record<string, string>;
                  referrer: string;
                  search: string;
                  title?: string;
                  url: string;
                  [key: string]: JSONType;
              };
              userAgent?: string;
          };
          messageId: string;
          name?: string;
          originalTimestamp: string;
          properties: {
              path: string;
              query: Record<string, string>;
              referrer: string;
              search: string;
              title?: string;
              url: string;
              [key: string]: JSONType;
          };
          sentAt: string;
          timestamp: string;
          type: "page";
          userId?: string;
      }
      • channel: "mobile" | "server" | "web"

        Channel from which the event originated.

      • context: {
            app?: { name: string; version: string };
            campaign: {
                content?: string;
                medium?: string;
                name?: string;
                source?: string;
                term?: string;
            };
            gdpr: { isConsentGiven: boolean };
            library: { name: string; version: string };
            locale: string;
            location?: {
                city?: string;
                continent?: string;
                coordinates?: { latitude: number; longitude: number };
                country?: string;
                countryCode?: string;
                postalCode?: string;
                region?: string;
                regionCode?: string;
                timezone?: string;
            };
            page: {
                path: string;
                query: Record<string, string>;
                referrer: string;
                search: string;
                title?: string;
                url: string;
                [key: string]: JSONType;
            };
            userAgent?: string;
        }

        Override the context property of UniversalEventProperties with a page-specific context.

        • Optionalapp?: { name: string; version: string }

          Application-level metadata.

          • name: string

            Name of the application.

          • version: string

            Version of the application.

        • campaign: {
              content?: string;
              medium?: string;
              name?: string;
              source?: string;
              term?: string;
          }

          Campaign attribution metadata.

          • Optionalcontent?: string

            Campaign content (e.g., utm_content).

          • Optionalmedium?: string

            Campaign medium (e.g., utm_medium).

          • Optionalname?: string

            Name of the campaign (e.g., utm_campaign).

          • Optionalsource?: string

            Campaign source (e.g., utm_source).

          • Optionalterm?: string

            Campaign term (e.g., utm_term).

        • gdpr: { isConsentGiven: boolean }

          GDPR-related consent information.

          • isConsentGiven: boolean

            Indicates whether the user has given consent.

        • library: { name: string; version: string }

          Analytics library metadata.

          • name: string

            Name of the SDK/library (e.g., "@contentful/optimization-web").

          • version: string

            Version of the analytics library.

        • locale: string

          Locale identifier of the event (e.g., "en-US").

        • Optionallocation?: {
              city?: string;
              continent?: string;
              coordinates?: { latitude: number; longitude: number };
              country?: string;
              countryCode?: string;
              postalCode?: string;
              region?: string;
              regionCode?: string;
              timezone?: string;
          }

          Optional geo-location information associated with the event.

          • Optionalcity?: string

            City name associated with the location.

          • Optionalcontinent?: string

            Continent name associated with the location.

          • Optionalcoordinates?: { latitude: number; longitude: number }

            Geographical coordinates for the location.

            • latitude: number

              Latitude component of the coordinates.

            • longitude: number

              Longitude component of the coordinates.

          • Optionalcountry?: string

            Country name associated with the location.

          • OptionalcountryCode?: string

            Country code associated with the location.

            Validated to exactly COUNTRY_CODE_LENGTH characters, typically an ISO 3166-1 alpha-2 code.

          • OptionalpostalCode?: string

            Postal or ZIP code associated with the location.

          • Optionalregion?: string

            Region or state name associated with the location.

          • OptionalregionCode?: string

            Region or state code associated with the location.

          • Optionaltimezone?: string

            Time zone identifier associated with the location.

            Typically an IANA time zone string (e.g., "Europe/Berlin").

        • page: {
              path: string;
              query: Record<string, string>;
              referrer: string;
              search: string;
              title?: string;
              url: string;
              [key: string]: JSONType;
          }

          Page context for events that occur within a web page.

          • path: string

            Path component of the page URL (e.g., /products/123).

          • query: Record<string, string>

            Parsed query parameters for the page.

          • referrer: string

            Referrer URL that led to the current page.

          • search: string

            Raw search string including the leading ? (e.g., "?q=test").

          • Optionaltitle?: string

            Title of the page as seen by the user.

          • url: string

            Full URL of the page.

        • OptionaluserAgent?: string

          User agent string of the client, if available.

      • messageId: string

        Unique identifier for this message.

        Used to deduplicate events across retries and transports.

      • Optionalname?: string

        Optional name for the page.

        Useful when the logical page name differs from the URL or title.

      • originalTimestamp: string

        Timestamp when the event originally occurred.

        ISO 8601 datetime string.

      • properties: {
            path: string;
            query: Record<string, string>;
            referrer: string;
            search: string;
            title?: string;
            url: string;
            [key: string]: JSONType;
        }

        Page-level properties such as URL, path, and referrer.

        • path: string

          Path component of the page URL (e.g., /products/123).

        • query: Record<string, string>

          Parsed query parameters for the page.

        • referrer: string

          Referrer URL that led to the current page.

        • search: string

          Raw search string including the leading ? (e.g., "?q=test").

        • Optionaltitle?: string

          Title of the page as seen by the user.

        • url: string

          Full URL of the page.

      • sentAt: string

        Timestamp when the event payload was sent.

        ISO 8601 datetime string.

      • timestamp: string

        Timestamp when the event was recorded or processed.

        ISO 8601 datetime string.

      • type: "page"

        Discriminator indicating that this event is a page view.

      • OptionaluserId?: string

        Identifier of the authenticated user, if known.

    • {
          channel: "mobile" | "server" | "web";
          context: {
              app?: { name: string; version: string };
              campaign: {
                  content?: string;
                  medium?: string;
                  name?: string;
                  source?: string;
                  term?: string;
              };
              gdpr: { isConsentGiven: boolean };
              library: { name: string; version: string };
              locale: string;
              location?: {
                  city?: string;
                  continent?: string;
                  coordinates?: { latitude: number; longitude: number };
                  country?: string;
                  countryCode?: string;
                  postalCode?: string;
                  region?: string;
                  regionCode?: string;
                  timezone?: string;
              };
              screen: { name: string; [key: string]: JSONType };
              userAgent?: string;
          };
          messageId: string;
          name: string;
          originalTimestamp: string;
          properties?: Record<string, JSONType>;
          sentAt: string;
          timestamp: string;
          type: "screen";
          userId?: string;
      }
      • channel: "mobile" | "server" | "web"

        Channel from which the event originated.

      • context: {
            app?: { name: string; version: string };
            campaign: {
                content?: string;
                medium?: string;
                name?: string;
                source?: string;
                term?: string;
            };
            gdpr: { isConsentGiven: boolean };
            library: { name: string; version: string };
            locale: string;
            location?: {
                city?: string;
                continent?: string;
                coordinates?: { latitude: number; longitude: number };
                country?: string;
                countryCode?: string;
                postalCode?: string;
                region?: string;
                regionCode?: string;
                timezone?: string;
            };
            screen: { name: string; [key: string]: JSONType };
            userAgent?: string;
        }

        Override the context property of UniversalEventProperties with a screen-specific context.

        • Optionalapp?: { name: string; version: string }

          Application-level metadata.

          • name: string

            Name of the application.

          • version: string

            Version of the application.

        • campaign: {
              content?: string;
              medium?: string;
              name?: string;
              source?: string;
              term?: string;
          }

          Campaign attribution metadata.

          • Optionalcontent?: string

            Campaign content (e.g., utm_content).

          • Optionalmedium?: string

            Campaign medium (e.g., utm_medium).

          • Optionalname?: string

            Name of the campaign (e.g., utm_campaign).

          • Optionalsource?: string

            Campaign source (e.g., utm_source).

          • Optionalterm?: string

            Campaign term (e.g., utm_term).

        • gdpr: { isConsentGiven: boolean }

          GDPR-related consent information.

          • isConsentGiven: boolean

            Indicates whether the user has given consent.

        • library: { name: string; version: string }

          Analytics library metadata.

          • name: string

            Name of the SDK/library (e.g., "@contentful/optimization-web").

          • version: string

            Version of the analytics library.

        • locale: string

          Locale identifier of the event (e.g., "en-US").

        • Optionallocation?: {
              city?: string;
              continent?: string;
              coordinates?: { latitude: number; longitude: number };
              country?: string;
              countryCode?: string;
              postalCode?: string;
              region?: string;
              regionCode?: string;
              timezone?: string;
          }

          Optional geo-location information associated with the event.

          • Optionalcity?: string

            City name associated with the location.

          • Optionalcontinent?: string

            Continent name associated with the location.

          • Optionalcoordinates?: { latitude: number; longitude: number }

            Geographical coordinates for the location.

            • latitude: number

              Latitude component of the coordinates.

            • longitude: number

              Longitude component of the coordinates.

          • Optionalcountry?: string

            Country name associated with the location.

          • OptionalcountryCode?: string

            Country code associated with the location.

            Validated to exactly COUNTRY_CODE_LENGTH characters, typically an ISO 3166-1 alpha-2 code.

          • OptionalpostalCode?: string

            Postal or ZIP code associated with the location.

          • Optionalregion?: string

            Region or state name associated with the location.

          • OptionalregionCode?: string

            Region or state code associated with the location.

          • Optionaltimezone?: string

            Time zone identifier associated with the location.

            Typically an IANA time zone string (e.g., "Europe/Berlin").

        • screen: { name: string; [key: string]: JSONType }

          Screen context for events that occur within a mobile or TV application.

          • name: string

            Name or label for the screen.

        • OptionaluserAgent?: string

          User agent string of the client, if available.

      • messageId: string

        Unique identifier for this message.

        Used to deduplicate events across retries and transports.

      • name: string

        Name of the screen being viewed.

      • originalTimestamp: string

        Timestamp when the event originally occurred.

        ISO 8601 datetime string.

      • Optionalproperties?: Record<string, JSONType>

        Optional properties describing the screen context.

      • sentAt: string

        Timestamp when the event payload was sent.

        ISO 8601 datetime string.

      • timestamp: string

        Timestamp when the event was recorded or processed.

        ISO 8601 datetime string.

      • type: "screen"

        Discriminator indicating that this event is a screen view.

      • OptionaluserId?: string

        Identifier of the authenticated user, if known.

    • {
          channel: "mobile" | "server" | "web";
          context: {
              app?: { name: string; version: string };
              campaign: {
                  content?: string;
                  medium?: string;
                  name?: string;
                  source?: string;
                  term?: string;
              };
              gdpr: { isConsentGiven: boolean };
              library: { name: string; version: string };
              locale: string;
              location?: {
                  city?: string;
                  continent?: string;
                  coordinates?: { latitude: number; longitude: number };
                  country?: string;
                  countryCode?: string;
                  postalCode?: string;
                  region?: string;
                  regionCode?: string;
                  timezone?: string;
              };
              page?: {
                  path: string;
                  query: Record<string, string>;
                  referrer: string;
                  search: string;
                  title?: string;
                  url: string;
                  [key: string]: JSONType;
              };
              screen?: { name: string; [key: string]: JSONType };
              userAgent?: string;
          };
          event: string;
          messageId: string;
          originalTimestamp: string;
          properties: Record<string, JSONType>;
          sentAt: string;
          timestamp: string;
          type: "track";
          userId?: string;
      }
      • channel: "mobile" | "server" | "web"

        Channel from which the event originated.

      • context: {
            app?: { name: string; version: string };
            campaign: {
                content?: string;
                medium?: string;
                name?: string;
                source?: string;
                term?: string;
            };
            gdpr: { isConsentGiven: boolean };
            library: { name: string; version: string };
            locale: string;
            location?: {
                city?: string;
                continent?: string;
                coordinates?: { latitude: number; longitude: number };
                country?: string;
                countryCode?: string;
                postalCode?: string;
                region?: string;
                regionCode?: string;
                timezone?: string;
            };
            page?: {
                path: string;
                query: Record<string, string>;
                referrer: string;
                search: string;
                title?: string;
                url: string;
                [key: string]: JSONType;
            };
            screen?: { name: string; [key: string]: JSONType };
            userAgent?: string;
        }

        Context object carrying environment and client metadata.

        • Optionalapp?: { name: string; version: string }

          Application-level metadata.

          • name: string

            Name of the application.

          • version: string

            Version of the application.

        • campaign: {
              content?: string;
              medium?: string;
              name?: string;
              source?: string;
              term?: string;
          }

          Campaign attribution metadata.

          • Optionalcontent?: string

            Campaign content (e.g., utm_content).

          • Optionalmedium?: string

            Campaign medium (e.g., utm_medium).

          • Optionalname?: string

            Name of the campaign (e.g., utm_campaign).

          • Optionalsource?: string

            Campaign source (e.g., utm_source).

          • Optionalterm?: string

            Campaign term (e.g., utm_term).

        • gdpr: { isConsentGiven: boolean }

          GDPR-related consent information.

          • isConsentGiven: boolean

            Indicates whether the user has given consent.

        • library: { name: string; version: string }

          Analytics library metadata.

          • name: string

            Name of the SDK/library (e.g., "@contentful/optimization-web").

          • version: string

            Version of the analytics library.

        • locale: string

          Locale identifier of the event (e.g., "en-US").

        • Optionallocation?: {
              city?: string;
              continent?: string;
              coordinates?: { latitude: number; longitude: number };
              country?: string;
              countryCode?: string;
              postalCode?: string;
              region?: string;
              regionCode?: string;
              timezone?: string;
          }

          Optional geo-location information associated with the event.

          • Optionalcity?: string

            City name associated with the location.

          • Optionalcontinent?: string

            Continent name associated with the location.

          • Optionalcoordinates?: { latitude: number; longitude: number }

            Geographical coordinates for the location.

            • latitude: number

              Latitude component of the coordinates.

            • longitude: number

              Longitude component of the coordinates.

          • Optionalcountry?: string

            Country name associated with the location.

          • OptionalcountryCode?: string

            Country code associated with the location.

            Validated to exactly COUNTRY_CODE_LENGTH characters, typically an ISO 3166-1 alpha-2 code.

          • OptionalpostalCode?: string

            Postal or ZIP code associated with the location.

          • Optionalregion?: string

            Region or state name associated with the location.

          • OptionalregionCode?: string

            Region or state code associated with the location.

          • Optionaltimezone?: string

            Time zone identifier associated with the location.

            Typically an IANA time zone string (e.g., "Europe/Berlin").

        • Optionalpage?: {
              path: string;
              query: Record<string, string>;
              referrer: string;
              search: string;
              title?: string;
              url: string;
              [key: string]: JSONType;
          }
          • path: string

            Path component of the page URL (e.g., /products/123).

          • query: Record<string, string>

            Parsed query parameters for the page.

          • referrer: string

            Referrer URL that led to the current page.

          • search: string

            Raw search string including the leading ? (e.g., "?q=test").

          • Optionaltitle?: string

            Title of the page as seen by the user.

          • url: string

            Full URL of the page.

        • Optionalscreen?: { name: string; [key: string]: JSONType }
          • name: string

            Name or label for the screen.

        • OptionaluserAgent?: string

          User agent string of the client, if available.

      • event: string

        Name of the event being tracked.

      • messageId: string

        Unique identifier for this message.

        Used to deduplicate events across retries and transports.

      • originalTimestamp: string

        Timestamp when the event originally occurred.

        ISO 8601 datetime string.

      • properties: Record<string, JSONType>

        Additional properties describing the event.

      • sentAt: string

        Timestamp when the event payload was sent.

        ISO 8601 datetime string.

      • timestamp: string

        Timestamp when the event was recorded or processed.

        ISO 8601 datetime string.

      • type: "track"

        Discriminator indicating that this event is a track event.

      • OptionaluserId?: string

        Identifier of the authenticated user, if known.

    maxEvents: number

    Configured queue max size.

    queuedEvents: number

    Queue size after enqueueing the current event.