The Scope3 RTD (Real-Time Data) Provider enables publishers to leverage Scope3’s Agentic Execution Engine (AEE) for real-time media buying optimization. This module sends complete OpenRTB requests to Scope3 and receives contextual signals that enhance auction targeting.
The Scope3 RTD Provider:
pbjs.setConfig({
    realTimeData: {
        auctionDelay: 100,
        dataProviders: [{
            name: "scope3",
            waitForIt: true,
            params: {
                orgId: "your-org-id"
            }
        }]
    }
});
pbjs.setConfig({
    realTimeData: {
        auctionDelay: 200,
        dataProviders: [{
            name: "scope3",
            waitForIt: true,
            params: {
                orgId: "your-org-id",
                endpoint: "<https://prebid.scope3.com/prebid>",
                timeout: 1500,
                bidders: ["appnexus", "rubicon", "pubmatic"],
                includeKey: "scope3_include",
                excludeKey: "scope3_exclude",
                macroKey: "scope3_macro",
                publisherTargeting: true,
                advertiserTargeting: true,
                cacheEnabled: true,
                cacheTtl: 300000
            }
        }]
    }
});
| Name | Type | Required | Description | 
|---|---|---|---|
| orgId | String | Yes | Your Scope3 organization ID | 
| endpoint | String | No | API endpoint (default: https://prebid.scope3.com/prebid) | 
| timeout | Number | No | Request timeout in milliseconds (default: 1000) | 
| bidders | Array | No | List of bidders to target (default: all auction bidders) | 
| includeKey | String | No | GAM targeting key for include signals (default: “scope3_include”) | 
| excludeKey | String | No | GAM targeting key for exclude signals (default: “scope3_exclude”) | 
| macroKey | String | No | GAM targeting key for macro data (default: “scope3_macro”) | 
| publisherTargeting | Boolean | No | Enable publisher-level targeting (default: true) | 
| advertiserTargeting | Boolean | No | Enable advertiser-level targeting (default: true) | 
| cacheEnabled | Boolean | No | Enable response caching (default: true) | 
| cacheTtl | Number | No | Cache TTL in milliseconds (default: 300000) | 
The Scope3 AEE returns signals in this format:
{
  "aee_signals": {
    "include": ["sports_fan", "auto_intender"],
    "exclude": ["competitor_exposed"],
    "macro": "eyJjb250ZXh0IjogImhpZ2hfdmFsdWUifQ==",
    "bidders": {
      "appnexus": {
        "segments": ["seg1", "seg2"],
        "deals": ["DEAL123"]
      },
      "rubicon": {
        "segments": ["seg3"],
        "deals": []
      }
    }
  }
}
Create GAM line items with key-value targeting using the configured keys:
Include Targeting:
scope3_include (or your configured includeKey)sports_fan, auto_intender, etc.Exclude Targeting:
scope3_exclude (or your configured excludeKey)competitor_exposed, etc.Macro Targeting:
scope3_macro (or your configured macroKey)Creative: 300x250 Banner
Targeting:
  * scope3_include is any of "sports_fan", "auto_intender"
  * scope3_exclude is none of "competitor_exposed"
  * scope3_macro is "eyJjb250ZXh0IjogImhpZ2hfdmFsdWUifQ=="
Processing: Scope3’s AEE analyzes the request context
ortb2Fragments.global.site.ext.dataortb2Fragments.bidder[].user.dataortb2Imp.extUse the Hello World example to verify integration:
Enable Prebid debug mode to see targeting data:
pbjs.debug = true;
Check the browser console for RTD provider logs and bid request modifications.
The Scope3 RTD Provider:
For questions about the Scope3 RTD Provider: