Set ad tracking tags
Unified update. Send only the fields for the ad's platform:
- Meta:
urlTags(array of {key,value}). Meta creatives are immutable, so this rebuilds the creative and repoints the ad. By DEFAULT we PRESERVE the existing creative verbatim (re-post its object_story_spec + the new url_tags, reusing the image), so you sendurlTagsALONE — no need to read back headline/body/CTA.creative(headline, body, callToAction, linkUrl, imageUrl) is OPTIONAL and only needed to rebuild explicitly, or for SHARE / page-post / dark / asset_feed creatives whose object_story_spec Meta strips (those return 422 asking forcreative). - Google:
trackingUrlTemplateand/orfinalUrlSuffix(full template strings; account quota applies). - LinkedIn:
dynamicValueParametersand/orcustomValueParameters(campaign-level Dynamic UTM).
API key authentication - use your Zernio API key as a Bearer token
In: header
Path Parameters
Meta only. Click-URL params appended to a freshly-rebuilt creative.
Meta only. OPTIONAL — omit to preserve the existing creative verbatim (default). Provide it only to rebuild the creative explicitly, or for creatives whose object_story_spec Meta strips.
Google only. Full tracking template (must contain {lpurl}).
Google only. Parse-only key=value params.
LinkedIn only. key -> dynamic value enum (CAMPAIGN_ID, CAMPAIGN_NAME, CREATIVE_ID, ...).
LinkedIn only. key -> static value.
Response Body
application/json
import Zernio from '@zernio/node';const zernio = new Zernio({ apiKey: process.env.ZERNIO_API_KEY });const { data } = await zernio.trackingtags.updateAdTrackingTags({ path: { adId: 'ad_abc123', }, body: { urlTags: [ { key: 'tok_abc123', value: 'string', }, ], creative: { headline: 'string', body: 'Hello, world!', callToAction: 'string', linkUrl: 'https://example.com', imageUrl: 'https://example.com', }, trackingUrlTemplate: 'string', },});console.log(data);{
"error": "Unauthorized"
}Get a tracking tag GET
Returns the full tag record including the base-code `code` snippet, `lastFiredTime`, `ownerBusinessId`, `isUnavailable`, etc. Meta only (platform `metaads`); other platforms return 405. OpenAI Ads has no get-by-id endpoint, so it 405s here too — use `GET /v1/accounts/{accountId}/tracking-tags` (list) instead.
Update a tracking tag PATCH
Partial-update a pixel. Whitelisted fields: `name` (rename), `enableAutomaticMatching`, `automaticMatchingFields`, `firstPartyCookieStatus`, `dataUseSetting`. At least one is required. Returns the re-fetched canonical tag. Meta only (platform `metaads`); other platforms return 405. There is no DELETE — Meta has no API to delete a pixel. To stop using one, unshare it from your ad accounts (`DELETE .../tracking-tags/{tagId}/shared-accounts`) or disable it in Events Manager.