URL Tracking Tags
Campaign-level Dynamic UTM parameters
URL tracking tags
LinkedIn's Dynamic UTM Tracking lives at the campaign level: a set of params LinkedIn appends to every creative's landing-page URL under that campaign. dynamicValueParameters map a key to a LinkedIn token resolved at serve time (CAMPAIGN_ID, CAMPAIGN_NAME, CAMPAIGN_GROUP_ID, CAMPAIGN_GROUP_NAME, CREATIVE_ID, ACCOUNT_ID, ACCOUNT_NAME); customValueParameters map a key to a static string. Operate on them through the unified ad endpoint, passing any ad in the campaign.
Read the current params:
const { data } = await zernio.trackingtags.getAdTrackingTags({ path: { adId: 'AD_ID' } });
// { platform: 'linkedin', level: 'campaign',
// dynamicValueParameters: { utm_campaign: 'CAMPAIGN_NAME' },
// customValueParameters: { utm_source: 'linkedin' } }data = client.tracking_tags.get_ad_tracking_tags(ad_id="AD_ID")curl "https://zernio.com/api/v1/ads/AD_ID/tracking-tags" \
-H "Authorization: Bearer YOUR_API_KEY"Set or update them (send dynamicValueParameters and/or customValueParameters):
const { data } = await zernio.trackingtags.updateAdTrackingTags({
path: { adId: 'AD_ID' },
body: {
dynamicValueParameters: { utm_campaign: 'CAMPAIGN_NAME', utm_content: 'CREATIVE_ID' },
customValueParameters: { utm_source: 'linkedin', utm_medium: 'paid_social' },
},
});data = client.tracking_tags.update_ad_tracking_tags(
ad_id="AD_ID",
dynamic_value_parameters={"utm_campaign": "CAMPAIGN_NAME", "utm_content": "CREATIVE_ID"},
custom_value_parameters={"utm_source": "linkedin", "utm_medium": "paid_social"},
)curl -X PATCH "https://zernio.com/api/v1/ads/AD_ID/tracking-tags" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"dynamicValueParameters": { "utm_campaign": "CAMPAIGN_NAME", "utm_content": "CREATIVE_ID" },
"customValueParameters": { "utm_source": "linkedin", "utm_medium": "paid_social" }
}'Params set on a campaign apply to all its creatives (existing and new) without re-review. Conversation, Message, and Lead Gen Form ads don't support dynamic UTM params, and any static UTMs baked into a creative's own landing-page URL should not reuse the same keys, or they'll collide.