The Scope3 Real Time Data (RTD) module integrates Scope3’s Agentic Execution Engine to provide real-time audience segments and contextual signals for programmatic advertising. This module enables publishers to leverage Scope3’s AI-driven targeting capabilities directly within Prebid Server auctions.
To enable this module, compile Prebid Server with:
go build -tags scope3_rtd
Or include in your Docker build:
RUN go build -tags scope3_rtd
hooks:
enabled: true
modules:
scope3:
rtd:
enabled: true
auth_key: ${SCOPE3_API_KEY}
timeout_ms: 1000
hooks:
enabled: true
modules:
scope3:
rtd:
enabled: true
auth_key: ${SCOPE3_API_KEY}
timeout_ms: 1000
cache_ttl_seconds: 60
add_to_targeting: false
host_execution_plan:
endpoints:
/openrtb2/auction:
stages:
entrypoint:
groups:
- timeout: 5
hook_sequence:
- module_code: "scope3.rtd"
hook_impl_code: "HandleEntrypointHook"
raw_auction_request:
groups:
- timeout: 2000
hook_sequence:
- module_code: "scope3.rtd"
hook_impl_code: "HandleRawAuctionHook"
auction_response:
groups:
- timeout: 5
hook_sequence:
- module_code: "scope3.rtd"
hook_impl_code: "HandleAuctionResponseHook"
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
enabled | boolean | Yes | - | Enable/disable the module |
auth_key | string | Yes | - | Scope3 API authentication key |
timeout_ms | int | No | 1000 | API request timeout in milliseconds |
cache_ttl_seconds | int | No | 60 | Cache duration in seconds |
add_to_targeting | boolean | No | false | Add segments as GAM targeting keys |
The module automatically detects and forwards available user identifiers:
user.ext.eids[]
with source: "liveramp.com"
user.ext.rampid
fielduser.ext.liveramp_idl
- ATS envelopeuser.ext.ats_envelope
- Alternative envelope locationuser.ext.rampId_envelope
- Additional envelope locationext.liveramp_idl
- Request-level envelopeuser.id
- Publisher user IDdevice.ifa
- Device advertising IDSegments are always available in the response extension:
{
"ext": {
"scope3": {
"segments": ["gmp_eligible", "high_value_user", "sports_fan"]
}
}
}
When enabled, segments are also added as targeting keys:
{
"ext": {
"prebid": {
"targeting": {
"gmp_eligible": "true",
"high_value_user": "true",
"sports_fan": "true"
}
},
"scope3": {
"segments": ["gmp_eligible", "high_value_user", "sports_fan"]
}
}
}
Publishers can use segments for GAM targeting:
// Client-side code to read Scope3 segments
pbjs.getBidResponses().forEach(response => {
const segments = response.ext?.scope3?.segments || [];
// Forward to GAM targeting
});
Access segments from the auction response:
// Server-side handling
segments := response.Ext["scope3"]["segments"]
// Forward to your ad server
The module logs important events at different levels:
Example log entries:
INFO: Scope3 RTD: Fetched 3 segments for user
WARN: Scope3 RTD: API timeout after 1000ms
INFO: Scope3 RTD: Cache hit for key abc123
timeout_ms
based on network latencycache_ttl_seconds
for less frequent updatesThe module respects privacy signals:
For technical support:
bokelley@scope3.com