Landing Page URL Builder

Meta Ads troubleshooting

Meta URL Parameters Not Working

If Facebook or Instagram ad traffic is not showing the right campaign values in GA4, check the final URL, URL parameters, redirects, and macro behavior before changing the whole tracking setup.

Meta ad traffic moving through URL parameters into GA4 checks

First check

Confirm the final landing page URL opens and still contains the UTM parameters after redirects.

Second check

Confirm whether static UTMs or Meta placeholders are being used, and test the exact ad preview path.

Best fallback

Use static readable UTMs first, then add Meta placeholders only after the basic GA4 path is proven.

Clean Meta starter URL

Start here if you are not sure whether the issue is the URL, the macro, or GA4.

https://example.com/products/sample-product?utm_source=meta&utm_medium=paid_social&utm_campaign=spring_sale&utm_content=video_ad_01

Advanced Meta placeholder example

Use placeholder-style parameters only after checking the live ad account preview and confirming the values expand the way you expect.

https://example.com/products/sample-product?utm_source=meta&utm_medium=paid_social&utm_campaign=spring_sale&campaign_name={{campaign.name}}&adset_name={{adset.name}}&ad_name={{ad.name}}

Debugging sequence

  1. Open the final landing page URL outside Ads Manager and confirm it loads.
  2. Check whether the URL already contains old or duplicate UTMs.
  3. Use static UTMs and test GA4 Realtime once.
  4. If static UTMs work, add Meta placeholders only where they are actually needed.
  5. Use an ad preview or test click path to confirm placeholders expand in the live account.
  6. If campaign values still do not appear, check redirects, short links, consent, and duplicate GA4 tags.

Common failure patterns

Symptom Likely cause Safer move
GA4 shows source but no campaign Campaign parameter missing or stripped. Test one static utm_campaign value first.
Values show curly braces in GA4 Placeholder did not expand. Verify the exact token behavior inside Meta before launch.
Campaign changes after rename Name-based placeholders changed with the account object. Use readable static campaign plus optional ID fields if needed.
URL works locally but not from ad preview Different redirect or tracking layer in the live click path. Test the actual preview click, not only the copied URL.

Start with static UTMs, then add Meta placeholders

That order keeps debugging simple and gives you a clean fallback if dynamic values behave differently than expected.

Build a free Meta URL