Identify Email Recipients

Summary: Add a dlvr_et value to the links in your marketing emails, and the Delivr pixel identifies the recipient on the page they land on, including recipients the pixel has never seen. The same browser keeps resolving on later visits. An optional open pixel records which recipients opened. This works with any email platform that supports a custom contact field and a merge tag.


How It Works

  1. Each contact in your email platform carries a custom field named dlvr_et: an encrypted token Delivr issues for that contact's email address.
  2. You add dlvr_et=<merge tag> to the links in your emails that point at your site.
  3. A recipient clicks. The landing page runs the Delivr pixel, which reads the token from the page URL and identifies the visitor as that recipient on that first page view.
  4. The pixel links the recipient to that browser, so later visits resolve without a token.
  5. The pixel removes dlvr_et from the address bar, so it does not end up in links the visitor shares.

The token is encrypted, not just signed. Anyone who sees the URL, including analytics scripts on your page, learns nothing about the recipient. A token only works on pixels in the Delivr project it was issued for, and expires after 365 days.

Identification on click needs a Website pixel installed on the landing page. The landing page's domain must be in that pixel's allowed origins for the visitor to stay identified on later visits.


Set Up

1. Create an Email pixel

In the dashboard, add a pixel to your project and choose Email. Its page holds every snippet below, filled in with your pixel's IDs and your platform's merge tag, plus a live check for test clicks.

2. Put a token on every contact

Each contact needs a custom field named dlvr_et holding its token.

  1. On the Email pixel page, under Get tokens for your contacts, upload a CSV with an email column. Other columns are ignored and never stored.
  2. When the job finishes, download the result: a CSV with email, dlvr_et and status for every row, in your file's order. Rows that are not valid email addresses come back with status invalid_email and no token. The download is available for 7 days.
  3. Import the file into your email platform, mapping the dlvr_et column to a custom contact field named dlvr_et.

Tokens last 365 days. Upload your list again about every 10 months, and again when you add contacts. Contacts without a value render an empty dlvr_et=, which is harmless.

3. Add the token to your links

Add dlvr_et= and your platform's merge tag to the destination URL on your site, not to your platform's click-tracking URL. Click tracking wraps your links and keeps the destination's query parameters.

Use ? when the URL has no query string, otherwise &:

https://yoursite.com/pricing?dlvr_et={{ person.dlvr_et|default:'' }}
https://yoursite.com/pricing?utm_source=email&dlvr_et={{ person.dlvr_et|default:'' }}
PlatformContact fieldMerge tag
Klaviyoprofile property dlvr_et{{ person.dlvr_et|default:'' }}
HubSpotcontact property dlvr_et (internal name){{ contact.dlvr_et }}
Mailchimpaudience field, merge tag DLVR_ET*|DLVR_ET|*
Salesforce Marketing Clouddata extension or profile attribute dlvr_et%%dlvr_et%%
Customer.ioattribute dlvr_et{{ customer.dlvr_et }}
Brazecustom attribute dlvr_et{{custom_attribute.${dlvr_et}}}
Iterableuser field dlvr_et (case-sensitive){{dlvr_et}}
Marketolead field with display name dlvr_et{{lead.dlvr_et:default=}}
ActiveCampaigncustom field DLVR_ET%DLVR_ET% (copy the exact tag from Contacts > Fields)
SendGrid Marketing Campaignscontact custom field dlvr_et{{dlvr_et}}
SendGrid Dynamic Templatesdlvr_et in your API call's dynamic_template_data{{dlvr_et}}
Brevocontact attribute DLVR_ET{{ contact.DLVR_ET }}

Marketo tokens use the field's display name, so name the field exactly dlvr_et. In Salesforce Marketing Cloud the tag works in a static link; if the whole link is a variable, wrap it in RedirectTo.

4. Optional: add the open pixel

Paste this image tag into your email template, with your platform's merge tag in place of the Klaviyo one:

<img src="https://api.sitelytics.tech/pixel/core/api/send-event/get?event_type=email_open&pixel_id=YOUR_EMAIL_PIXEL_ID&organization_id=YOUR_PROJECT_ID&dlvr_et={{ person.dlvr_et|default:'' }}&dlvr_msg=spring_launch" width="1" height="1" alt="" style="display:block;width:1px;height:1px;border:0;" />

dlvr_msg is an optional campaign label: up to 128 letters, digits, _, . or -.

5. Test

Send a test email to yourself and check that the rendered link carries a long value after dlvr_et=. Click it, and watch the live check on the Email pixel page.


What You Get

  • Landing page views from a recipient carry the recipient's identity, with hem_source set to email_token. Later visits from the same browser resolve through the normal cookie match.
  • Opens are email_open events on the Email pixel. They carry the recipient's identity and email_client_proxy (gmail, yahoo or unknown). An open almost never links a browser to the recipient: mail proxies carry no browser cookie, and most webmail sends no page address with images. Clicks are what link a browser.
  • Every event that carried a token has email_token_result, which says whether the token worked. See Troubleshooting.

Opens are not site visits. They are left out of visitor counts, visitor lists, audiences, resolution stats and exports, and out of Events API results unless you ask for them with filter=event_type:eq:email_open.

Opens you request through the Events API bill like other events. On /api/v3/events/{tier} the route sets the price, so read opens from /api/v3/events/web_event to pay the event rate. On the older events routes, each open carries the recipient's identity, so a query without select bills at the identity tier; list only event columns in select to keep it at the event rate.

Treat opens as a weak signal. Gmail, Yahoo and Apple Mail fetch images through their own servers, and Apple Mail does it when the message arrives, whether or not anyone reads it. A click is what identifies a person.


Troubleshooting

email_token_resultWhat it meansFix
validThe token workedNothing
absentThe link had an empty dlvr_et=The contact has no token yet; add one
unrendered_merge_tagYour platform sent the merge tag as text, such as {{ contact.dlvr_et }}Check the field name and tag syntax for your platform
org_mismatchThe token was issued for a different Delivr projectIssue tokens for the project this pixel belongs to
expiredThe token is older than 365 daysIssue fresh tokens
malformed, auth_failedThe token was cut short or changedA link shortener or rewriter altered the URL; link to your site directly

Privacy and Limits

  • Visitors with Global Privacy Control enabled, and visitors in restricted countries, are never identified from a token.
  • One recipient is linked to at most 3 browsers in 30 days, which limits forwarded emails and shared links. A browser already identified as someone else is never relinked.
  • Most link scanners (Microsoft, Proofpoint and others) open links without running JavaScript, so they do not trigger the pixel. The 3-browser limit bounds the ones that do.
  • Staying identified on later visits depends on the browser keeping the pixel's cookie. Safari keeps it only where the pixel runs on your own domain; see Delivr White-Label Pixel.
  • If your site's router rewrites the URL and conflicts with the pixel removing dlvr_et, add data-strip-email-token="false" to the pixel's script tag. The pixel still redacts the token from the event before storing it.

Did this page help you?