📣 Dynamic Sub-IDs For Paid Ad Platforms

Every major ad platform supports dynamic URL placeholders: variables in your tracking template that the platform replaces with the real keyword, ad ID, campaign name or match type at click time. WCT captures whatever value arrives and stores it as the Sub-ID. There is no code to write and no API to connect, you only paste the right template into the campaign settings.

Google Ads:

Campaign, then Settings, then URL options, then Tracking template. Paste {lpurl}/?sub_id={keyword}. For finer control, set it at ad group or keyword level too, and concatenate placeholders such as {lpurl}/?sub_id={keyword}_{adgroupname}_{matchtype}.

Microsoft And Bing Ads:

Campaign, then Settings, then URL options, then Tracking template. The placeholder syntax matches Google, so {lpurl}/?sub_id={keyword} works. Bing also offers {QueryString}, {Network} and {Device}.

Facebook And Meta Ads:

Ads Manager, at ad level, in the URL parameters field underneath the website URL. Use sub_id={{ad.id}}_{{adset.id}}_{{campaign.id}}. Facebook appends this to your destination for you. Put it in the URL parameters field rather than the destination URL itself, because Facebook uses its own double brace merge syntax.

TikTok Ads:

Campaign, then Tracking, then URL Parameters. Use sub_id=__CAMPAIGN_ID__-__AID__-__CID__. TikTok wraps dynamic values in double underscores, where __AID__ is the ad ID and __CID__ is the creative ID.

YouTube Ads:

Set up through Google Ads, so the tracking template is the same field. {lpurl}/?sub_id={keyword}_{video_id} adds the hosting video, although {video_id} only populates on TrueView campaigns.

X Or Twitter Ads:

Campaign, then Conversion Tracking, then URL parameters. Use sub_id={{twclid}}, which is X's own click ID. Pair it with {{tweet.id}} if you want tweet level detail.

Native Networks:

Campaign, then the Tracking URL field. Taboola uses {lpurl}/?sub_id={site}_{adid} and Outbrain uses {lpurl}/?sub_id={{section_id}}_{{ad_id}}. Split tests work exactly as they do on Google.

Solo Ads:

There are no dynamic placeholders. Hard code the vendor name into the path of the URL you hand the seller, for example yoursite.com/your-slug/solo-john. A different Sub-ID per vendor lets you compare EPC across sources.

Use Query Strings, Not Paths, For Paid Traffic:

Keywords often contain spaces and punctuation. In a URL path those get encoded into %20 or plus signs, which makes the Sub ID Breakdown ugly and hard to read. The ?sub_id= query string form handles them cleanly, so prefer it for every paid platform.

Concatenate For Multi Dimensional Analysis:

Join several placeholders with underscores, for example {lpurl}/?sub_id={keyword}_{adgroupname}_{matchtype}_{device}. You get one value per click, then split it on the underscore in your CSV export and analyse by any dimension you captured.

End To End On Google Ads:

  1. Create a WCT link with the slug golf-offer and your affiliate URL as the destination.
  2. In Google Ads set the campaign tracking template to {lpurl}/?sub_id={keyword}_{adgroupname}.
  3. Leave the Final URL as your normal landing page, for example yoursite.com/golf-offer.
  4. Google substitutes at click time, so WCT records every click with the real keyword and ad group as the Sub-ID.
  5. Open Link Stats, then Sub ID Breakdown, to see which keywords convert and what each one earns per click.
  6. Pause the losers, scale the winners.

Ready to stop reading and start using?

Every plugin documented here works alongside the others, managed from one ResultsAIx Hub.