Zernio
Zernio
API Reference

Conversions API

List account conversion goalsGETList conversion actionsGETList associated campaignsGETList conversion destinationsGETList custom conversion goalsGETCreate website conversion actionPOSTCreate a conversion destinationPOSTCreate a custom conversion goalPOSTGet a conversion destinationGETGet attribution metricsGETGet Event Match QualityGETUpdate account conversion goalsPATCHSet a conversion action primary or secondaryPATCHUpdate a conversion destinationPATCHUpdate a custom conversion goalPATCHDelete a conversion destinationDELETEAssociate campaignsPOSTAdjust uploaded conversionsPOSTRemove associated campaignsDELETERemove a custom conversion goalDELETESend conversion eventsPOST
Dashboard
llms.txtOpenAPI
OverviewPlatformsAPI ReferenceResources
Conversions API

List account conversion goals

Google Ads account-default conversion goals (CustomerConversionGoal), one per category and origin, with biddable (whether the goal is used for bidding and reported in the Conversions column) and the conversion actions that belong to it, each flagged primaryForGoal (primary) or not (secondary). Reads are cached for 10 minutes; when the shared Google quota is exhausted the last successful result is served with stale: true.


PlatformsGoogle
GET
/v1/ads/conversions/goals

Authorization

bearerAuth
AuthorizationBearer <token>

API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.

In: header

Query Parameters

accountId*string

Zernio SocialAccount id (Google Ads)

adAccountId?string

Google customer id. Required when the connection has multiple customers.

Match^\d+$
customerId?string
Deprecated

Alias of adAccountId

Match^\d+$

Response Body

application/json

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.conversions.listAdConversionGoals({  query: {    accountId: 'account_abc123',  },});console.log(data);
{  "customerId": "string",  "goals": [    {      "category": "string",      "origin": "string",      "biddable": true,      "resourceName": "string",      "conversionActions": [        {          "id": "string",          "name": "string",          "status": "string",          "primaryForGoal": true        }      ]    }  ],  "cachedAt": "2019-08-24T14:15:22Z",  "stale": true}
Was this page helpful?

Flexible live insights query

Live, flexible insights query. The account's platform picks the contract: **Meta (facebook/instagram)**: forwards caller-chosen `fields`, `breakdowns` and `filtering` to any Meta insights node and returns Meta's rows verbatim. `objectId` (required) selects the node; `level` sets row granularity. Semantic validation is Meta's: an unknown field or invalid breakdown combination returns a 400 carrying Meta's message. For long ranges or agency-scale accounts prefer the async variant (POST /v1/ads/insights/reports). **Google Ads (googleads)**: raw GAQL passthrough. Send any read-only GAQL SELECT via `query` (campaign/keyword/search-term/geo/demographic/asset/shopping resources, `change_event`, any `segments.*`) and rows come back verbatim (camelCase, counters as strings). Results are paged at a fixed 10,000 rows; follow `paging.nextPageToken` with `pageToken`. `adAccountId` (alias `customerId`) is only needed when the connection has several Google Ads accounts. Semantic validation is Google's: an invalid query returns a 400 carrying Google's message (note: selecting `segments.date` requires a finite date filter). Queries run against Google Ads API **v25**, so write GAQL against the v25 field reference. One exception is translated for backward compatibility: the legacy `campaign.start_date` / `campaign.end_date` (removed by Google in v23) are rewritten to `campaign.start_date_time` / `campaign.end_date_time`, and rows still carry `campaign.startDate` / `campaign.endDate` as `YYYY-MM-DD`. In WHERE, `=`, `<`, `<=`, `>`, `>=`, `BETWEEN` and `IS [NOT] NULL` against a `'YYYY-MM-DD'` literal are translated; any other form returns Google's 400. New code should select the `_date_time` fields directly.

List conversion actions

Lists Google Ads conversion actions on the resolved customer, all types by default. Each action's `tagSnippets` (global site tag + event snippet) is included when Google has them for that action's type, e.g. `WEBPAGE`. Google-only; other platforms return `501`. Requires the Ads add-on. `adAccountId` (alias `customerId`) is optional: when omitted, it is resolved from the connection's accessible Google Ads customers, and the call fails with `400` when more than one is accessible (pass `adAccountId` to disambiguate). The list itself is cached for the quota window (1 hour fresh, up to 7 days last-good; the cache key does not vary on `type`). The response carries `cachedAt` and `stale`, set when a quota-exhausted call falls back to the last-good copy instead of a live read.