Agent-readable docs index: /docs/llms.txt. Full docs in one file: /docs/llms-full.txt. Download /docs/docs.zip to grep all markdown files locally.

UTM Parameters & Campaign Tagging

Consistent UTM tags unlock precise attribution in Google Analytics, Mixpanel, and any customer data platform. Shaf's built-in UTM builder ensures every link in a campaign carries identical, validated parameters — with zero manual URL editing.

UTM Parameters Reference

ParameterPurposeCommon Values
utm_sourceTraffic origin / referrernewsletter, twitter, linkedin, google
utm_mediumMarketing channel typecpc, email, social, organic
utm_campaignSpecific promotion or initiativefall_product_launch, q4-outreach
utm_termPaid search keyword or ad termedge_links, url_shortener
utm_contentA/B test variant or creative identifiervariant_hero_blue, sidebar_cta

Using the Built-In UTM Builder

    Create or edit a short link. Click the UTM Builder tab in the link editor sidebar.

    Fill In Your UTM Fields

    Enter values for the parameters relevant to your campaign. Required for attribution: utm_source, utm_medium, and utm_campaign.

    Preview the Final URL

    Shaf shows a live preview of the assembled destination URL with all UTM parameters appended:
    https://yourbrand.com/product?utm_source=newsletter&utm_medium=email&utm_campaign=fall_product_launch&utm_content=variant_hero_blue
    The short link itself remains clean — the UTM parameters are added transparently at redirect time.
    Click Save Link. The UTM parameters are encoded and stored alongside the link record.
AI-Suggested UTM Values: When using the AI slug generator, Shaf can also suggest consistent UTM parameter values based on your link's destination URL and description. Click Suggest UTM in the builder.

Organizing Campaigns with Tags

Tags are workspace-level labels that group links across campaigns for aggregated filtering and bulk operations.
    In the Tags field, type comma-separated tag names:
    q3-growth, partner-referral, podcast-ads
    Press Enter or Tab after each tag to confirm it.
    In the Links view, click the Filter dropdown → Tag → select one or more tags. The table updates to show only links matching those tags.

    Query Tags Programmatically

    Tags are fully queryable via the REST API:
    curl -X GET "https://api.shaf.app/v1/links?tag=q3-growth" \ -H "Authorization: Bearer sk_live_..."

Campaign Analysis Tips

Consistent Naming
Agree on a naming convention before launch. utm_campaign=fall_product_launch and utm_campaign=Fall Product Launch are treated as different campaigns in GA4.
One Link Per Channel
Create separate short links per channel (email, social, paid) rather than reusing a single link with different UTM tags. This gives you per-channel click stats inside Shaf alongside UTM attribution in GA4.
Use Tags to Group
Tag all links belonging to a campaign with the campaign name (e.g. q4-launch). Use Shaf's tag filter to see aggregated click performance without leaving the dashboard.

Troubleshooting

GA4 shows UTM data but Shaf clicks don't match
This is expected behavior. Shaf counts every redirect event (click on the short link). GA4 only counts sessions where the page loaded successfully and the Analytics snippet fired. Bots, crawlers, and users with script blockers contribute to Shaf counts but not GA4 sessions.
UTM parameters are not appearing on the destination landing page
Check that the destination URL does not have a redirect chain that strips query parameters. Test the destination URL directly in your browser with UTM params appended to confirm they pass through.
Can I bulk-apply UTM params to existing links?
Currently, UTM params must be set per-link in the editor. Bulk UTM update via CSV import is on the roadmap. For now, use the Export → Edit → Re-import workflow to update multiple links.