Skip to content

Latest commit

 

History

History
64 lines (48 loc) · 4.63 KB

adTechModel.md

File metadata and controls

64 lines (48 loc) · 4.63 KB

Methodology to Measure Emissions from Ad Tech Platforms

The ad tech platform (ATP) model is built around the idea that ATPs integrate with other ATPs as part of a directed graph starting from the publisher. For instance, making a bid request to an SSP will generate many more bid requests to DSPs and possibly to real-time data providers as well.

ATP Request Model

Types of Ad Tech Platform

This model provides templates for various types of ATPs. In the words of Mike Nolet, what matters about ad tech companies is not what they say they are, it's what they actually do that matters. Thus, it doesn't really matter to the model whether a company is an ad network or an exchange or an SSP; what matters is how the company (or, technically, a particular product) integrates with publishers and other ad tech companies and what activities it performs.

The templates in the templates directory is used to pull default values for how a particular product is likely to operate in the above context.

Ad Tech Provider Emissions Model

The ATP model assumes that there will be various requests coming from a publisher (on the left of the below diagram) that will trigger downstream actions (the white boxes) and consume various resources (the blue boxes). ATP Emissions Model

Running the ATP model in verbose mode will show the calculations being used, and they are detailed in the ./scope3_methodology/adtech_model.py file.

Primary vs Secondary Emissions

Our model outputs the primary emissions from an ATP, in other words, what happens within the direct control of the ATP. This includes their scope 1, 2, and 3 emissions except for the emissions due to downstream distribution partners. In the context of a graph, this means we are outputting the emissions from each node, but not following the edges.

We do provide functions that can take a list of the edges (DistributionPartner objects) and will compute the secondary emissions. At Scope3, we first model all of the primary emissions then use our graph of ATP relationships to compute the fully-loaded cost of each type of request.

Usage

Create a YAML file that describes the company you would like to model. The YAML file should look like this:

company:
  name: Criteo
  products:
  - product:
      name: Criteo
      template: network
      identifier: criteo.com
  sources:
  - source:
      facts:
      - fact:
          employees: 2810

The file must have:

  • company.products with at least one product
  • Each product should specify a template from the templates directory
  • Some number of facts, with employees required at a minimum unless you provide full corporate emissions data

To model emissions, make sure defaults have been computed. Then run:

./scope3_methodology/adtech_model.py --verbose [your_model.yaml]

If you want to see how the secondary emissions would be modeled, pass in -p N where N is the number of partners to simulate.

Caveats and Concerns

  • There are not many public data sources available for ad tech companies. Criteo published its first sustainability report in the summer of 2022 - huge kudos! - and we have heard from many other companies that they are working on sustainability projects. Until we have more sources, we will not be able to make the generic model particularly accurate.
  • The data we have, even from private sources, is spotty and inconsistent. This is largely because there has been no reason to gather sustainability data, and also because it can be very difficult to properly measure and allocate compute and other costs to particular products and activities. At AppNexus, we had a full time PhD working on capacity modeling!
  • Ad tech companies are complicated and often have many products. For instance, using Criteo as an example, they have a retail media product, their retargeting network, and also operate as an SSP in certain cases. They recently purchased IPonWeb. There is no way to breakout or reasonably estimate the emissions per request for each of these. In many cases, it isn't possible to know from a particular ad tag or call which of these products is being used.

Scope3 Timeline

Since Scope3 will be the first user of this open source project, we wanted to share our timeline for switching to this model for ad tech companies. Our current plan is:

Week of August 29: Ask a few industry insiders to review this methodology and give feedback

Week of September 5: Update methodology and ask existing ad tech partners to provide updated data

Week of September 12: First cut of ATP data in the Scope3 platform; review impact on existing emissions

Week of September 19: Release if everything looks good