UTM Tracking for Awin: How to Build and Validate Affiliate Campaign Links

A large terminal window centered on the canvas showing two commands: mlz build generating a UTM-tagged destination URL with utm_source=awin-content, utm_medium=affiliate, utm_campaign=q3-global, followed by mlz check validating that URL with all PASS results for ssl, resolution, redirects, and response_time, and a green verdict bar reading valid: true — UTM params survive awin1.com redirect chain.

To add UTM tracking for Awin, add UTM parameters to the advertiser destination URL — the landing page URL you configure in the Awin merchant account — not to the awin1.com affiliate link your publishers share. GA4 reads UTM parameters from the URL at the moment the tracking tag fires, which is after Awin’s redirect resolves to your destination page. Use MissingLinkz mlz build to generate normalized, per-publisher destination URLs, and mlz check to validate the complete awin1.com redirect chain before your program goes live. That is the correct setup. But here is where advertisers lose attribution data: UTM parameters can be present on the destination URL and still fail to reach GA4 if any redirect in the chain strips query parameters before the page loads. Awin routes every publisher click through awin1.com/cread.php before forwarding to your merchant site. If your CDN, an internal vanity redirect, or an A/B testing tool strips query strings at any subsequent hop, GA4 fires on a URL with no UTM data. A parameter syntax checker would return valid. mlz check follows the entire redirect chain and confirms UTM parameters survive to the final destination — the check that prevents silent attribution failure in Awin programs.

How Awin’s tracking architecture interacts with UTM parameters

Awin (formerly Affiliate Window in the UK and Zanox in Germany) is one of the world’s largest affiliate marketing networks, operating across more than 180 countries with tens of thousands of active advertisers and publishers. Awin is also the parent company of ShareASale, though the two networks operate separate publisher bases and distinct tracking infrastructure.

When a publisher shares an Awin affiliate link, the click first routes through Awin’s tracking infrastructure at awin1.com. Awin records the click, assigns its own click identifier (the awc parameter), and then redirects the browser to the advertiser’s destination URL configured in the program settings. This redirect is how Awin attributes the visit to the correct publisher for commission purposes.

This architecture has one important consequence for UTM tracking: UTM parameters belong on the advertiser destination URL, not on the awin1.com publisher link. The awin1.com link carries Awin’s own tracking parameters (the merchant and affiliate IDs, click identifier) that are entirely separate from your GA4 UTM data. UTM parameters added directly to the awin1.com link are not reliably forwarded to your destination. The reliable approach is to configure UTM parameters on the destination URL inside the Awin advertiser interface.

GA4 attribution works by reading utm_source, utm_medium, and utm_campaign from the URL at page load time — the URL the browser is on when the GA4 tag fires. For GA4 to correctly attribute affiliate traffic from Awin publishers, those parameters must be present on the final destination URL after Awin’s awin1.com redirect resolves and any subsequent redirects on your own domain complete. If any hop in the chain strips them, the session lands in GA4 as Direct or Referral with no campaign data.

Awin’s platform records click and conversion data independently of GA4, using its own publisher tracking IDs, awc click identifiers, and the Awin MasterTag conversion pixel. Both systems coexist: Awin tracks affiliate conversions via its own click IDs and MasterTag, GA4 tracks channel attribution via UTM parameters on the destination URL. For a broader overview of how UTM parameters work across redirect chains, see the UTM tracking for developers guide.

Building per-publisher UTM destination URLs for Awin with mlz build

Awin programs span a wide range of publisher types — content and editorial sites, voucher and discount platforms, cashback and loyalty networks, price comparison engines, and influencer partners — each operating across different markets and geographies. Giving each publisher type a distinct utm_source value lets GA4 attribute conversions to the right channel so you can compare performance across publisher categories rather than seeing all Awin traffic as a single undifferentiated row.

Generating these per-publisher destination URLs manually introduces the casing inconsistencies and spelling errors that fragment GA4 data. mlz build generates normalized destination URLs from structured input, enforcing lowercase and hyphenated values, and stores each link for an auditable record of what was configured in the Awin advertiser dashboard.

The standard convention for Awin is utm_source=[publisher-type], utm_medium=affiliate, and utm_campaign=[program-name]. Use utm_content to differentiate creative or placement variants within the same publisher type.

mlz build — Awin advertiser destination URL
$ mlz build \
  --url "https://brand.example.com/lp" \
  --source "awin-content" \
  --medium "affiliate" \
  --campaign "q3-global" \
  --content "banner-leaderboard" \
  --validate

{
  "tracked_url": "https://brand.example.com/lp?utm_source=awin-content&utm_medium=affiliate&utm_campaign=q3-global&utm_content=banner-leaderboard",
  "params": {
    "utm_source": "awin-content",
    "utm_medium": "affiliate",
    "utm_campaign": "q3-global",
    "utm_content": "banner-leaderboard"
  },
  "destination_url": "https://brand.example.com/lp",
  "link_id": "lnk_awin_q3g_bn",
  "campaign_id": "cmp_q3-global",
  "stored": true,
  "created_at": "2026-06-30T08:10:00.000Z"
}

For a voucher or discount publisher on the same program, change --source to identify the publisher category:

mlz build --url "https://brand.example.com/lp" --source "awin-voucher" --medium "affiliate" --campaign "q3-global" --content "discount-20pct"

For a cashback or loyalty publisher:

mlz build --url "https://brand.example.com/lp" --source "awin-cashback" --medium "affiliate" --campaign "q3-global"

For a price comparison or shopping publisher:

mlz build --url "https://brand.example.com/lp" --source "awin-comparison" --medium "affiliate" --campaign "q3-global"

The tracked_url value from each mlz build call is what you configure as the program landing page URL in the Awin advertiser interface (under Program › Program Details › Landing Page). Each publisher category gets a distinct utm_source. For naming conventions and why consistent casing matters for GA4 channel groupings, see the UTM naming conventions guide. To generate these at scale via the API or npm package, see how to build UTM links programmatically.

Validating the Awin redirect chain with mlz check

Once you have the UTM-tagged destination URL, validate it end-to-end before configuring it in the Awin program. mlz check follows the complete redirect chain from your destination URL, confirms the server responds with a 200, and verifies there are no configuration issues that would strip UTM parameters at any hop. Run this before the Awin program activates — not after a quarter of data shows publisher-driven sessions landing in GA4 as Direct with no campaign information.

mlz check — validate the Awin destination URL chain
$ mlz check "https://brand.example.com/lp?utm_source=awin-content&utm_medium=affiliate&utm_campaign=q3-global"

{
  "url": "https://brand.example.com/lp?utm_source=awin-content&utm_medium=affiliate&utm_campaign=q3-global",
  "valid": true,
  "checks": [
    { "check": "url_format", "status": "pass", "message": "URL format is valid." },
    { "check": "ssl", "status": "pass", "message": "URL uses HTTPS." },
    { "check": "resolution", "status": "pass", "message": "Destination responded with 200.", "details": { "status_code": 200, "response_time_ms": 198 } },
    { "check": "redirects", "status": "pass", "message": "No redirects detected." },
    { "check": "response_time", "status": "pass", "message": "Response time: 198ms.", "details": { "response_time_ms": 198 } }
  ],
  "status_code": 200,
  "response_time_ms": 198,
  "validated_at": "2026-06-30T08:11:04.000Z"
}

A clean result means the destination URL resolves correctly and query parameters survive to the final page. If valid is false, the checks array tells you exactly which hop in the chain failed. The most common failure mode in Awin setups is a redirect on the advertiser’s own site stripping query parameters — a CDN edge rule, an internal routing configuration, or an A/B testing framework that does not preserve query strings when forwarding to the variant URL. A parameter-only validator would show the URL as syntactically valid while this failure goes undetected. For a detailed walkthrough of diagnosing redirect chain failures, see how to check if a redirect strips UTM parameters.

Awin UTM tracking gotchas for affiliate managers and merchants

The awc click identifier is not a UTM parameter — do not remove it
When a publisher’s visitor clicks an Awin affiliate link, Awin appends an awc parameter to the destination URL before forwarding the browser to your site. This awc value is Awin’s click identifier — it is what Awin uses internally to record which publisher drove the click, handle commission attribution, and validate conversions against the MasterTag pixel. Do not remove or replace the awc parameter. It coexists cleanly with UTM parameters on the destination URL: UTM parameters go in the destination URL you configure in the Awin dashboard, and Awin appends awc when forwarding the click. Both appear in the browser’s address bar, serving different tracking systems simultaneously.
Awin MasterTag is separate from UTM tracking
The Awin MasterTag is a JavaScript conversion pixel placed on your order confirmation or thank-you page. It fires a conversion event to Awin’s servers when a sale is recorded, using the awc click identifier to attribute the conversion to the correct publisher. The MasterTag handles Awin’s commission attribution; UTM parameters handle GA4 attribution. Both need to function correctly for complete program data. A broken redirect that strips UTM parameters will not break the MasterTag (Awin tracks conversions independently), but it will leave GA4 with no campaign data for those sessions.
UTM parameters go on the destination URL in the Awin advertiser interface — not on the publisher link
The affiliate link a publisher shares is an Awin tracking link (awin1.com/cread.php?awinmid=XXXX&awinaffid=YYYY). UTM parameters you add directly to this link are not reliably forwarded to your destination page. The correct location is the program landing page URL in the Awin advertiser dashboard (Program › Program Details). Configure the UTM-tagged destination URL there and Awin uses it as the target for all publisher-generated affiliate links in the program.
Voucher and cashback publishers on Awin often add their own redirect layers
Voucher aggregators, cashback platforms, and price comparison sites that publish through Awin frequently wrap the Awin affiliate link inside their own redirect layer before presenting it to users. Each additional redirect hop is another opportunity for query parameters to be stripped. mlz check follows every hop and confirms UTM parameters survive to the final URL. If a publisher’s redirect layer strips parameters, the redirects check will flag the issue before you commit to the program launch with that publisher type.
Deep links in Awin programs may introduce additional redirects on your site
Awin supports deep linking, where publishers can link to specific product or category pages rather than just the homepage. Deep links may route through internal redirects on your site (category pages that 301 to updated URLs, product pages that redirect when a variant is out of stock, etc.). Each internal redirect is a potential parameter-stripping point. Validate deep-link destination URLs with mlz check just as you would the primary program landing page. If a deep-link destination URL has internal redirects that strip UTM parameters, those sessions will land in GA4 as Direct regardless of the source publisher.

Frequently asked questions

Where do I add UTM parameters in the Awin advertiser account?
In the Awin advertiser interface, navigate to Program › Program Details and find the Landing Page URL or Destination URL field for your program. This is where you configure the UTM-tagged URL generated with mlz build. The value looks like: https://brand.example.com/lp?utm_source=awin-content&utm_medium=affiliate&utm_campaign=q3-global. Awin uses this URL as the target for affiliate links created in the program. When a publisher’s visitor clicks the awin1.com link, Awin resolves it to this destination URL (appending its own awc click identifier) so UTM parameters arrive at the page where GA4 fires.
Does Awin’s awin1.com redirect strip UTM parameters?
Awin’s awin1.com redirect is designed to forward the destination URL intact, including its query parameters. Parameter stripping typically occurs downstream: on the advertiser’s own site, at a CDN or edge caching layer, in an A/B testing platform that rewrites URLs for variant targeting, or in internal routing rules that redirect to canonical URLs without preserving query strings. Validate the complete destination URL chain with mlz check before the program goes live. Do not assume parameters survive without testing the full chain.
What is the awc parameter and how does it interact with UTM parameters?
The awc parameter is Awin’s click identifier. Awin appends it to the destination URL when forwarding a publisher click, so the final URL your site receives looks like: https://brand.example.com/lp?utm_source=awin-content&utm_medium=affiliate&utm_campaign=q3-global&awc=12345_12345_12345. GA4 reads the UTM parameters from this URL for channel attribution and ignores awc. Awin reads awc for commission attribution and does not rely on UTM parameters. Both systems use the same URL simultaneously without interfering with each other. Do not remove awc — doing so breaks Awin’s commission attribution.
Can I set different destination URLs for different publishers within the same Awin program?
Awin programs typically use a single program-level landing page URL. If you need different UTM source values per publisher type (content, voucher, cashback, comparison), the conventional approach is to use one URL for each publisher category and coordinate with Awin’s program management. Some programs use Awin’s deep link functionality to let publishers create links to specific pages, in which case UTM parameters should be included on each deep-link destination URL. For large programs with many publisher types, generate all destination URLs programmatically using mlz build via the REST API to maintain consistent naming.
How do I validate UTM tracking across all my Awin program links before launch?
Run mlz check against each destination URL you configure in Awin. For a program with multiple publisher categories and deep-link destination URLs, generate all URLs using mlz build with a script or via the REST API, then validate each one in sequence. If you manage affiliate program configuration through a CI/CD pipeline or version-controlled configuration files, see automating campaign link validation in CI/CD to gate program configuration changes on a passing mlz check result before the update is deployed.

Build Awin-compatible UTM destination URLs and validate every redirect chain

mlz build generates correctly normalized, per-publisher UTM destination URLs to configure in the Awin advertiser dashboard. mlz check validates the full redirect chain — confirming UTM parameters survive from the destination URL to the page where GA4 fires.

npm install -g missinglinkz

Free plan: 1,000 links/month. No credit card. See the UTM tracking for developers guide for the full programmatic workflow.