Inventory Intelligence

Mapping Scope3 data onto the supply seen by an ad tech platform

The Inventory Intelligence API allows ad tech platforms to map Scope3 data onto the supply that they see on a daily basis. The ATP will send Scope3 a file with the inventory keys and volume that they see on a daily basis. Scope3 will map these keys to inventory metrics and send the data back to the ATP through either a flat file or through a real-time data provider integration.


Supply (inbound)

Managing Cardinality

The objective should be to send 99% of total volume but a fraction of the total cardinality, ideally with no more than 100M rows of data per day.

Suggestions for reducing cardinality:

  • Set a threshold (a HAVING clause or equivalent) to remove the long tail of low-volume tuples (for instance, having fewer than 10 impressions per row)
  • Combine low-volume countries into the default WW country, or exclude them entirely
  • Check for publishers that implement placements or GPIDs incorrectly

Placement IDs

Scope3 uses global_placement_id as its primary key to identify placements. However, due to sparse and inconsistent support for GPID, we also request the placement ID that is sent through the supply chain. If these are the same, that's great; if not, we can use gpid-placement as a map to increase coverage.

Domain and App Store Aliases

Scope3 maintains various mappings of domains, subdomains, ad serving domains, masked domains, and App Store aliases. When we receive an inventory_id we will attempt to find a good match to a property.

Traffic Metrics

The required metric is ad_opportunities which should represent the total number of unique ad slots available for auction from a particular inventory key.

If there is throttling logic that rejects traffic (for instance, a QPS threshold), this can be modeled by adding the ad_opportunities_processed metric.

ATP Supply File Format (sent to Scope3)

Both the cloud bucket and File Upload API methods accept a CSV file. See here for full CSV schema details.

FieldRequiredExampleComments
utc_datetime2023-08-01YYYY-MM-DD for monthly aggregation
atpadtech.aiThe ad tech platform this data applies to—defaults to the uploading organization.
countryUSTwo-letter country code (may use WW for long-tail / low-volume countries)
seller_id45dc99baThe seller's schain identifier (should exactly match your sellers.json file)
inventory_idnytimes.comThe domain or app ID of the property
is_apptrueIs this inventory ID an app?
global_placement_idtopleft_300_250The GPID of the placement on the property
seller_placement_id2342810The placement ID sent by the seller (may be the same as GPID)
max_placement_size300x600Helpful to map placements to page geometry
device_typephoneOne of: phone, tablet, pc, tv, smart-speaker
integration_methodopenrtbOne of: openrtb, mediation, sdk, tag, prebid, google-ob
ad_opportunities123456789Number of auctioned ad slots received (requests x ad slots per request)
ad_opportunities_processed22321322Number of ad slots processed, for instance, that pass QPS throttling logic

Flat file (outbound)

Inventory Intelligence File Format (sent to ATP)

This file will have a row for each unique {seller_id, inventory_id, is_app, global_placement_id, seller_placement_id, country} tuple in the input file.

FieldExampleComments
seller_id45dc99baMaps to supply input
inventory_idnytimes.comMaps to supply input
is_apptrueMaps to supply input
seller_placement_id2342810Maps to supply input
global_placement_idtopleft_300_250Maps to supply input
countryUSMaps to supply input
segmentsgmp_eligible, gmp_plus_eligible, ok_buyer_policy_1A comma-separated list of all the segments for this tuple
value_map{"climate_risk_percentile": 26}A JSON object with key:value pairs
modeledtrueIf the inventory or seller does not match a property or ATP, this will be false. This is an important QA metric to ensure coverage and full delivery.

Real-time data provider (outbound)

The Scope3 RTDP is a RESTful API that provides low latency (sub 10 ms) access to the Inventory Intelligence dataset.

Authentication

You will need an authentication key to use the real-time data provider (RTDP). This is different than the API keys used for the primary Scope3 API. Pass this key into a header with the key x-scope3-auth.

Endpoints

We operate servers in several geographical regions globally. We suggest testing latencies from each of your data centers by hitting our /status endpoint.

EndpointLocation
rtdp.scope3.comGlobal

Regional-specific endpoints are available if needed.

Input Parameters

The RTDP takes in parameters using query string key-value pairs or through a JSON body that confines to the ORTB spec.
When sending an ORTB-compliant body, not all fields are required. We will only parse out the following parameters.

KeyExample ValueORTB Field
domainyahoo.comsite.domain
appIdcom.accuweather.androidapp.bundle
sellerIdifW4ft3gapp.publisher.id OR site.publisher.id
sellerPlacementIdrKbSuikdwy9UPfEwBcR8Pf6zsite.id
gpid/22888152279/us/yhp/main/dt/us_yhp_main_dt_top_centerimp[].ext.gpid
countryUSdevice.geo.country

Output Response


KeyExample ValueComment
segments["gmp_plus_eligible", "gmp_eligible"]The array of segments.
ttlSeconds86400How long the RTDP client should cache this response
statusmodeledOptions:
modeled, missing, error

Custom endpoints

Scope3 may be able to support custom parameters. Please get in touch with us to discuss thisfurther.

Segments

Custom segments may be defined through Policies (business rules that set the logic for inclusion) in the CSP user interface. Based on the configured segment identifier, these segments will be added to the response.

Segments may also be generated directly from datasets available on the Scope3 platform.

Platform Segments

SegmentDescription
gmp_eligibleIs this inventory key below the climate risk threshold? (Equivalent to the gmp_eligible flag in the v1 measure API)
gmp_plus_eligibleDoes this inventory meet the GMP+ standard (coming Q2 2024)

Platform Key-Values

KeyValue RangeDescription
climate_risk_percentile0-99The climate risk percentile vs benchmark