> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://contentful.com/developers/docs/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://contentful.com/_mcp/server. # Insights tracking > Send the right events and conduct performance analysis with precision. To conduct a performance analysis of your Experiments, Personalizations, components and Audiences, any system requires two types of information: 1. **What a visitor is seeing** - Tracking individual components and Experiences that are seen help to identify what can be attributed to your conversions. 2. **Conversions events** - Knowing which visitors converted, including any additional properties of the conversion, make sure that the performance of your Experiences can be measured. At Contentful Personalization, conversions events are part of your regular *track* events. To use Insights, these corresponding events need to be sent to Contentful Personalization. > **Info** > > If you are already sending conversion events to a different analytics software such as Google Analytics, we recommend using the same setup, triggers and events for Contentful Personalization. ## Send view events The Insights Plugin automatically sends events when any element wrapped in an SDK `` component has been present within the user's viewport for a specified amount of time. This covers the majority of personalization and experiment implementations. To track the visibility of Experiences not implemented using the SDK's `` component, you should use the `observeElement` method available on the instance to register a custom element for tracking. > **Info** > > Delivering Experiences requires a developer to implement code. For more information about our integrations and SDKs, see the [Experience SDK](/personalization/experience-sdk) page. ## Send conversion events Conversion events can be sent to Contentful Personalization just like any other event, using the `track` method. These events can be sent in a number of ways. ### **Track events via Google Tag Manager** The easiest way to send conversion events is by sending `track` events from an existing tag manager. If you're using Google Tag Manager, we recommend leveraging the [Contentful Personalization Google Tag Manager template](https://tagmanager.google.com/gallery/#/owners/ninetailed-inc/templates/gtm-ninetailed-template) to quickly create a tag to call `track` with your existing Google Tag Manager triggers. ![Ninetailed Personalized content types](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/contentful.docs.buildwithfern.com/1382e6cb90555e44fa165143b9962d88d970e11bb35459e38223ec8dd9352f90/docs/assets/images/tracking-insights.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260929%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260929T234815Z&X-Amz-Expires=604800&X-Amz-Signature=a285c4f4e8da39e0d88345e6b1b8cda06e0ff6759f7f7d131fae68bc44b1ba09&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject) This tag configuration would call: ```javascript ninetailed.track('TRACK_EVENT_NAME', {TRACK_PROPERTY: 'TRACK_PROPERTY_VALUE'}) ``` each time YOUR\_TRIGGER fires. Your event name and property keys & values can use data layer variables for dynamic population. ### **Track events via the SDK or API** Developers can send conversion events via our SDKs or API. For more information, see the [Send events](/personalization/experience-sdk#send-events) section and [Experience API](/personalization/experience-api) section. ### **Track events via Customer Data integrations** If you are using other customer data tools such as Segment, you can also send conversion events to Contentful Personalization via our [data connectors](https://www.contentful.com/help/personalization/data-connectors/). > Send the right events and conduct performance analysis with precision.