Zernio
Zernio
API Reference

Pixels & Tracking Tags

List accounts it is shared withGETList tracking tagsGETCreate a tracking tagPOSTGet ad tracking tagsGETGet aggregated event statsGETGet a tracking tagGETSet ad tracking tagsPATCHUpdate a tracking tagPATCHShare with an ad accountPOSTStop sharing with an accountDELETE
Dashboard
llms.txtOpenAPI
OverviewPlatformsAPI ReferenceResources
Pixels & Tracking Tags

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 send urlTags ALONE — 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 for creative).
  • Google: trackingUrlTemplate and/or finalUrlSuffix (full template strings; account quota applies).
  • LinkedIn: dynamicValueParameters and/or customValueParameters (campaign-level Dynamic UTM).

PlatformsMeta
PATCH
/v1/ads/{adId}/tracking-tags

Authorization

bearerAuth
AuthorizationBearer <token>

API key authentication - use your Zernio API key as a Bearer token

In: header

Path Parameters

adId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

Empty
Was this page helpful?

Get a tracking tag

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

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.

urlTags?array<>

Meta only. Click-URL params appended to a freshly-rebuilt creative. Meta dynamic macros ({{ad.id}}, {{campaign.id}}, {{placement}}, ...) are sent through unescaped so Meta expands them; every other character is percent-encoded.

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.

trackingUrlTemplate?string

Google only. Full tracking template (must contain {lpurl}).

finalUrlSuffix?string

Google only. Parse-only key=value params.

dynamicValueParameters?

LinkedIn only. key -> dynamic value enum (CAMPAIGN_ID, CAMPAIGN_NAME, CREATIVE_ID, ...).

customValueParameters?

LinkedIn only. key -> static value.