IntegrationsIdentity ResolutionLiveRamp

LiveRamp

LiveRamp is the leading independent identity resolution and data collaboration platform, providing the RampID as a privacy-safe, persistent identifier used across the open web and connected TV.

Why route LiveRamp through Datafly Signal

  • Delivery happens server-to-server. Signal sends events to LiveRamp from your own infrastructure rather than from the visitor’s browser, so delivery does not depend on client-side conditions.
  • Email, phone number, first name and last name are hashed before leaving your infrastructure. Signal normalises (trim and lowercase) and applies SHA-256 inside your own deployment, so LiveRamp receives match keys rather than raw personal data.
  • Delivery is batched, rate-limited, and retried. Signal buffers to Kafka, respects the LiveRamp rate limit, and retries on 429 or transient failure rather than dropping the event.
  • One consent decision governs every destination. LiveRamp is gated by the same consent state as the rest of your stack, so a withdrawal applies everywhere at once.

Prerequisites

A LiveRamp Online Conversions API programme

In LiveRamp Console, set up the Online Conversions API (CAPI Hub) with the downstream programmes you want (Meta, Pinterest, Snapchat, TikTok and others) and their platform credentials. Those credentials stay in Console; Signal never sends them.

Your ATS configuration ID

Console > ATS > Web > your configuration > Admin > Placement Details. It forms the endpoint path.

Configuration

FieldTypeRequiredDescription
ats_config_idstringYesThe ATS Web configuration ID of your Online Conversions programme.
api_key, account_id, audience_keyNoNot used: the Online Conversions API takes no API key. Leave blank.

Signal Setup

  1. Navigate to Integrations > Integration Library and find LiveRamp under Identity Resolution.
  2. Click Install, enter the ATS configuration ID and choose a preset (General, E-commerce or Insurance).
  3. Click Install Integration.

API endpoint

POST https://api-ingest-console.liveramp.com/ingest/{ats_config_id}

Events are batched in the events array, up to 500 per request. Allow egress to api-ingest-console.liveramp.com from the network your delivery workers run on.

Event Mapping

Signal eventLiveRamp eventPresets
pagePageViewall
searchSearch (search_string)all
view_itemViewContentall
add_to_cartAddToCartGeneral, E-commerce
begin_checkoutInitiateCheckoutall
add_to_wishlistAddToWishlistE-commerce
add_payment_infoAddPaymentInfoE-commerce, Insurance
generate_lead, quote_requestedLeadall (quote_requested: Insurance)
sign_upCompleteRegistrationall
purchase, policy_renewedPurchaseall (policy_renewed: Insurance)

Every event carries event_id (deduplication), event_time (UNIX seconds), event_source: "web" and event_source_url (the page URL without its query string). Commerce events add custom_data string arrays: value and currency (required on Purchase), order_id, content_ids, content_name, content_type, num_items. App events without a page URL are dropped: LiveRamp requires app_data for them.

{
  "events": [{
    "event_id": "3f1c2a90-7d4e-4b8a-9c61-2f0e5d7a1b22",
    "event_name": "Purchase",
    "event_source": "web",
    "event_source_url": "https://www.example.com/checkout",
    "event_time": 1758500000,
    "user_data": { "ip_address": "203.0.113.7", "user_agent": "Mozilla/5.0 ..." },
    "provider_data": { "fb_click": "fb.1.1758500000000.AbC", "fb_view": "fb.1.1758500000000.123" },
    "custom_data": {
      "email": ["<sha256>"], "phone_number": ["<sha256>"],
      "value": ["279.98"], "currency": ["GBP"], "order_id": ["ORD-001"],
      "content_ids": ["SKU-1", "SKU-2"], "num_items": ["2"]
    }
  }]
}

Identity

FieldSourceFormat
custom_data.email[]identify trait emailSHA-256 of the trimmed, lower-cased address
custom_data.phone_number[]identify trait phoneSHA-256 of the E.164 number without +
custom_data.first_name[], last_name[]identify traitsSHA-256 of the trimmed, lower-cased name
user_data.ip_address, user_agentrequest contextAs LiveRamp documents (plain)
provider_data.*platform click and browser IDs (fbc, fbp, epik, sccid, ttclid, ttp)As collected

Nothing personal is sent in clear. The ATS identity envelope (user_data.envelope) is not collected yet (#1560).

Send LiveRamp events under the advertising consent category: LiveRamp forwards them to advertising platforms.

Verify it’s working

  1. After installing, trigger a test identify from a visitor with email + advertising consent.
  2. In LiveRamp’s dashboard, navigate to Connect > Audiences and locate the configured segment. New record counts should appear within an hour (LiveRamp processes onboarding in batches).
  3. For real-time confirmation, check Signal’s Live Events for a 200 response from the LiveRamp endpoint.

Troubleshooting

SymptomPossible CauseResolution
401 UnauthorizedInvalid API key or secretRe-issue credentials in LiveRamp’s admin panel and update the integration config.
403 Segment not accessibleSegment ID not authorised for this customerConfirm with your LiveRamp account manager that the segment is provisioned for your Customer ID.
Low match rateHashing mismatchBoth sides must use the same hash scheme + normalisation. Confirm SHA-256 lowercased+trimmed is acceptable, or switch to LiveRamp’s required scheme.
Audience size not growingRecords below match thresholdLiveRamp matching requires a minimum population for some destinations. Increase volume or broaden the identifier set sent per record.
Consent-related rejections (EU)Missing per-record consent flagsEnsure your CMP integration is publishing consent state to Signal before delivery.

Visit LiveRamp documentation for full API reference, audience onboarding details, and the Authenticated Traffic Solution (ATS) guide.

See also

  • Amperity — CDP with built-in identity resolution
  • Zeotap — CDP with identity-graph capabilities
  • InfoSum — privacy-preserving collaboration