Documentation Index
Fetch the complete documentation index at: https://docs.agentic.scope3.com/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Scope3’s Conversion API follows the AdCPlog_event specification for server-to-server conversion measurement. This enables you to:
- Send purchase, sign-up, and other conversion events
- Attribute conversions back to ad impressions and clicks
- Optimize campaigns based on actual outcomes
Prerequisites
Before sending conversion events, you’ll need two things:1. Configure an Event Source
Use thesync_event_sources tool to register an event source for your account. This gives you an event_source_id to include in all event requests:
2. Get Your API Key
- Visit agentic.scope3.com/api-keys
- Sign up or log into your Scope3 account
- Generate a new API key (starts with
scope3_)
Endpoints
- Production
- Staging
Request Format
Minimal Example (Purchase with Click ID)
Full Example (with Identity Tokens)
Request Fields
Top-Level
| Field | Type | Required | Description |
|---|---|---|---|
event_source_id | string | Yes | Event source ID configured via sync_event_sources |
events | Event[] | Yes | Events to log (min 1, max 10,000) |
test_event_code | string | No | Validate events without affecting production data (see Test Events) |
Event Object
| Field | Type | Required | Description |
|---|---|---|---|
event_id | string | Yes | Unique identifier for deduplication. Max 256 chars. |
event_type | string | Yes | Event type (see supported types below) |
event_time | string | Yes | ISO 8601 timestamp when the event occurred |
user_match | object | No | User identification data (see below) |
custom_data | object | No | Event-specific data (value, currency, items) |
action_source | string | No | Where the event occurred (website, app, in_store, etc.) |
event_source_url | string | No | URL where the event occurred |
UserMatch Object
| Field | Type | Description |
|---|---|---|
click_id | string | Click identifier from the landing page URL |
click_id_type | string | Type of click ID. For Scope3 ads, use sc3clid. Also accepts gclid, fbclid, ttclid, etc. |
uids | UID[] | Pre-resolved universal IDs (see Supported Identity Providers) |
CustomData Object
| Field | Type | Description |
|---|---|---|
value | number | Monetary value of the event |
currency | string | ISO 4217 currency code (e.g., “USD”, “EUR”) |
order_id | string | Unique order or transaction identifier |
num_items | integer | Number of items in the event |
contents | Content[] | Per-item details: id, quantity, price |
Supported Event Types
Commerce Events
Commerce Events
| Event Type | Description | |------------|-------------| |
purchase |
User completes a purchase | | add_to_cart | User adds item to cart | |
initiate_checkout | User begins checkout | | add_payment_info | User
adds payment info |Lead Events
Lead Events
| Event Type | Description | |------------|-------------| |
lead | Lead
generated | | complete_registration | User completes registration | |
subscribe | User subscribes |Engagement Events
Engagement Events
| Event Type | Description | |------------|-------------| |
page_view |
User views a page | | view_content | User views content |Attribution Methods
Scope3 supports two attribution methods depending on your use case:| Method | Use Case | How It Works |
|---|---|---|
| Click Attribution | Online conversions (same session/device) | Pass the sc3clid from the landing page URL |
| Offline Attribution | Cross-device or offline conversions | Pass pre-resolved identity tokens (UIDs) |
Click Attribution (Online)
When a user clicks an ad served through Scope3, we append a uniquesc3clid parameter to the landing page URL:
- Capture the
sc3clidfrom the URL when the user lands - Store it (cookie, session, or database)
- Include it as
user_match.click_idwithclick_id_type: "sc3clid"when sending conversion events
Offline Attribution (Cross-Device / Offline)
For conversions that happen on a different device or offline, use pre-resolved identity tokens. These allow Scope3 to match the conversion back to ad exposure even without a click ID. Use cases:- User sees ad on mobile, purchases on desktop
- User sees ad online, purchases in physical store
- CRM/offline sales data upload
Supported Identity Providers
| Type | Description |
|---|---|
rampid | LiveRamp RampID (person-based) |
id5 | ID5 ID (device-based) |
Test Events
Usetest_event_code to validate your integration without affecting production attribution or reporting:
Response Format
Success (200 OK)
Error Responses
| Status | Error | Description |
|---|---|---|
| 400 | Invalid JSON payload | Malformed JSON |
| 400 | Validation error | Missing required fields |
| 401 | Unauthorized | Invalid or missing API key |
| 403 | Access denied | API key doesn’t have access to this event source |
| 415 | Content-Type must be application/json | Wrong content type |
Code Examples
- cURL
- Python
- JavaScript
Best Practices
Always Capture Click ID
Always Capture Click ID
Store the
sc3clid parameter immediately when users land from ads. Use
cookies, session storage, or your database to persist it until conversion.Send Events Server-Side
Send Events Server-Side
Never expose your API key in client-side code. Always send conversion events
from your backend server.
Include Transaction ID
Include Transaction ID
Include a unique
event_id field for each event to help with deduplication.
This prevents duplicate conversions from being counted.Use Accurate Timestamps
Use Accurate Timestamps
Send the actual event time as an ISO 8601 string, not the time you’re sending
the request. This ensures accurate attribution windows.
Test in Staging First
Test in Staging First
Use the staging endpoint (
ping.staging.scope3.com) to validate your
integration before sending events to production.Next Steps
Outcomes Agents
Configure optimization agents to use your conversion data
Campaign Setup
Set up campaigns to optimize for conversions
Reporting
Analyze conversion performance across campaigns
Authentication
Learn more about API key management