Update a tracking tag
Changes a pixel's settings, such as its name or automatic matching, on platforms that allow edits.
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 501.
OpenAI Ads answers 501: its API has no pixel update or delete route
(POST/PATCH/PUT/DELETE /v1/conversions/pixels/{id} answer 405
"Invalid method"); rename a pixel in OpenAI Ads Manager.
Google Ads (googleads): the only writable tag setting is
autoTagging (the account's gclid auto-tagging, without which the
tag cannot attribute conversions to ad clicks). Google rejects every
write to conversion_tracking_setting for our developer token
(SERVICE_ACCESS_DENIED), so the tag id and cross-account ownership
stay managed in the Google Ads UI.
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.
LinkedIn (linkedinads): only firstPartyCookieStatus (first_party_cookie_enabled or
first_party_cookie_disabled), which sets the tag's first-party tracking. It applies to
every ad account using the tag. empty answers 400: LinkedIn has no unset state.
Pinterest (platform pinterestads): 501. Pinterest API v5 has no endpoint to edit a tag:
its spec lists only POST/GET on conversion_tags and GET on conversion_tags/{id}, and
PATCH or PUT on conversion_tags/{id} answer 405 "Method not allowed". Set enhanced match
at creation (automaticMatchingFields) or change it and the name in Pinterest Ads Manager.
TikTok: name, enableAutomaticMatching + automaticMatchingFields (folded onto
TikTok's five switches: em, ph, fn/ln, ct/st/zp/country, external_id; ge and db answer
400), and first-party cookies via enableFirstPartyCookies or firstPartyCookieStatus
(enabled or disabled). TikTok has no pixel delete: the endpoint is absent from its API and
POST /pixel/delete/ answers 404.
Pinterest (platform pinterestads): 501. Pinterest API v5 only creates, lists and reads
tags (no update endpoint); rename a tag or change its enhanced match settings in Pinterest
Ads Manager.
X Ads (platform xads): only firstPartyCookieStatus (first_party_cookie_enabled or
first_party_cookie_disabled), which sets the pixel's first-party cookie setting. X has
no API to rename or delete a pixel.
Authorization
bearerAuth API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.
In: header
Path Parameters
Pixel id.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
At least one updatable field is required; the route returns 400 if the body is empty or names a field the tag's platform cannot update.
Response Body
application/json
application/json
application/json
application/json
import Zernio from '@zernio/node';const zernio = new Zernio({ apiKey: process.env.ZERNIO_API_KEY });const { data } = await zernio.trackingtags.updateTrackingTag({ path: { accountId: 'account_abc123', tagId: 'tag_abc123', }, body: { adAccountId: 'adaccount_abc123', name: 'Example', enableAutomaticMatching: false, },});console.log(data);{ "platform": "metaads", "tag": { "id": "string", "siteTagId": "string", "events": [ { "id": "string", "name": "string", "type": "string", "siteEvent": "page_view", "siteEventId": "string", "status": "string", "defaultValue": 0, "currency": "string", "clickWindowDays": 0, "viewWindowDays": 0, "urlContains": "string", "alwaysUseDefaultValue": true, "primary": true, "countingType": "one" } ], "name": "string", "platform": "metaads", "kind": "pixel", "status": "active", "code": "string", "lastFiredTime": 0, "isUnavailable": true, "installed": true, "creationTime": 0, "automaticMatchingFields": [ "em" ], "ownerBusinessId": "string", "ownerAdAccountId": "string", "autoTagging": true }}Get a tracking tag
Shows one pixel or measurement tag in full, including its install snippet, when it last fired and its conversion events. Returns the full tag record including the base-code `code` snippet, `lastFiredTime`, `ownerBusinessId`, `isUnavailable`, etc. Meta only (platform `metaads`); other platforms return 501. OpenAI Ads (`openaiads`): `tagId` is the pixel's API id (`cds_...`) or its `pixel_id`. OpenAI documents no single-pixel read, so the tag is resolved from the pixel list; the response adds `code` (the official `oaiq` base code plus `page_viewed`) and `events` (the conversion event settings whose source is this pixel). `siteTagId` is the `pixel_id` the site and the Conversions API send; `id` is what event settings reference. LinkedIn (`linkedinads`): `code` is LinkedIn's base code, `lastFiredTime` is the most recent callback across the tag's domains (unix seconds, null when it never fired) and `events` lists the ad account's conversion rules. `siteEvent` and `siteEventId` are set only on rules a page can fire (event-specific Insight Tag rules: not Conversions API rules, no URL match rules). `adAccountId` picks which ad account's rules to read; it defaults to the account that created the tag. Pinterest (platform `pinterestads`): returns the tag with Pinterest's own `code` snippet and `lastFiredTime`. Without `adAccountId` Zernio finds the ad account that owns the tag (404 when no readable ad account holds it). TikTok: read from `/pixel/list/?pixel_id=`; `code` is TikTok's `pixel_script`, `events` the pixel events. `lastFiredTime` is not available on TikTok. Without `adAccountId` the connection's advertisers are searched. X Ads (platform `xads`): `tagId` is the X ad account id. Returns the pixel id as `siteTagId`, the X Pixel base code as `code`, and the conversion events the site can fire in `events` (each with `siteEventId` = `tw-<pixel>-<event>`, also the `event_id` of the X Conversions API). An ad account without a pixel answers 400.
Get aggregated event stats
Shows event counts or health for a tracking tag so you can confirm it is firing, where the platform reports them. Meta: aggregated counts (`GET /{pixel_id}/stats`), rows passed through as-is; their shape depends on the `aggregation` requested. Platforms without a stats API answer 501. OpenAI Ads: the recent-events stream (`GET /conversions/events`), the latest (at most 50) events received in the last 15 minutes, one row per event (`event_type`, `api_channel`, `event_timestamp_ms`, `received_at_ms`, ...). Both sources appear: `api_channel` is `pixel_sdk` for the on-site Pixel (including its `openai::sdk_init` load event) and `server_to_server` for Conversions API events. It is a fixed window: `startTime`/`endTime` answer 400. Use it to confirm an install fires; attributed totals come from ads analytics. Accounts not enabled for the stream answer 422 `feature_not_available`. LinkedIn (`linkedinads`): health rows rather than counts, since LinkedIn exposes no per- event fire counts: one row per site domain the tag has seen (`kind: domain`, `domainName`, `lastFiredTime`, `creationTime`, `blocked`), capped at the 100 domains that fired most recently (newest first; a tag seen on more domains drops the least recent), and one per conversion rule (`kind: conversion_rule`, `id`, `name`, `type`, `conversionMethod`, `status`, `lastFiredTime`). Times are unix seconds; `startTime`/`endTime` are ignored. Pinterest (platform `pinterestads`): rows typed by `type`: one `tag` row (`lastFiredTime`, `status`, `enhancedMatchStatus`), `event` rows for the conversion events Pinterest has seen on the tag (`source` is `page_visit` or `ocpm_eligible`, the latter meaning the event can be optimized for, with the neutral `siteEvent` where one maps), and `event_quality` rows with the ad account's Event Quality Score for tag events over the last `1d` and `14d` (ad-account level, not per tag; an account Pinterest cannot score yet carries `error` instead). Pinterest has no time-bounded counts, so `startTime`/`endTime` answer 400. TikTok: per-event counts from `/pixel/event/stats/` (`total_count`, `browser_event_total_count`, `server_event_total_count`, `attributed_count`, `preview_count`), bucketed by UTC day. Defaults to the last 7 days; at most 30 days per request. `aggregation` is not accepted. X Ads (platform `xads`): X has no event counts per pixel or event (only campaign-level conversion metrics). Each row is one web event tag with its `status` (TRACKING, UNVERIFIED, DORMANT), `lastTrackedTime` (unix seconds, null if never seen), `autoCreated` and, for events the site can fire, `siteEventId`.