TikTok Ads UTM Parameters: Setup, Examples, and GA4 Troubleshooting

Configure TikTok Ads UTM parameters, use the right Smart+ macros, preserve ttclid, and troubleshoot missing campaign data in GA4.

TikTok Ads UTM parameters illustration showing source, medium, and campaign labels flowing into Google Analytics 4

Illustrative banner, not an actual platform screenshot. Dashboard values are examples.

Listen to this article

Audio summary · 1 min 44 sec

Table of Contents
  1. Start with a clear TikTok UTM template
  2. TikTok dynamic macros: campaign, ad group, ad, and creative
  3. Add UTM parameters in TikTok Ads Manager
  4. Keep ttclid and UTM parameters separate
  5. Find TikTok campaigns and creatives in GA4
  6. Two different TikTok–GA4 connection workflows
  7. Troubleshoot TikTok UTM and GA4 problems
  8. Why TikTok and GA4 conversions do not always match
  9. TikTok UTM launch checklist
  10. TikTok UTM parameter questions

Add UTM parameters to TikTok ad destination URLs to identify the source, medium, campaign, and creative in GA4. Use TikTok’s supported macros for dynamic values, include the platform campaign ID in utm_id, and verify both the landing URL and analytics collection.

The most important macro distinction is simple: __AID__ identifies the ad group, while __CID__ identifies the creative. Upgraded Smart+ adds a separate ad level. This guide covers ads leading to your website; its examples do not measure an in-app TikTok Shop purchase. Documentation was checked on October 8, 2026.

Start with a clear TikTok UTM template

utm_source=tiktok&utm_medium=paid_social&utm_campaign=__CAMPAIGN_NAME__&utm_id=__CAMPAIGN_ID__&utm_content=__CID__&utm_term=__AID__

This is a suggested convention, not a mandatory TikTok default. Add it through the platform’s URL builder, or append it to your real destination with ?—or & if the URL already contains a query. Keep macros exactly as shown.

UTM fieldSuggested valuePurpose
utm_sourcetiktokIdentify paid TikTok visits consistently.
utm_mediumpaid_socialApply your approved paid-traffic convention.
utm_campaign__CAMPAIGN_NAME__Readable campaign label.
utm_id__CAMPAIGN_ID__Platform campaign identifier.
utm_content__CID__Creative ID under this template.
utm_term__AID__Optional ad-group ID under this template.

Here, utm_term is an ad-group label, not a user’s search query. Document that choice. If your reporting needs human-readable creatives, use __CID_NAME__ instead of __CID__ and keep an ID lookup for joins.

For example, a manually resolved test URL could be:

https://example.com/demo?utm_source=tiktok&utm_medium=paid_social&utm_campaign=autumn_demo&utm_id=123456&utm_content=789012&utm_term=345678

The numbers and destination are fictional. This static example can test URL handling and GA4 collection; it cannot verify TikTok’s macro expansion.

TikTok dynamic macros: campaign, ad group, ad, and creative

TikTok uses double-underscore macros, not the curly-brace syntax used by some other ad platforms. Its official macro reference documents these values:

LevelID macroName macro
Campaign__CAMPAIGN_ID____CAMPAIGN_NAME__
Ad group__AID____AID_NAME__
Ad in upgraded Smart+__ADID_V2____ADID_V2_NAME__
Creative__CID____CID_NAME__

__PLACEMENT__ supplies placement type, such as TikTok or TikTok Pangle. If you collect it using a custom query key, decide how you will capture and report it before adding the field.

Do not infer meaning from the abbreviation. __AID__ is not the upgraded Smart+ ad ID. __CID__ is not the campaign ID. A valid-looking numeric value can still populate the wrong reporting level.

Choose the reporting level for upgraded Smart+

Upgraded Smart+ has four levels: campaign, ad group, ad, and creative. The ad bundles creative assets, so an ad-level comparison differs from a creative-level comparison. Smart+ structure and tracking guidance

To compare Smart+ ads, adapt the template by using utm_content=__ADID_V2__. To compare individual creatives, keep utm_content=__CID__. Record which meaning you chose; do not silently mix both into one field across otherwise comparable campaigns.

Custom parameters are not automatically custom GA4 dimensions. If you add a second level, such as tt_ad_id, your implementation must collect it as an event parameter and register an appropriate custom dimension for reporting. Custom dimension guidance

Add UTM parameters in TikTok Ads Manager

Use the following workflow in the ad’s Ad details section. Interface labels can vary by account and ad experience. TikTok’s URL setup instructions

  1. Enter the Destination URL.
  2. Click Edit below Preview, then Build URL parameters.
  3. Fill the UTM fields with your approved source, medium, campaign, and dynamic values.
  4. Add any extra keys through Custom parameters.
  5. Review Auto-attach and Autodetect, especially for catalog product links.
  6. Inspect the resulting URL and select Apply.

Auto-attach can prefill source, paid medium, campaign ID, and name. Review those values against your convention instead of assuming they match. When catalog Autodetect is enabled, detected parameters can be attached to product links. Test representative products after configuration.

Duplicating an ad also copies its URL parameters. Make reviewing the copied fields part of your launch process.

Choose one owner for each field

Before combining a pretagged destination with automatic tagging, inspect the final query. Do not leave two utm_source or utm_medium values and hope every consumer selects the intended one.

Use consistent naming in the account when macros return names. A source labelled tiktok on one campaign and tiktokads on another fragments your comparison. TikTok also warns against tags placed after #; use query parameters rather than a fragment. TikTok UTM best practices See fixing duplicate UTMs for repair steps.

Keep ttclid and UTM parameters separate

ttclid is TikTok’s click identifier. TikTok can append it to a landing URL and use it with Pixel or Events API events to match activity to an ad click. UTMs supply campaign labels for analytics; they do not replace that identifier. TikTok Click ID documentation

Do not put a creative ID into ttclid or invent a click-ID value. Check that redirects and URL-cleaning scripts preserve the tracking data your measurement setup requires. Treat the click ID as a separate field from your UTM convention.

A successful page load proves only that the destination opened. Validate the collected landing information and the conversion event before accepting the setup.

Find TikTok campaigns and creatives in GA4

In Reports → Acquisition → Traffic acquisition, choose Session source / medium and find tiktok / paid_social. Add Session campaign to compare campaign visits. Traffic acquisition reference

For creative analysis, use an Exploration filtered to that source and medium, with session campaign and session manual ad content. Add session manual term if you use it for the ad group. UTMs map to manual campaign dimensions; you do not need custom dimensions for standard utm_content and utm_term. Manual tagging reference

Compare visits and engagement before interpreting your selected key event or ecommerce revenue. For field-level instructions, read finding creative and term values in GA4.

Why can a returning customer show another first-user source?

First-user acquisition, session acquisition, and event attribution describe different scopes. Use session dimensions to inspect the TikTok visit, and a suitable attribution report to examine conversion credit. Traffic-source scopes

Should TikTok visits be Paid Social or Paid Video?

Do not assign a channel solely because the ad contains video. Google’s current source list classifies tiktok as social, and paid_social matches the paid-medium rule. Verify the session channel in your property; classification depends on the actual source, medium, and other rules. GA4 channel rules and source list

Keeping source and medium consistent makes discrepancies easier to investigate. See the Unassigned traffic troubleshooting guide when collected values do not match a channel rule.

Two different TikTok–GA4 connection workflows

Import TikTok advertising cost into GA4

Google documents Admin → Product links → TikTok Links and a Data import → Campaign data → TikTok flow for campaign cost, clicks, and impressions. This is separate from collecting website events.

The documented prerequisites are an Editor role in GA4 and at least an Analyst role in TikTok Ads. Use one paid source and medium, and match them exactly in the import configuration. Google recommends utm_campaign and utm_id. Investigate overlapping existing cost imports first; Google does not automatically deduplicate the two sources. Google’s TikTok connection guide

Connect GA4 to TikTok Events Manager

TikTok’s separate connection uses GA4 information within its own measurement workflow. Its July 2026 guidance emphasizes utm_source and utm_id, and offers auto-append for missing tracking parameters. TikTok’s GA4 connection guidance

That guidance also uses utm_content=__AID__ in an integration example. This differs from the creative-level convention above. Review your integration requirements before changing that field, and document its meaning for analysts.

Where available, TikTok’s third-party reporting comparison requires the GA4 connection and uses a properly configured utm_id for campaign matching. TikTok reporting comparison documentation Do not treat the two connection workflows as interchangeable.

Troubleshoot TikTok UTM and GA4 problems

SymptomWhat to inspectPractical next step
Raw macros reach the landing pageToken spelling, campaign type, and delivered URLUse the supported macro for that reporting level; distinguish a copied template from an actual ad click.
Source shows as Direct or is missingRedirect chain and collected page locationFind where the query disappears or collection stops.
Creative IDs look like ad-group IDsMapping of __CID__, __AID__, and Smart+ ad IDsCorrect the field meaning and mark when the change took effect.
URL is correct but no event is visibleGA4 property, tag execution, consent, and filtersCheck collection independently of the UTM template.
UTM content is absent from the reportSelected dimension and scopeUse session manual ad content in a suitable report.
Cost or TikTok comparison data does not matchSource/medium mapping, campaign ID, connection statusValidate the connection and each join field.
Campaign visits exist but purchases do notPurchase-event implementation and checkout journeyTest the conversion event rather than changing acquisition tags.

Use a two-stage test

  1. Static collection test: open a fully resolved URL with recognizable test values. Enable debug mode through Tag Assistant and inspect the landing event’s page location and your test action.
  2. Platform delivery test: check an actual delivered ad click, including the in-app browser journey, for expanded macros and preserved parameters.

DebugView requires debug mode; privacy and consent settings can affect visibility. Google’s DebugView guidance Many processed reports take 24–48 hours. Google’s collection guidance

Record the destination before and after every redirect. Read how to preserve UTMs through redirects and why UTMs do not appear in GA4 when the static test fails. Use the UTM checker for structural inspection, not proof of analytics receipt.

Why TikTok and GA4 conversions do not always match

TikTok lists differences in measurement methodology, browser behavior, time zones, and reporting dates as possible discrepancy causes. TikTok’s discrepancy guidance These are investigation leads, not proof that your implementation is correct.

Compare the same event definition and review the selected attribution window and model. Separate GA4 session acquisition from event conversion credit. A later return through another channel can be represented differently across reports.

Do not assume GA4 always uses last-click attribution, or that a TikTok conversion must occur during the original click session to appear anywhere in GA4. Those blanket claims ignore reporting scope and property settings. UTMs cannot make website analytics see every ad impression or recover events that were never collected.

For ecommerce, reconcile transaction IDs with your order system before comparing how each platform allocates credit. A mismatch in counted purchases needs a different investigation from a mismatch in attributed channel revenue.

TikTok UTM launch checklist

  • Source and medium follow one documented convention.
  • utm_id contains the platform campaign ID.
  • Creative versus Smart+ ad-level content is explicitly chosen.
  • Auto-attach, catalog behavior, and copied-ad parameters are reviewed.
  • UTMs and required click identifiers survive redirects.
  • Static collection and delivered-ad tests are both completed.
  • Reports use the intended scope and conversion definition.
  • Optional integrations have matching join fields.

Keep personal identifiers out of campaign names and tracking URLs. Google’s PII guidance Use the campaign UTM QA checklist for a broader pre-launch review.

TikTok UTM parameter questions

Is Auto-attach enough?

It can populate campaign labels, but you still need to review the resulting values, catalog behavior, destination journey, and GA4 collection. Automatic tagging is a configuration aid, not a successful-measurement test.

Can I reuse a Meta dynamic-parameter template?

Reuse your naming convention, but replace the platform-specific tokens. TikTok’s supported double-underscore macros differ from Meta’s template syntax.

Can UTMs track a TikTok Shop purchase?

A website UTM template labels a visit to your website. It does not make GA4 collect a transaction completed inside TikTok Shop. Check the measurement and reporting supported for that separate destination.

Use UTMCraft to prepare consistent static labels. Configure macros in TikTok’s own URL builder and inspect the delivered result before relying on campaign comparisons.

For the broader setup, read Complete UTM Parameters Guide for GA4: Manual Campaign Dimensions & Best Practices. Browse the UTM Parameters guides to choose another troubleshooting task.

References