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.
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 availabletracking_consent_sourceandtracking_consent_source_id, as columns in your contact import.Contact Update API — set the attributes through the existing
/contact/updatecall. See 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
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.
Tracking Override
For messages that must be tracked regardless of a contact's consent — for example, where you have your own lawful basis — a per-message Tracking Override is available in the message's advanced settings. It is off by default. When enabled, it forces open and click tracking for all recipients of that message, including contacts who have denied or withdrawn consent, and you are responsible for the lawful basis. For details, see the Tracking Override section in Email Tracking Consent.
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.