Skip to content
pixelary Docs

Tagging your ads

Last touch Paid plans

UTM tags on your ad links tell Pixelary which campaign a visitor came from. Paste one line into each ad, and the event log and the Overview show conversions by source and campaign.

Meta

In Ads Manager open the ad, find Tracking → URL parameters and paste this line. Meta fills in the names when someone clicks.

utm_source=facebook&utm_medium=paid&utm_campaign={{campaign.name}}&utm_content={{ad.name}}&utm_term={{adset.name}}
  • A name stays as it was when the ad was first published, even if you rename the campaign later. A new name needs a new campaign, ad set or ad.
  • For one row per platform instead of one for all of Meta, use utm_source={{site_source_name}}: Meta sends fb, ig, an, msg or th.
  • Meta does not support dynamic parameters for collection ads on Instagram.

Meta: dynamic URL parameters

TikTok

In TikTok Ads Manager add this line to the ad’s URL parameters, in the URL builder or after a ? on the destination URL.

utm_source=tiktok&utm_medium=paid&utm_campaign=__CAMPAIGN_NAME__&utm_content=__CID_NAME__&utm_term=__AID_NAME__
  • __CID_NAME__ is the creative and __AID_NAME__ the ad group. Write the macros in capitals, exactly as here.
  • In upgraded Smart+ campaigns use __ADID_V2_NAME__ for the ad name instead of __CID_NAME__.

TikTok: UTM parameters and macros

Other ads and links

Any link works the same way: add utm_source and utm_campaign at least, and utm_medium, utm_content and utm_term if you use them. Test a link by opening it and finding the event in Live events.

What Pixelary shows

WhereWhat
Live eventsSource and campaign on each event, the full tags in its details, a campaign filter and the columns in the CSV export.
OverviewConversions by campaign on paid plans: source, campaign, conversions delivered server-side and value per currency. PageView and ViewContent are not conversions here.

Names are grouped without regard to case, so Spring Sale and spring sale are one campaign. The card lists the top 20 and adds up the rest as Other. Each day keeps up to 100 separate rows, so new names after that count as Other for that day.

Last touch, and why it differs from Ads Manager

A conversion belongs to the last tagged link or ad click the visitor came from. A later visit without tags doesn’t change it. This is a simple report, not an attribution model:

  • Ads Manager has its own attribution windows and counts views as well as clicks. Your numbers will differ, and that doesn’t mean either one is wrong.
  • Pixelary counts only what its tags saw, so an ad without UTM tags or a click ID shows up as no tags.
  • Meta can add fbclid to links in ordinary posts too, so a click ID alone doesn’t prove a paid click.
  • Any tagged link counts, including a newsletter’s, not only paid ads.
  • The tags are read from the address of the page. With ad_storage granted, the script keeps them in the visitor’s browser for up to 30 days, as pixelary_touch in local storage.
  • Without ad_storage they stay in memory for that page only. If the visitor accepts later on the same page, the events waiting for that answer still carry them.
  • Pixelary records which click ID was there, never its value. The tags go to the event log only, not to Meta, TikTok or OpenAI.
  • Values are cut to 100 characters, and anything that looks like an email or an international phone number is removed. Don’t put personal data in your tags anyway.
Sites on the free pixel send no server events, so they have no event log and no campaign report.

Something here doesn’t match what you see? Write to hello@pixelary.app.