Zernio
APIFor you
Zernio
APIFor you
Platforms

Reddit Ads

Overview

Build

Create an adPromote a post

Target

Targeting

Measure

AnalyticsConversions API

Operate

Manage ads

Reference

Limits & errors
Dashboard
OverviewPlatformsAPI ReferenceResources
Reddit Ads

Conversions API

Send server-side events to a Reddit pixel through the Conversions API, and how Zernio maps each field.


POST /v1/ads/conversions sends server-side events to a Reddit pixel through Reddit's Conversions API.

Before you start

The connection needs the adsconversions permission (Reconnect if it is missing). Pixels are created in Reddit Ads Manager.

destinationId is the pixel id. List the pixels of every synced ad account with GET /v1/accounts/{accountId}/conversion-destinations:

{
  "platform": "redditads",
  "destinations": [
    { "id": "a2_gu5tcd9ah5se", "name": "Acme website", "status": "active", "adAccountId": "a2_gu5tcd9ah5se" }
  ]
}

Send a conversion event

Send each event with at least one match key, such as the rdt_cid click id or an email.

const { data: sent } = await zernio.conversions.sendConversions({
  body: {
    accountId: '66b2e19d8c3f5a7e9d0b1c2d',
    destinationId: 'a2_gu5tcd9ah5se',
    events: [{
      eventName: 'Purchase',
      eventTime: 1798804800,
      eventId: 'order_12345',
      sourceUrl: 'https://shop.example.com/checkout/confirmation',
      value: 25.99,
      currency: 'USD',
      user: {
        email: 'customer@example.com',
        ipAddress: '203.0.113.7',
        userAgent: 'Mozilla/5.0 ...',
        clickIds: { rdt_cid: '1234567890abcdef' }
      }
    }]
  }
});

console.log(sent.eventsReceived);

Response (200):

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

How Zernio maps each event

Zernio fieldReddit fieldNotes
eventNametype.tracking_typePurchase, Lead, CompleteRegistration (as SIGN_UP), AddToCart, AddToWishlist, ViewContent, Search and PageView (as PAGE_VISIT) map to Reddit's standard events; any other name is sent as a custom event with the name kept
eventTimeevent_atUnix seconds. Reddit accepts events up to 7 days old
eventIdmetadata.conversion_idDeduplicates against the same event fired by the pixel
value, currency, itemsmetadataitems become products and item_count
user.clickIds.rdt_cidclick_idThe Reddit click id from the landing URL
user.clickIds.rdt_uuiduser.uuidThe pixel's first-party id (_rdt_uuid cookie)
user.email, user.phone, user.externalIduserHashed with SHA-256 by Zernio: send plain values
user.ipAddress, user.userAgentuserSent as is
actionSourceaction_sourceweb (the default) is WEBSITE, app is APP, anything else OTHER

How it behaves

  • Every event needs at least one match key: rdt_cid, rdt_uuid, an email, a phone, an external id, or the IP address together with the user agent.
  • consent.adUserData: "DENIED" drops the user identifiers, leaving only the click id.
  • Pass testCode to send the batch with Reddit's test_id, so you can check it in Reddit's Events Manager.
  • Larger submissions are sent in chunks of 1,000 events.
  • An event older than 7 days, timed more than an hour in the future (usually a millisecond timestamp) or with no match key is reported in failures[] with code INVALID_EVENT, and the rest still go.
  • A chunk Reddit rejects lands in failures[] with code REDDIT_REJECTED and Reddit's message.

If it fails

ErrorCauseFix
403 with code reconnect_requiredThe connection lacks adsconversionsReconnect Reddit Ads.
403 with code insufficient_permissionsThe connected Reddit user has no role on the ad account that owns the pixelGrant the user a role on that ad account in Reddit Ads Manager.
401 with code reconnect_requiredReddit rejected the tokenReconnect.
400 with code invalid_field_valuedestinationId is not a Reddit pixel idUse an id from conversion-destinations.

Related

  • Send conversions: every field of the request.
  • List conversion destinations: the pixel ids destinationId takes.
  • Create a campaign: campaigns that optimize toward a pixel event.
  • Read ad analytics: spend, impressions and clicks per ad.
Was this page helpful?

Analytics

Read the daily impressions, clicks and spend Zernio syncs from Reddit for an ad, with CTR, CPC and CPM.

Manage ads

Pause, rename, rebudget, rebid, retarget and archive Reddit campaigns, ad groups and ads.

On this page

Before you startSend a conversion eventHow Zernio maps each eventHow it behavesIf it failsRelated