Campaigns

Run affiliate campaigns the way marketing teams actually work.

Group links in campaigns. Nest campaigns in folders. Auto-append UTM params. Measure ROI per campaign, per folder, per partner — in real time.

When every link lives in a flat list, nothing scales.

Once you’re running 5 influencer campaigns, 3 paid search tests and 2 PR pushes, a flat list becomes an ops nightmare. You need folders, statuses, dates and ROI per campaign — not a spreadsheet with 200 rows.

Without Traaaction
  • Links pile up in a flat, unsortable list
  • UTM parameters set manually, inconsistently
  • No way to compare ROI across campaigns
  • Renaming campaigns breaks historical data
With Traaaction
  • Folders up to 2 levels of nesting
  • Campaign statuses (Active / Paused / Completed)
  • Auto-append UTM at campaign level
  • Rename cascades safely across all links
See it live

From one campaign to a hundred — same clean experience.

Create a campaign, nest it in a folder, attach links. Every link inherits UTM and tracking config. You can archive, pause, or rename without losing history.

How it works

Organised like your ops spreadsheet, but alive.

Step 1

Create folders

Up to 2 levels of nesting. Drag-drop to reorganise, rename without breaking anything.

Step 2

Tag campaigns

Campaign status (Active, Paused, Completed), colour tag, date range. Filter on any of them.

Step 3

Measure ROI

Each campaign shows its total spend, revenue, ROI. Slice by partner or folder.

Why it matters

Campaign management without the spreadsheet tax.

Folders

2-level hierarchy. Drag-drop. Bulk-move links across folders.

Statuses & tags

Active, Paused, Completed, Archived. Colour tags for visual scanning.

Date ranges

Set start/end per campaign. Auto-pause at end date if you want.

Per-campaign ROI

Spend (manual or imported), revenue (tracked), ROI live.

Technical spec

The technical details.

Folder nesting
Parent / child, no deeper
2 levels
Statuses
Active · Paused · Completed · Archived
UTM auto-append
Overrideable per link
Supported
Bulk operations
Move, tag, archive many links at once
Supported
Rename cascade
ShortLink.campaign stays in sync
Supported
API support
Full CRUD via REST API
Supported

Frequently asked questions

How deep can folders nest?+

Two levels: Brand → Campaign. Deeper hierarchies rarely help and make URLs unreadable. We enforce it at the server-action level.

Can I move a link between campaigns?+

Yes, individually or in bulk. History (clicks, conversions) is preserved — the link stays the same, only its container changes.

Do UTM parameters auto-append?+

Yes, at the campaign level. Links inherit utm_campaign, utm_medium and utm_source from the campaign config. Override at link level if needed.

What happens when I rename a campaign?+

The rename cascades to the denormalised ShortLink.campaign string, so historical data stays queryable under both old and new names.

Can I see ROI per campaign?+

Yes. Input spend manually or via API. Revenue is tracked automatically. ROI is computed live — filter by folder to aggregate.

What about archived campaigns?+

Archived campaigns hide from the main view but stay fully searchable and their links keep working. Nothing is ever deleted without explicit confirmation.

Campaigns that scale without chaos.

Folders, tags, ROI, UTM. All built-in. Migrate from your spreadsheet today.

Affiliate Campaign Tracking — UTM, Folders, ROI | Traaaction | Traaaction