--- title: "Setting the tracking_consent attribute" slug: "engage-setting-the-tracking-consent-attribute" description: "Learn how to manage email tracking consent, including states like granted, denied, and withdrawn, to ensure compliance and effective communication." updated: 2026-09-24T13:06:23Z published: 2026-09-24T13:06:23Z canonical: "docs.mapp.com/engage-setting-the-tracking-consent-attribute" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.mapp.com/llms.txt > Use this file to discover all available pages before exploring further. # Setting the tracking_consent attribute ## Overview This article explains how to set and manage a contact's email tracking consent in practice. For what the feature does, the four consent states, and how it relates to anonymized tracking, see [Email Tracking Consent](https://docs.mapp.com/docs/engage-email-tracking-consent). Tracking consent is held in the `tracking_consent` profile attribute, with two supporting attributes (`tracking_consent_source` and `tracking_consent_source_id`) for recording where the consent came from. Because these are custom attributes, you set them the same way as any other contact attribute. --- ## The consent value in brief The `tracking_consent` attribute can hold one of four values: `granted`, `denied`, `withdrawn`, or `unknown`. A contact with no value stored — an empty or `null` value — is treated as `unknown`, which means tracking stays on by default. The value is evaluated at send-out, when Engage decides whether open and click tracking are included in the message for that recipient. --- ## Setting the value You can set `tracking_consent` and the source attributes through the same channels as any other contact attribute: - **Contact import** — include `tracking_consent`, and where available `tracking_consent_source` and `tracking_consent_source_id`, as columns in your contact import. - **Contact Update API** — set the attributes through the existing `/contact/update` call. See [Setting a Contact's Tracking Consent](https://docs.mapp.com/apidocs/engage-api-setting-a-contact-s-tracking-consent) for the payload and field details, including which values to store for compliance. To record that a contact has withdrawn consent, set `tracking_consent` to `withdrawn` (or `denied`) through the same channels — there is no separate withdrawal action. --- ## Consent timestamp Whenever a `tracking_consent` update is sent to Engage, the time of that update is recorded automatically. You do not need a separate attribute for this, and no action is required on your side. > [!NOTE] > Note > > This records when the update reached Engage, not when the contact actually gave consent. These can differ — for example, a nightly import records the import time, not the moment of consent. If you need to store the actual moment of consent (for example, as proof that a contact opted in at a specific date and time), record it yourself in a separate custom attribute. Two limitations apply: this attribute is not part of the consent export, and a custom attribute holds only one value, so each new update overwrites the previous timestamp. --- ## Changing the default for the Unknown state By default, contacts with an `unknown` value are still tracked, so existing reporting does not change. If you want `unknown` to be treated as `denied` instead — so that contacts without a stored value are not tracked — this can be configured for your account. This is not self-service: contact your CSM or account manager to request it. There is no UI for it. This setting also decides how contacts without a stored value are treated by the message-level Tracking Type. If `unknown` is treated as `denied`, those contacts are tracked anonymously under **Force Anonymized when denied or withdrawn**, in the same way as contacts who explicitly denied consent. --- ## Tracking Type For messages that have to be tracked differently from what the recipients' consent would allow, a per-message **Tracking Type** setting is available in the message's sendout configuration. When you send to a group, it sits under **Advanced Options**; when you save a prepared message, it sits directly in the configuration step. It offers three options: - **Normal Tracking** is the default. Each recipient's consent applies. - **Force Full Tracking** tracks all recipients with their real contact identifier, regardless of consent. - **Force Anonymized when denied or withdrawn** tracks recipients who granted consent normally. Recipients who denied or withdrew consent are tracked anonymously and count towards aggregate statistics only. > [!WARNING] > Warning > > Tracking Type only takes effect when consent-aware outgoing tracking is active for your account, which is part of the standard Tracking Consent setup described here. If it is not active, consent handling is skipped entirely and messages are tracked with the real contact identifier, whichever option you select. The interface does not warn you about this. Selecting an option that overrides consent is your decision, and you are responsible for having a lawful basis for it. Engage does not ask you to confirm that basis and does not assess it. For the full behaviour of each option and the limits of anonymized tracking, see the Tracking Type section in [Email Tracking Consent](https://docs.mapp.com/docs/engage-email-tracking-consent#tracking-type). --- ## Exporting tracking consent data You can export the stored consent values for auditing or review. Go to **Data Management → Exports** and select the `tracking_consent_export` export. --- ## Related articles - [Email Tracking Consent](https://docs.mapp.com/docs/engage-email-tracking-consent) - [Setting a Contact's Tracking Consent](https://docs.mapp.com/apidocs/engage-api-setting-a-contact-s-tracking-consent) - [Email Tracking – Identifiability Model](https://docs.mapp.com/docs/email-tracking-identifiability-model)