Media Delivery

Upload media delivery data to share with partners

Use Cases for the Media Delivery Schema

The Media Delivery API uploads information about transacted impressions into the Scope3 system for modeling and inclusion in reports, dashboards, and other analytic tools.

The Media Delivery guide can also be used effectively for Creative Measurement.

Advertiser Reporting

Advertisers that have delivery logs from their DSP (for instance, REDS from TTD), ad server (for instance, GCM logs), or other source of exposure data can use the Media Delivery API to add these campaigns to their Scope3 dashboard, the emissions simulator, and other Scope3 tools.

Client Campaign Reporting

Publishers, media owners, and platforms can use the Media Delivery API to upload delivery logs from their ad server to create dashboards and reports for their internal teams and (if desired) their clients.

Getting Started

To use the Media Delivery schema, you will need to gather delivery data, configure field mappings, and send the data to Scope3. This process can be managed using the Integrate tool in the CSP.

Once data has been uploaded and approved, it will be processed through the measurement API. The results will be available for reporting in the CSP and can also (through a configuration in the Integrate tool) be pushed back into a cloud bucket for use in your proprietary systems.

Overview of the Input Format

Below are the key fields for the Media Delivery schema. Many fields can be added to refine the measurement—see the full input schema documentation and the Data Dictionary for more information.

FieldDescriptionExample
row_identifierThis will be used on the response to map back to this row, eliminating the need to pass back all fields.

The field must be unique.
asdfa823
utc_datetimeThe date and hour of the impression. We recommend sending hourly data to enable accurate emissions calculations, as the grid mix changes significantly throughout the day. Hourly data also allows reporting on local time zones.2023-08-14 01:00:00
inventory_idThe domain or app ID (see below for DOOH)nytimes.com
global_placement_idThe global placement ID provided by the publisher.
This is important because ad stack and formats often vary significantly across placements
top_left_300_250
countryThe two-letter country code where the impression was deliveredFR
device_typeThe type of device that viewed the impressionphone
networkThe network that the consumer device used to view the impressionfixed
campaign_idThe ID of the campaign to report on1234
campaign_nameThe name of the campaign to report onBig Q1 promotion
impressionsThe number of impressions delivered with these characteristics1823821
video_sizeThe dimensions of the provided input video
video_durationThe duration of the provided input video

DOOH Input Format

For DOOH, media_owner is a required field to map screen IDs properly. The venue_category is recommended as well. Plays or impressions are both accepted inputs.

FieldDescriptionExample
utc_datetimeThe date and hour of the impression. We recommend sending hourly data to enable accurate emissions calculations, as the grid mix changes significantly throughout the day. Hourly data also allows reporting on local time zones.2023-08-14 01:00:00
inventory_idThe screen IDsydney-north-18
media_ownerThe media owner that owns the screenJC Decaux AU
venue_categoryThe type of screen — used for screens that have incomplete databus-shelter
campaign_idThe ID of the campaign to report on1234
campaign_nameThe name of the campaign to report onBig Q1 promotion
playsThe number of plays delivered with these characteristics (can also be impressions)182821

Green Media Product fields

To designate an impression as a GMP, use the is_gmp field. Optionally, set the compensation rate using gmp_compensation_rate (0 means "no compensation"; 1 means "compensate for 100% of emissions; greater than 1 would over-compensate).

FieldTypeDescriptionExampleFor GMP reporting
utc_datetimestringThe date of the impression. The hour is not required, but hourly data enables reporting on local time zones. We recommend sending hourly data for the most accurate emissions calculations, as the grid mix changes significantly throughout the day. Example: 2023-08-14 01:00:00. 2023-08-14Needed
impressionsintegerNumber of delivered impressions1000Needed
inventory_idstringThe domain, app ID, screen identifier, or podcast namehttp://nytimes.com/At least one of: inventory_id, app, or domain
appstringcom.nytimes.androidAt least one of: inventory_id, app, or domain
domainstringhttp://nytimes.com/At least one of: inventory_id, app, or domain
countrystringThis is the country ISO 3166-2 Alpha-2- or an Alpha-3 code,
e.g., USA or a country name
USNeeded
deal_idstringRequired if deal_name is provideddeal_idNeeded
brandstringBrand nameHasbroNeeded
is_gmpbooleanDesignate an impression as a GMP.
It can optionally be set at the account level
trueNeeded if not set at account level
gmp_compensation_ratefloatGMP compensation rate.
0 means no compensation;
1 means compensate for 100% of emissions;
greater than 1 would over-compensate.
It can optionally be set at the account level
1Needed if not set at account level
device_typestringThe type of deviceHighly recommended
seller_domainstringCanonical seller domainHighly recommended
global_placement_idstringPrimary key to identify placements/1111/homepage#728x90Highly recommended

Overview of the Output Format

Output responses are configurable. Media Delivery responses can contain supplied input fields and emissions measurement fields. Response configuration is done in the Integrate UI.

Available measurement response fields are:

FieldDescriptionExample
row_identifierThe same row identifier that was passed into the requestasdfa823
inventory_coverageHas the row successfully been modeled. If false then no emissions results will be available for this row.modeled
total_emissions_gramsTotal emissions in grams is the sum of ad_selection_emissions_grams, media_distribution_emissions_grams and creative_delivery_emissions_grams

In grams of CO₂e.
0.012
compensated_emissions_gramsThe number of emissions compensated based on GMP rules0.0028
ad_selection_emissions_gramsAd tech including servers and cloud computing; analytics; network traffic; storage; data providers; and vendor overhead. In grams of CO₂e.0.005
media_distribution_emissions_gramsMedia delivery including CMS; CDNs and hosting services; publishing overhead including employee and office expenses; data transfer. In grams of CO₂e.0.0012
media_distribution_consumer_device_emissions_gramsMedia delivery consumer device emissions. In grams of CO₂e. These emissions are not included in the total_emissions_grams0.012
creative_delivery_emissions_gramsThe emissions related to delivering the creative to a display surface.0.0065
creative_delivery_consumer_device_emissions_grams Creative delivery of consumer device emissions. In grams of CO₂e. These emissions are not included in the total_emissions_grams0.012
compensation_providerApplicable when compensating for delivered mediacarbon direct
climate_risk_compliantImpressions are marked climate risk if inventory either has extremely high gCO₂e when compared to geo and channel benchmarks or has been flagged as proliferating practices that contribute to high emissionstrue
emissions_breakdownJSON data containing full emissions breakdown{"breakdown":{"adSelection":{"breakdown":{"adPlatform":{"emissions":144.14783646188533}},"total":144.14783646188533},"creativeDelivery":{"breakdown":{"adPlatform":{"emissions":0},"dataTransfer":{"emissions":0.4699678050999183}},"total":0.4699678050999183},"mediaDistribution":{"breakdown":{"corporate":{"emissions":49.018915},"dataTransfer":{"emissions":0.5310414263298526}},"total":49.54995642632985}},"framework":"scope3"}`
coverageJSON data containing full coverage information. Here, it is possible to see what channel and property were matched.{"adFormat":{"value":"leaderboard-728x90-banner","verified":true},"channel":{"value":"web"},"impressions":{"modeled":1000,"processed":0,"skipped":0},"property":{"value":"cnn.com"},"supplyGraph":{"logical":{"averageDepth":3.2,"maxDepth":5,"minDepth":2},"technical":{"averageDepth":3.1,"maxDepth":5,"minDepth":2},"totalCount":256}}
policies[{"compliant":true,"policy":"climateRisk","policyOwner":"Scope3"}]
calculation_errorCorrect data has been provided but a calculation of emissions was not possible.{"message":"Invalid Date. unsupported date: 2024-03-20 00:00 UTC. dates must be on or before: 2024-03-19 00:00 UTC"}
parser_errorInput values are invalidInvalid country code: CURACAO
report_id