Link Tracking Profiles
Link tracking profiles let you configure and automate the query parameters that are appended to links in your emails.
To create a profile, go to the Dynamic Content page and open the Link tracking profiles tab. Then, click Create link tracking profile to get started.
Parameter Types
You can choose from three types of parameters:
Fixed Value
Fixed value parameters are static — they’re defined once and automatically added to every URL in your email.
Editor Field Value
This type displays an input next to each URL field in the email editor, allowing you to assign different values to individual links.
Editor Global Field Value
This displays a single input in the editor’s settings panel. The value entered here is applied to all URL fields in the email.
Custom Templates
You can customize how tracking parameters are rendered using custom templates.
A custom template is written in Liquid and gives you full control over how URLs are constructed. These templates have access to the render context object
, allowing for dynamic and personalized link generation.
Within your template:
- The original URL from the editor is available as
url_value
. - Any configured parameters are accessible via the
parameters
object — for example,{{ parameters.utm_source }}
.
Template Examples
Basic Example
This template is similar to the default behavior and assumes two parameters: utm_source
and utm_campaign
. It also handles whether or not the URL already contains a query string.
{%- if url_value contains '?' -%}
{%- assign first_separator = '&' -%}
{%- else -%}
{%- assign first_separator = '?' -%}
{%- endif -%}
{{- url_value -}}{{first_separator}}utm_source={{parameters.utm_source | url_encode}}&utm_campaign={{parameters.utm_campaign | url_encode}}
Using the Render Context
This version pulls values directly from the render context, so no manual parameters are needed. It automatically includes:
- The email name as the utm_campaign value
- The component ID as the utm_content value
{%- if url_value contains '?' -%}
{%- assign first_separator = '&' -%}
{%- else -%}
{%- assign first_separator = '?' -%}
{%- endif -%}
{{- url_value -}}{{first_separator}}utm_campaign={{render_context.email.name | url_encode}}&utm_content={{render_context.component_instance.component_id | url_encode}}
This approach is powerful because it allows you to track exactly where each click came from — down to the specific component that rendered the link. For example, if a link is repeated in multiple parts of an email, you’ll be able to identify which instance of the link was clicked. It provides a high level of granularity in your reporting and insights.
Conditional logic
You can tailor link tracking based on dynamic conditions — for instance, varying tracking by country, connector type, or project. Here’s an example using locale-based logic:
{% if render_context.email.locale == 'en-US' %}
{{url_value}}...
{% else %}
{{url_value}}...
{% endif %}