# UTM Parameters in AcelleMail — Tracking Clicks to Your Analytics Tool

> Configure UTM tags once in your campaign settings — AcelleMail appends them to every link in the email automatically. This guide walks the campaign-level + global UTM settings, the post-send click report, and how the UTMs land in Google Analytics or Plausible.

- Canonical URL: https://acellesend.com/kb/articles/setting-up-utm-parameters-for-email-campaign-tracking
- Author: Ryan Walsh, Audience & Analytics Editor
- Category: Analytics & Reporting — Open rates, click maps, campaign performance, device reports, exports
- Content type: tutorial · Difficulty: beginner
- Tags: Acellemail
- Published: 2026-01-25 · Last updated: 2026-08-15
- Reading time: 8 min
- Publisher: AcelleMail Knowledge Base, https://acellesend.com/kb

---

## Why UTMs and where they go

UTM parameters are query-string tags appended to your campaign's outbound links — `?utm_source=newsletter&utm_medium=email&utm_campaign=spring_launch` — that your analytics tool (Google Analytics, Plausible, Fathom, Matomo) reads to attribute traffic + conversions back to the email that drove them.

Without UTMs, every click from your email shows up as **(direct) / (none)** in analytics. With UTMs, you see "spring_launch newsletter drove 1,847 sessions and 312 conversions" — the kind of report you can defend in a quarterly review.

The good news: AcelleMail handles this for you at the campaign level. Set it once, every link gets tagged.

## Set UTMs in the campaign builder

### 1. Open campaign settings → URL parameters

When you create or edit a campaign, the **Tracking** (or **URL parameters**) section in campaign settings has fields for the standard UTM keys:

- **utm_source** — where the click came from. For email: usually `newsletter` or your brand name like `acellemail`.
- **utm_medium** — the channel. Almost always `email` for AcelleMail-driven sends.
- **utm_campaign** — the specific campaign identifier — `spring_launch_2026`, `weekly_digest_w17`, `cart_abandonment_v3`.
- **utm_term** (optional) — usually paid-search specific, sometimes used for segment-of-list identification.
- **utm_content** (optional) — variant identifier — `header_cta` vs `footer_cta` to A/B test which link position pulls more.

A standard configuration:

```
utm_source:   newsletter
utm_medium:   email
utm_campaign: spring_launch_2026
```

Click **Save**. AcelleMail will append these to every link in the email automatically — you don't need to add `?utm_source=...` to each individual `<a href>` in the body.

### 2. Verify in Preview

Open the email Preview, hover over any link — the URL shown at the bottom of the screen will include the UTM query string. If you don't see it:

- Check that **Tracking** is enabled in the campaign settings (some installs default it off)
- The link is to your own domain (some setups skip UTM-tagging on external partner links)
- The URL doesn't already have query parameters that conflict (AcelleMail will append `&utm_source=...` rather than overwrite)

## Read the click report after sending

### Tracking log — per-click audit

Campaign → **Tracking log** tab shows every action (open, click, bounce) with timestamp + subscriber:

![Tracking log — per-event audit](https://acellesend.com/plugins/acelle/landing/images/help/kb/analytics/03-tracking-log.png)

For UTM verification, find a Click row → the destination URL stored is the original link (without UTMs) — AcelleMail tracks the *click event* server-side via the redirect, then forwards the user to the URL *with* UTMs appended.

### Click log — link-level click breakdown

The **Click log** tab focuses on click events specifically:

![Click log per subscriber](https://acellesend.com/plugins/acelle/landing/images/help/kb/analytics/04-click-log.png)

### Links report — aggregated per-link totals

The **Links report** rolls everything up — per-link click count + unique clickers:

![Links report — per-link aggregate](https://acellesend.com/plugins/acelle/landing/images/help/kb/analytics/06-links-report.png)

This is the most useful view for content optimization: "Did our footer CTA outperform the header CTA?" → look at the per-link click count.

### Click map — visualisation of where clicks went

The **Click map** overlays click counts on the rendered email:

![Click map overlay](https://acellesend.com/plugins/acelle/landing/images/help/kb/analytics/02-click-map.png)

The heatmap tells you the same thing as the Links report, but visually — useful for layout decisions ("our main button is below the fold; almost all clicks come from the inline text link above").

### Campaign overview — top-line metrics

The campaign **Overview** tab shows the summary:

![Campaign overview](https://acellesend.com/plugins/acelle/landing/images/help/kb/analytics/01-campaign-overview.png)

This is what you screenshot for stakeholder reports — open rate, click rate, unsubscribe rate, all aggregated.

## How the UTMs show up in Google Analytics

After the campaign sends and recipients click, your analytics tool (GA4 / Plausible / etc.) starts recording sessions with the source = `newsletter` / medium = `email` / campaign = `spring_launch_2026`.

In Google Analytics 4: **Reports → Acquisition → Traffic Acquisition** → filter by `Session source / medium = newsletter / email`.

In Plausible: filter by `Source = newsletter` directly on the dashboard.

The UTMs persist across page navigations within the session, so even if the recipient clicks your email → lands on /pricing → navigates to /signup → converts, the conversion is attributed back to the email.

## Common UI signals + fixes

| Symptom | Likely cause | UI fix |
|---|---|---|
| Click count on AcelleMail report doesn't match analytics-tool sessions | UTM-tagged links going through redirect strip the UTMs at some hop | Verify the destination URL in Preview hovers — should still have UTMs after AcelleMail's click-redirect |
| Multiple campaigns showing up as same source in analytics | Same `utm_campaign` value used for both sends | Use unique `utm_campaign` per send — include week or version number |
| utm_source = `(direct)` in GA despite UTMs being set | Analytics drops UTMs on HTTPS → HTTP redirects, OR JS-driven SPAs that don't read URL params | Make sure your destination uses HTTPS end-to-end; if SPA, configure your analytics tool to read query string on every route change |
| Want to A/B test header vs footer CTA | Use `utm_content` differently per variant — `header_cta` vs `footer_cta` | But: AcelleMail's campaign-level setting applies one `utm_content` to all links; need link-level override (see Advanced) |

## Common UTM conventions worth adopting

| Field | Recommended pattern | Why |
|---|---|---|
| `utm_source` | One per-channel identifier, lowercase, hyphenated | Stays consistent across years; "newsletter" works forever |
| `utm_medium` | Always `email` for AcelleMail sends | Standard convention; analytics tools group it predictably |
| `utm_campaign` | `{campaign_type}_{date_or_version}_{variant}` | `cart_abandon_2026q2_a` is parseable + sortable |
| `utm_content` | Variant identifier when A/B testing | `header_cta` vs `footer_cta`; `button_red` vs `button_green` |
| `utm_term` | Only when running paid keyword tests in parallel | Usually leave blank for organic email |

<details>
<summary><strong>Advanced: per-link overrides, dynamic UTM via merge tags, integration patterns</strong></summary>

When the campaign-level UTMs aren't granular enough — typically when you're A/B testing within a single send, or when you need per-recipient personalization in the UTM itself — drop to link-level overrides.

**Per-link override in the email body:**

Click any link in the AcelleMail builder → right panel → **Tracking** section. Toggle "Override campaign UTMs for this link". Set per-link values:

```
header CTA:
  utm_source:   newsletter
  utm_medium:   email
  utm_campaign: spring_launch_2026
  utm_content:  header_cta

footer CTA:
  utm_source:   newsletter
  utm_medium:   email
  utm_campaign: spring_launch_2026
  utm_content:  footer_cta
```

This gives you two click reports in your analytics tool, both attributed to spring_launch_2026, but you can break down which CTA pulled more.

**Dynamic UTM via merge tag** (per-recipient personalization):

Write the link directly in HTML mode with the merge tag in the URL:

```html
<a href="https://example.com/upgrade?utm_source=newsletter&utm_medium=email&utm_campaign=spring_launch&utm_term={{ subscriber.signup_plan }}">
  Upgrade your plan
</a>
```

Now `utm_term` = `pro` or `enterprise` per recipient. Useful for cohort analysis in GA4: "did the click-to-upgrade rate differ across plan tiers?"

**Server-side click-to-conversion attribution:**

If you're running your own backend (e.g. a Laravel app, a Next.js app), capture UTMs server-side at first request and persist them in the session or a cookie:

```php
// Laravel middleware example
if ($request->has('utm_source')) {
    session([
        'first_touch' => [
            'source' => $request->get('utm_source'),
            'medium' => $request->get('utm_medium'),
            'campaign' => $request->get('utm_campaign'),
            'landed_at' => now(),
        ],
    ]);
}
```

Then attach to the conversion event when the user signs up or purchases. This sidesteps analytics-tool quirks (especially the GA4 referrer-detection limits) for your most important conversions.

**Integration with Plausible / Fathom (privacy-friendly analytics):**

Both read the standard UTM query-string params with no extra configuration. Filter the dashboard by **Source = newsletter** to see all email-driven traffic; further filter by **Campaign = spring_launch_2026** for per-campaign attribution. No GA4 setup ceremony required.

**AcelleMail API to populate UTM values dynamically per campaign:**

If you create campaigns programmatically (e.g. from a marketing-automation backend), the campaign update endpoint accepts the UTM fields:

```bash
curl -X PATCH "https://acellemail.com/api/v1/campaigns/{campaign_uid}" \
  -H "Authorization: Bearer $ACELLE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "track_open": true,
    "track_click": true,
    "url_tags": {
      "utm_source": "newsletter",
      "utm_medium": "email",
      "utm_campaign": "weekly_digest_w17",
      "utm_content": "auto_generated"
    }
  }'
```

Useful for: triggered campaigns where the campaign name encodes a date (`weekly_digest_w17` → week 17), automated A/B variant naming, or syncing UTM conventions across many campaigns in bulk.

**Disabling AcelleMail's click-redirect** — by default, AcelleMail's tracker rewrites every link to a tracking redirect (e.g. `https://acellemail.com/c/abc123/d/xyz`) so it can count the click before forwarding. The UTMs survive the forward. If you need raw direct links (e.g. for a press release where the URL should be pristine), turn off click tracking per campaign: campaign settings → **Tracking** → uncheck **Track click** → UTMs are still appended, but no redirect hop.

</details>

## Related articles

- [Email analytics — beyond open and click rates](https://acellesend.com/kb/articles/understanding-email-analytics-and-key-metrics)
- [Email template design — best practices](https://acellesend.com/kb/articles/email-template-design-best-practices)
- [A/B testing email campaigns — best practices](https://acellesend.com/kb/articles/ab-testing-email-subject-lines-for-better-open-rates)
- [Personalization beyond first name — advanced merge tags](https://acellesend.com/kb/articles/personalization-beyond-first-name-advanced-merge-tags)

---

## Related articles

- [Open Rates + Apple MPP: What AcelleMail's Numbers Actually Mean](https://acellesend.com/kb/articles/understanding-email-open-rates-in-the-age-of-apple-mpp): Apple Mail Privacy Protection inflates 30-45% of your "opens" by pre-fetching pixels. This guide shows how to spot MPP inflation in AcelleMail (open-log IPs), what to measure instead, and how to adjust your A/B tests + reporting.
- [Email Campaign ROI: Math + AcelleMail Data Points](https://acellesend.com/kb/articles/email-roi-calculation-measuring-campaign-profitability): Email ROI = (Revenue − Cost) / Cost. This guide shows the math, which AcelleMail data points feed each variable, the costs people forget to count, and a working revenue-attribution pattern using UTMs + your store.
- [Read the Campaign Report: AcelleMail Analytics Tour](https://acellesend.com/kb/articles/understanding-email-analytics-and-key-metrics): AcelleMail's campaign report has 6 tabs (Overview / Insights / Links / Map / Sending logs / Email review) and 5 headline metrics. This walkthrough shows where each metric lives, what 'good' looks like, and what to do when a number's bad.
- [A/B Report Deep Dive: Reading AcelleMail Test Results](https://acellesend.com/kb/articles/comparative-campaign-analysis-ab-test-results-deep-dive): After your A/B test finishes, the A/B Report tab tells you the winner — but the real value is in the variant-level numbers. This guide walks through the report, the statistical-significance rules, and what to do for winner / inconclusive / loss verdicts.
- [Click Analysis in AcelleMail: Links Tab + Geographic Click Map](https://acellesend.com/kb/articles/click-map-analysis-optimize-your-email-layout): AcelleMail has two views for click analysis: the Links tab (per-link breakdown — which CTA worked) and the Map tab (geographic distribution). This walkthrough shows both and tells you which to read for what question.
