Adobe integration guide

Track Link + Adobe Analytics Integration

Adobe Analytics uses tracking codes (s.campaign, often called CIDs) instead of UTM parameters by default, but it accepts custom query strings and can be configured to read utm_* tags via Processing Rules or Adobe Experience Platform Web SDK. Track Link generates UTM-tagged short URLs that survive any redirect chain, and Adobe Analytics can ingest those UTMs into eVars and props for full enterprise attribution. This guide walks through how to pass Track Link tracked URLs through Adobe Analytics, configure tracking codes, and use processing rules to map Track Link UTMs to Adobe's reporting variables.

Free plan: 10 links, 1.5K clicks/month, full analytics. No credit card required.

Why combine them

Why integrate Track Link with Adobe Analytics

  • Adobe Analytics' default attribution variable is s.campaign (the tracking code or CID), which is read from a query parameter you configure (commonly cid or s_cid). Track Link can pass any query parameter through the redirect, so your existing Adobe tracking codes work unchanged — just generate the short URL with ?cid=<code> appended.

  • Adobe Analytics supports up to 250 eVars and 75 props, which is far more granular than GA4's custom dimensions. You can dedicate one eVar to Track Link campaign, one to source, one to medium, and one to the original short slug — giving you separate reportable dimensions for each piece of UTM context.

  • Processing Rules in Adobe Analytics can copy a query parameter into an eVar at the server side, no JavaScript change required. This means a single Processing Rule can capture utm_source from every Track Link click and populate eVar1 across your entire reporting suite.

  • Adobe's Marketing Channel Processing Rules let you classify traffic into channels (Email, Paid Search, Affiliate) based on URL patterns. Track Link's utm_medium directly feeds these rules, so tracked-link traffic flows into the correct channel without manual tagging on the Adobe side.

  • Adobe Experience Platform Web SDK (alloy.js) replaces the legacy s_code library and supports first-party data collection with consent-aware controls. Track Link's redirect-side click count is unaffected by SDK consent state, so you have a deterministic ground truth even when Adobe sessions are suppressed.

  • Adobe Analytics' Workspace and Customer Journey Analytics (CJA) can ingest Track Link click data via CSV import or via API into Adobe Experience Platform. This unifies offline click events (from Track Link's server-side count) with on-site behavior (from Adobe Web SDK) into a single Customer Journey for cross-channel attribution.

How Adobe measures campaigns

Adobe Analytics link and campaign tracking, explained

Adobe Analytics measures campaigns differently from Google Analytics. Where GA4 reads UTM parameters automatically, Adobe Analytics campaign tracking is built around a single reserved variable, s.campaign, usually populated from a compact tracking code you place in the landing-page URL. Understanding the Adobe tracking code model — the cid, custom link tracking with s.tl(), Activity Map, and how URL parameters flow into report variables — is the key to clean attribution. This section covers each concept, then shows where Track Link fits.

The Adobe tracking code: cid and campaign classifications

An Adobe Analytics tracking code is a short string that identifies a specific campaign touchpoint. It is passed on the query string — most implementations use ?cid= (campaign ID), though the parameter name is configurable (you may see s_cid or a custom name). On page load, your implementation reads that parameter and assigns it to s.campaign, which feeds the Tracking Code dimension in Analysis Workspace. This is the heart of Adobe Analytics cid tracking.

Raw tracking codes are rarely human-readable, so Adobe layers classifications (SAINT) on top. A structured code such as em:spr26:hero:na can be split — via a rule-based or uploaded classification — into friendly dimensions like Channel, Campaign Name, Placement, and Region. That lets analysts report on "Email" or "Spring 2026" without ever touching the cryptic code.

Tracking code segmentClassificationValue
emCampaign ChannelEmail
spr26Campaign NameSpring 2026
heroPlacementHero CTA
naRegionNorth America

s.tl() custom link tracking

Not every interaction is a page view. When a visitor clicks an outbound link, a download, or an on-page CTA, you record it with a custom link hit. In AppMeasurement this is the s.tl() call — the core of Adobe Analytics custom link tracking. Unlike s.t() (which sends a page view), s.tl() sends a link event that does not inflate page-view counts. You control exactly which variables and events ride along using s.linkTrackVars and s.linkTrackEvents.

// AppMeasurement (s_code / appMeasurement.js)
// s.tl() fires a custom link hit WITHOUT a new page view.
s.linkTrackVars = "eVar3,eVar5,events"; // which vars to send on this hit
s.linkTrackEvents = "event12";          // custom link events, or "None"

s.eVar3 = "spring_2026_newsletter";     // campaign / cid value from the click
s.eVar5 = "hero_cta";                   // creative, maps to utm_content
s.events = "event12";                   // a custom "cta_click" success event

// s.tl(linkObject, linkType, linkName)
//   linkType: "o" = other/custom link, "e" = exit link, "d" = download
s.tl(this, "o", "Newsletter Hero CTA");

The second argument is the link type: "o" for a custom/other link, "e" for an exit link, and "d" for a download. This is the same call Adobe's Activity Map uses under the hood, and it is how you attribute the exact button or link a user clicked — the kind of first-party click signal that pairs naturally with Track Link's server-side link click tracking.

Activity Map link tracking

Activity Map is Adobe Analytics' built-in link-overlay tool. When enabled, the AppMeasurement Activity Map module automatically captures every clicked link and records three reserved dimensions: Link (clickmaplink), Region (clickmapregion), and Page (clickmappage). This means Activity Map link tracking in Adobe Analytics gives you a visual heat overlay of which links get clicked, plus a reportable Activity Map dimension in Workspace — without hand-coding an s.tl() call for every element.

Activity Map answers "which link on this page did people click?" It does not, however, tell you what happened to the clicks that never reached your page at all — a link shared in an email, an SMS, or a native app where the Adobe pixel cannot fire until (and unless) the browser loads your site. That gap is exactly where a redirect-based counter complements Activity Map.

Adobe Analytics URL parameters and how UTMs map in

Adobe does not read utm_* tags out of the box, but it is happy to consume any Adobe Analytics URL parameters you tell it about. There are two clean paths: capture the parameter in JavaScript (s.Util.getQueryParam) and assign it to a variable, or use a server-side Processing Rule to copy the query parameter into an eVar with no code change. If you already tag links with UTMs for Google Analytics — say, using the same conventions you would for UTM parameters on Facebook ads — you can map them straight into Adobe's report variables.

URL parameterAdobe variableReports as
cids.campaignTracking Codes
utm_campaigns.campaignTracking Codes / Campaigns
utm_sourceeVar1 + channel ruleMarketing Channels
utm_mediumeVar2 + channel ruleMarketing Channels
utm_contenteVar5Creative / Content
utm_termeVar4Keyword

For newer stacks on the Web SDK, the same values flow into XDM fields instead of s-variables:

// Adobe Experience Platform Web SDK (alloy.js) — data element style.
// Define a Query String Parameter data element per UTM in Tags/Launch,
// then reference them when you send the XDM event.
alloy("sendEvent", {
  xdm: {
    marketing: {
      trackingCode: getQueryParam("cid") || getQueryParam("utm_campaign"),
    },
    _yourtenant: {
      utmSource: getQueryParam("utm_source"),
      utmMedium: getQueryParam("utm_medium"),
      utmContent: getQueryParam("utm_content"),
    },
  },
});

A worked Adobe Analytics tracking code example

Here is a complete, copy-ready Adobe Analytics tracking code example. It reads the cid (or utm_campaign) from the URL, de-dupes it with getValOnce, assigns it to s.campaign, and copies source and medium into eVars. Drop it into your s.doPlugins function (or mirror the logic in an Adobe Tags/Launch rule):

// Capture the Adobe tracking code (cid) on every page load.
s.doPlugins = function (s) {
  // Read the tracking code first, then fall back to a UTM tag.
  var code =
    s.Util.getQueryParam("cid") || s.Util.getQueryParam("utm_campaign");

  if (code) {
    // getValOnce stops the same campaign re-attributing for 30 minutes,
    // so a refresh or re-click inside the session is not double-counted.
    s.campaign = s.getValOnce(code, "s_cmp", 30, "m");
  }

  // Copy the remaining UTM values into eVars for granular reporting.
  s.eVar1 = s.Util.getQueryParam("utm_source");
  s.eVar2 = s.Util.getQueryParam("utm_medium");
};
s.usePlugins = true;

A visitor arriving on https://example.com/pricing?cid=em:spr26:hero:na now populates the Tracking Code dimension with em:spr26:hero:na, which your classifications expand into Email / Spring 2026 / Hero CTA / North America. Swap the query string for a full UTM set and the same plugin captures source and medium into eVar1 and eVar2. That is the entire loop of Adobe tracking code capture in a dozen lines.

How Track Link complements Adobe Analytics

Track Link is not a replacement for Adobe Analytics — Adobe remains your enterprise analytics of record, with Workspace, Attribution IQ, and Customer Journey Analytics. Track Link sits one step earlier in the funnel and fills two structural gaps in the pixel-based model:

  • 1.Deterministic, first-party click counts. Adobe counts the page view that follows a click. Track Link counts the click itself at the redirect server, before any page loads — so ad blockers, consent suppression, abandoned loads, and app-to-browser handoffs never make a click disappear. The two numbers together give you a real click-to-page-view rate per campaign.
  • 2.Branded short links that carry your cid and UTMs cleanly. Track Link short URLs preserve whatever query string you attach — ?cid= or a full UTM set — through every hop of the redirect chain, so the tracking code arrives at your Adobe-instrumented page intact. This works for offline and dark-social placements (QR codes, print, SMS, DMs) where Adobe's pixel could never fire at the point of the click.

In practice: build the campaign URL with the cid or UTMs, wrap it in a Track Link short link with the tracking link generator, and share that link. Adobe captures on-site behavior via the pixel; Track Link's URL tracker gives you the independent, server-side click total for the same campaign. You get Adobe's depth plus a ground-truth denominator that the pixel alone cannot provide.

Note: creating tracked Track Link short links requires a free account (a free Google sign-in is enough) — there is no paywall on the free plan, but you do sign in so your links and analytics are saved to you.

Step by step

How to set up the integration

A practical workflow for combining Track Link click data with Adobe Analytics.

1

Decide on tracking code parameter: cid vs utm_*

Adobe Analytics implementations historically use ?cid=<code> as the tracking code parameter. If your implementation already uses cid (or s_cid), build Track Link short URLs with that parameter appended: https://gettrack.link/abc123?cid=email_spring2026. If you want to use standard UTM tags instead (recommended for cross-platform consistency with GA4), configure Adobe to read utm_source via Processing Rules — see step 3 below.

2

Generate Track Link short URLs with the chosen parameter

Use the Track Link tracking link generator and add either ?cid=<code> or the full UTM set (utm_source, utm_medium, utm_campaign, utm_term, utm_content) to your destination URL. Track Link preserves these query params through the redirect so they arrive at your destination page intact, where the Adobe Web SDK or s_code library can read them.

3

Configure Processing Rules to copy query params into eVars

In Adobe Analytics > Admin > Report Suites > Edit Settings > General > Processing Rules, create a new rule. Set the condition to If query string parameter utm_source is set, then Overwrite value of eVar1 with query string parameter utm_source. Repeat for utm_medium (eVar2), utm_campaign (eVar3), utm_term (eVar4), utm_content (eVar5). Each Track Link click that resolves to your tagged page now populates these eVars automatically with no s_code change.

4

Set s.campaign from utm_campaign or cid

If your implementation uses the legacy s_code library, in your s.doPlugins (or the equivalent in Adobe Launch / Tags), assign s.campaign = s.Util.getQueryParam('cid') || s.Util.getQueryParam('utm_campaign'). This ensures every page load with a tracking code or UTM populates the s.campaign variable, which feeds the Tracking Code dimension in Adobe Workspace. Use the s.getValOnce plugin to prevent re-attribution within the same session.

5

Map utm_medium to Marketing Channels

In Admin > Marketing Channels > Marketing Channel Processing Rules, create rules that match query parameter utm_medium against values like email, social, cpc, organic. Each rule assigns the visit to a Marketing Channel (Email, Social, Paid Search, Organic Search). Track Link clicks now flow into the appropriate channel automatically, and you can compare channel performance in Workspace's Marketing Channels report.

6

Validate with Adobe Experience Platform Debugger

Install the Adobe Experience Platform Debugger Chrome extension. Click a Track Link short URL in your browser and inspect the resulting Adobe Analytics beacon. Verify that the page view request includes the right c.utm_source, c.utm_campaign, and that the s.campaign variable is set. Then in Workspace, build a freeform report with the eVars you populated and confirm clicks from the Track Link short URL appear with the expected dimension values.

Need to build tagged URLs first? Use the UTM builder or the tracking link generator. Verify redirects with the redirect checker.

Use cases

Common use cases

Real situations where pairing Track Link with Adobe Analytics pays off.

Enterprise marketing attribution across regions and brands

Large organizations with multi-brand portfolios run dozens of campaigns simultaneously. Track Link short URLs with consistent UTM naming flow into Adobe Analytics' eVars, which can then be analyzed in Workspace by region, brand, and campaign simultaneously. The combination scales to hundreds of campaigns without the tracking-code sprawl that pure cid-based implementations suffer from.

Cross-suite tracking with Roll-Up reports

Adobe Analytics customers often have multiple report suites (one per region, brand, or property). Roll-Up suites aggregate data, but tracking codes are not always consistent across child suites. By standardizing on Track Link UTMs and mapping them via Processing Rules in every child suite, you get a unified campaign dimension across the roll-up — useful for executive reporting where the question is, 'How did the spring campaign perform globally?'

Multi-touch attribution with Attribution IQ

Adobe's Attribution IQ in Workspace lets you apply different attribution models (first touch, last touch, linear, U-shaped, J-shaped, time decay, custom). The model applies to whichever dimension you choose — eVar3 (utm_campaign) is a natural fit. Track Link feeds eVar3 with consistent campaign names from every channel, so Attribution IQ can model each channel's contribution to converters across the journey, not just the last-touch source.

Cross-domain and offline campaign tracking

Track Link short URLs work as the entry point for offline campaigns (QR codes on print ads, NFC tags, in-store signage) where Adobe's pixel cannot fire until the user reaches a digital property. The UTMs survive the redirect, so when the user lands on your domain, Adobe's Processing Rules capture them and the campaign is attributed correctly — closing the loop on offline-to-online attribution.

Frequently asked questions

Adobe Analytics integration FAQ

Common questions about using Track Link alongside Adobe Analytics.

What is an Adobe Analytics tracking code (cid)?

An Adobe Analytics tracking code is a short string, usually passed on the URL as ?cid=<code>, that identifies a specific campaign touchpoint. Your implementation reads it and assigns it to s.campaign, which populates the Tracking Code dimension in Analysis Workspace. Because raw codes are cryptic, most teams add classifications (SAINT) to expand a code like em:spr26:hero:na into readable dimensions such as Channel, Campaign Name, Placement, and Region. Track Link passes any cid through the redirect unchanged, so your existing tracking codes keep working.

How does s.tl() custom link tracking work?

s.tl() is the AppMeasurement custom link call. Unlike s.t(), which sends a page view, s.tl() records a link-click hit without inflating page-view counts. You set s.linkTrackVars and s.linkTrackEvents to declare which variables and events ride along, then call s.tl(linkObject, linkType, linkName) where linkType is 'o' (custom/other), 'e' (exit), or 'd' (download). It is the standard way to attribute a specific button or link, and it is the same mechanism Adobe's Activity Map uses under the hood.

Does Adobe Analytics support UTM parameters natively?

Adobe's default attribution variable is s.campaign, which reads from a query parameter you choose (typically cid). It does not read utm_* tags out of the box. To use Track Link's UTMs, configure Processing Rules or your Launch/Tags property to copy query parameters like utm_source into eVars. Once configured, UTMs work as well as cid does, with the added benefit of cross-platform consistency with GA4 and other platforms.

Which Adobe Analytics URL parameters should I use?

Use one parameter for the tracking code — cid (or utm_campaign) mapped to s.campaign — and, if you want channel-level detail, add utm_source and utm_medium mapped to eVars plus Marketing Channel Processing Rules. utm_content and utm_term map cleanly to two more eVars for creative and keyword. Standardizing on UTM-style parameters keeps your Adobe URL parameters identical to the ones you already use in GA4 and ad platforms, so a single tagged link works everywhere.

Can I use Adobe Launch / Tags to read Track Link UTMs?

Yes. Create a Data Element in Launch with type Query String Parameter and the parameter name utm_source (repeat for each UTM). Then in your Adobe Analytics extension, map these Data Elements to eVars and props. This is the modern equivalent of the s_code Processing Rules approach and is the recommended pattern for new implementations using Web SDK (alloy).

Can Track Link feed Activity Map link tracking in Adobe Analytics?

Activity Map captures link clicks on your own pages automatically once a visitor lands, so it works normally on any page reached through a Track Link short URL. What Track Link adds is coverage for the clicks Activity Map never sees — links opened in email clients, SMS, or apps where the Adobe pixel cannot fire at the moment of the click. Use Activity Map for on-page link heat, and Track Link's server-side count for the clicks that happen before the page loads.

What is a good Adobe Analytics tracking code example?

A common pattern is a colon-delimited code like em:spr26:hero:na, read from ?cid= and assigned to s.campaign in s.doPlugins: s.campaign = s.getValOnce(s.Util.getQueryParam('cid') || s.Util.getQueryParam('utm_campaign'), 's_cmp', 30, 'm'). getValOnce prevents the same campaign re-attributing for 30 minutes. Classifications then expand the code into Channel, Campaign Name, Placement, and Region so analysts report on friendly names, not the raw string.

Why use Track Link if Adobe Analytics already tracks click-throughs?

Adobe Analytics tracks the page view that results from a click — not the click itself. If a user clicks a tracked link but never reaches your tagged page (browser closed, redirect failed, ad blocker), Adobe sees nothing. Track Link counts the click at the redirect server, before the page load, giving you a deterministic baseline. The two together give you click-to-page-view conversion rates per channel.

How do I handle s.getValOnce to prevent campaign re-attribution?

In Adobe's s_code, the getValOnce plugin stores a campaign value in a cookie for a configurable window (e.g. 30 minutes) and prevents the same value from being re-attributed within that window. When using Track Link, set s.campaign = s.getValOnce(s.Util.getQueryParam('utm_campaign'), 'utm_campaign_cookie', 30, 'm'). This ensures a refresh or re-click within the session does not double-count the campaign.

Can I import Track Link click data into Customer Journey Analytics (CJA)?

Yes. Export Track Link clicks as CSV from the dashboard or via API and load them into Adobe Experience Platform as a separate dataset. In CJA, define a connection that joins the Track Link click events with your Adobe Analytics dataset on a common key (e.g. utm_campaign and timestamp). This creates a unified Customer Journey including server-side click events, which is especially valuable for measuring channels where the Adobe SDK undercounts.

Will Track Link work with Adobe's Web SDK (alloy.js)?

Yes. Web SDK reads query parameters via Data Elements just like Launch does. Configure utm_source, utm_medium, utm_campaign as Data Elements of type Query String, then map them to XDM fields in your Edge Configuration. The Track Link UTMs flow into your XDM event payload and into both Adobe Analytics and Customer Journey Analytics simultaneously.

Will Track Link short URLs work with Adobe Audience Manager (AAM)?

Yes. AAM segments are built on visitor behavior captured via Adobe Analytics, the Web SDK, or DCS calls. Once Track Link UTMs flow into eVars, you can build AAM segments based on those eVars (e.g. visitors whose first eVar3 was Spring2026Campaign). The Track Link redirect itself does not need to integrate with AAM directly.

Does Track Link support enterprise SSO or SAML for team access?

Track Link's enterprise plan supports SSO via SAML 2.0 with providers including Okta, Azure AD, OneLogin, and Google Workspace. This matches the access controls most Adobe Analytics customers expect. Reach out via the contact page if your team needs SSO provisioned alongside the Adobe rollout.

Pair Track Link with Adobe Analytics today

Create a free Track Link account, generate tracked URLs, and start feeding richer click data into your Adobe workflows. No credit card, no setup fee, full analytics on the free plan.

  • Free forever plan
  • UTM-ready short URLs
  • Real-time click analytics