Zernio
APIFor you
Zernio
APIFor you
Platforms

TikTok Ads

Overview

Build

Create adsSpark Ads

Target

TargetingCustom Audiences

Measure

Analytics & insightsPixelsOffline conversions

Operate

Manage adsAd comments

Reference

Limits & errors
Dashboard
OverviewPlatformsAPI ReferenceResources
TikTok Ads

Offline conversions

Send in-store, CRM and call-center conversions to TikTok's Offline Events API with POST /v1/ads/conversions.


Send offline conversions (in-store, CRM, call-center) to TikTok's Offline Events API with POST /v1/ads/conversions on your tiktokads account. Web-pixel events are not sent this way.

Before you start

The connection must have granted TikTok's Offline Events permission. Connections authorized before it must reconnect.

destinationId is an Offline Event Set id. GET /v1/accounts/{accountId}/conversion-destinations lists the event sets of every advertiser on the connection.

Send a conversion event

Each event needs an email or a phone in user.

const { data } = await zernio.conversions.sendConversions({
  body: {
    accountId: '66b2e19d8c3f5a7e9d0b1c2d',
    destinationId: '7057103914977558530',
    events: [{
      eventName: 'Purchase',
      eventTime: 1804150800,
      eventId: 'order_1042',
      value: 59.9,
      currency: 'USD',
      actionSource: 'offline',
      user: { email: 'ana@example.com', phone: '+14155550123' }
    }]
  }
});

Response (200):

{
  "platform": "tiktokads",
  "eventsReceived": 1,
  "eventsFailed": 0,
  "failures": []
}

How fields map

FieldTikTok
destinationIdThe Offline Event Set id, sent as event_set_id.
eventNameSent unchanged as the event name, so a custom name reaches TikTok as is.
eventTimeUnix seconds, sent as an ISO 8601 timestamp.
user.emailLowercased, then SHA-256 hashed.
user.phoneNormalized to E.164 with the leading +, then SHA-256 hashed.
actionSourceweb = website, offline = in_store, phone_call and crm keep their names; app, system_generated and business_messaging = other.
value, currency, itemsSent as the event's properties; items become contents.

How it behaves

  • Events go to TikTok in batches of up to 1,000 against one event set.
  • An event with neither email nor phone is not sent. It is listed in failures with code MISSING_IDENTITY, and the rest are still sent.
  • TikTok accepts or rejects a batch as a whole. When it rejects one, every event in it is listed in failures with TikTok's code and message.

If it fails

ErrorCauseFix
MISSING_IDENTITY in failuresThe event has no usable email or phoneSend user.email or user.phone.
Every event of a batch in failuresTikTok rejected the batchRead the TikTok code and message on each failure.
400 naming destinationIdNo Offline Event Set id was sentPass an id from GET /v1/accounts/{accountId}/conversion-destinations.

Related

  • Send conversions: the unified event shape, every field.
  • List conversion destinations: the Offline Event Sets.
  • Pixels: the TikTok Pixel for web events.
  • Read ad analytics: spend and results per ad.
Was this page helpful?

Pixels

Read, create and configure TikTok Pixels, manage their events, share them through Business Center and install them on Shopify or WordPress.

Manage ads

Pause or resume TikTok campaigns and ads, add ads to an existing ad group, swap creatives, duplicate campaigns and list agency Business Centers.

On this page

Before you startSend a conversion eventHow fields mapHow it behavesIf it failsRelated