Cheetah Digital

Datafly Signal delivers events server-to-server to Cheetah Digital by Marigold (Cheetah Messaging / Marigold Engage) using the Standard Event Trigger API. Each delivered event fires a triggered campaign and loads the recipient’s data into your Cheetah target list, with no client-side pixel and no exposure to ad blockers or browser tracking prevention.

Prerequisites

Before configuring Cheetah Digital in Signal, you need a Cheetah Messaging account with API access and a configured API Post.

Obtain your Consumer Key and Consumer Secret

  1. In the Cheetah Messaging console, open Administration and locate your API user.
  2. Note the Consumer Key and Consumer Secret. These are your OAuth 2.0 credentials.

Cheetah Messaging uses the OAuth 2.0 Password Credentials grant. The Consumer Key is sent as the OAuth username and the Consumer Secret as the OAuth password.

Identify your regional API base URL

Your tenant is hosted in one region. Use the matching base URL:

  • North America: https://api.eccmp.com
  • Europe: https://api.ccmp.eu
  • Japan: https://api.marketingsuite.jp

Create an API Post

The Standard Event Trigger fires against a pre-configured API Post, which links a triggered campaign to a target list.

  1. In the console, create an API Post for the campaign you want Signal events to trigger.
  2. Map the target-list columns the campaign uses (e.g. email, name_first, name_last).
  3. Note the API Post’s Object Reference ID — this is your API Post ID.
⚠️

Field names in the payload must use the system Column Name, not the Display Name. Mismatched names are rejected with a 400 error.

Configuration

FieldRequiredDescription
API Base URLYesRegional API host (https://api.eccmp.com, https://api.ccmp.eu, or https://api.marketingsuite.jp).
Consumer KeyYesOAuth username for your Cheetah Messaging API user.
Consumer SecretYesOAuth password. Stored encrypted.
API Post IDYesObject Reference ID of the API Post that defines the triggered campaign and target list.

Configure in Signal

  1. In Signal, open Integrations and add Cheetah Digital.
  2. Enter your API Base URL, Consumer Key, Consumer Secret, and API Post ID.
  3. Attach the integration to a pipeline and select the Default preset.
  4. Save and enable the pipeline.

API Endpoint

Signal authenticates and delivers in two stages.

Token request

POST {API Base URL}/services2/authorization/oAuth2/Token
Content-Type: application/x-www-form-urlencoded

grant_type=password&username={Consumer Key}&password={Consumer Secret}

The response returns an access_token (default 8-hour lifetime). Signal caches it and refreshes automatically on expiry.

Event delivery

POST {API Base URL}/services2/api/Recipients
Authorization: Bearer {access_token}
Content-Type: application/json

Identity Signals

Signal sends recipient identity on every event so Cheetah can match or create the contact:

  • email — primary match key (required).
  • email_sha256 — normalised SHA-256 hash (trim + lowercase + sha256) for hashed matching.
  • name_first / name_last — contact name.
  • mobile_phone — phone in E.164.
  • pk_recip_id — your stable user ID.
  • opt_status — derived from the visitor’s marketing-consent decision (OPTIN / OPTOUT / UNKNOWN).

Consent gating reads from your CMP’s canonical marketing category, so it works with any consent platform once categories are classified in Signal Settings.

Event Mapping

The Default preset maps Signal’s GA4-style snake_case events to recipient column names. High-volume page events are disabled, and unmapped events are dropped.

Signal eventCheetah triggerKey fields
Signed Upsigned_upsignup_method, signup_source
Order Completedorder_completedorder_no, order_total, currency, promotion_code
Product Viewedproduct_viewedlast_product_id, last_product_name, last_product_category

Example

A Datafly.js call on your site:

datafly.track('Order Completed', {
  order_id: 'ORD-10293',
  revenue: 89.99,
  currency: 'GBP',
  coupon: 'SUMMER10'
});

Resulting payload Signal delivers to Cheetah Digital:

{
  "apiPostId": "your-api-post-id",
  "data": {
    "email": "jane@example.com",
    "email_sha256": "5e8848…",
    "name_first": "Jane",
    "name_last": "Doe",
    "mobile_phone": "+447700900123",
    "pk_recip_id": "user-7781",
    "opt_status": "OPTIN",
    "order_no": "ORD-10293",
    "order_total": 89.99,
    "currency": "GBP",
    "promotion_code": "SUMMER10"
  }
}

Testing

  1. In Signal, open the Event Debugger and send a test Order Completed event through the pipeline.
  2. Confirm the delivery shows a 200 response from /services2/api/Recipients.
  3. In the Cheetah console, open the API Post’s target list and confirm the recipient was created or updated.
  4. Confirm the triggered campaign fired for the recipient.

Troubleshooting

SymptomLikely causeFix
401 UnauthorizedExpired or invalid token; wrong Consumer Key/SecretVerify credentials; Signal refreshes tokens automatically, so a persistent 401 means bad credentials or wrong region URL.
400 Bad RequestField uses Display Name instead of Column Name, or unknown columnAlign blueprint targets with the API Post’s target-list Column Names.
404 Not FoundWrong regional base URL or unknown API Post IDConfirm API Base URL matches your tenant region and API Post ID is correct.
Recipient created but no sendAPI Post not linked to an active triggered campaignCheck the API Post’s campaign configuration in the console.