From e16916de45a211745a60dafe01a3045f39e69878 Mon Sep 17 00:00:00 2001 From: rachitm022 Date: Fri, 8 Aug 2025 18:39:46 +0530 Subject: [PATCH 1/4] feat: add default ad selection - platform for dooh and new default for number of direct partners --- defaults/docs-defaults.yaml | 4 ++++ docs/channel_considerations.mdx | 4 ++-- docs/snippets/defaults_ad_platform.mdx | 4 ++++ scope3_methodology/test/test_api.py | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/defaults/docs-defaults.yaml b/defaults/docs-defaults.yaml index 365e3057..7ec64f5b 100644 --- a/defaults/docs-defaults.yaml +++ b/defaults/docs-defaults.yaml @@ -65,6 +65,9 @@ defaults: social: 1000 streaming-video: 1000 web: 1500 + default_count_ad_platforms: + dooh: 6 + search: 1 default_device_by_channel: app: phone audio: phone @@ -120,6 +123,7 @@ defaults: fixed: 0.030000000 mobile: 1.530000000 default_emissions_ad_selection_gco2_per_imp_by_channel: + dooh: 0.003840000 search: 0.001229300 default_emissions_generic_ad_server_gco2_per_imp: 0.000016000 default_emissions_generic_ad_server_gco2_per_imp_by_channel: diff --git a/docs/channel_considerations.mdx b/docs/channel_considerations.mdx index ec22e3b5..dbed5ebb 100644 --- a/docs/channel_considerations.mdx +++ b/docs/channel_considerations.mdx @@ -204,8 +204,8 @@ See [Corporate Emissions](./corporate_model) ### Ad Selection Emissions -On the contrary to other digital channels, in DOOH no standard like ads.txt exist to allow DOOH media owners' to disclose the vendors used in their monetization waterfall, making [mapping the ad tech graph](./publisher_model#mapping-the-ad-tech-graph) more difficult. -We are currently developping alternative ways for DOOH media owners to share this information with us. Until then, ad selection emissions will be considered 0. +Unlike other digital channels, DOOH lacks a standard such as ads.txt that enables media owners to disclose the vendors involved in their monetization waterfall. This makes [mapping the ad tech graph](./publisher_model#mapping-the-ad-tech-graph) more challenging. +We encourage DOOH media owners to share this information with us via [Ad Stack Declaration](https://docs.scope3.com/docs/ad-stack-declaration). Where no declared data is available, and after consultation with the media owner, we assume the presence of one ad server and five SSPs called by that ad server for each ad request. ### Creative Data Transfer Emissions diff --git a/docs/snippets/defaults_ad_platform.mdx b/docs/snippets/defaults_ad_platform.mdx index e0bc243a..41ce08f9 100644 --- a/docs/snippets/defaults_ad_platform.mdx +++ b/docs/snippets/defaults_ad_platform.mdx @@ -17,6 +17,10 @@ default_emissions_generic_ad_server_gco2_per_imp_by_channel: social: 0.0043 default_emissions_ad_selection_gco2_per_imp_by_channel: search: 0.0012293 + dooh: 0.00384 +default_count_ad_platforms: + search: 1 + dooh: 6 generic_creative_ad_server: emissions_per_creative_request_per_geo_gco2_per_imp: diff --git a/scope3_methodology/test/test_api.py b/scope3_methodology/test/test_api.py index e1c25f3d..5e74d5dc 100644 --- a/scope3_methodology/test/test_api.py +++ b/scope3_methodology/test/test_api.py @@ -240,7 +240,7 @@ def test_startup(self): ) docs_defs = docs_defaults - self.assertEqual(len(docs_defs), 45) + self.assertEqual(len(docs_defs), 46) def test_get_all_con_networking_connection_device_fixed_defaults(self): """Test get_all_networking_connection_device_defaults returns expected output""" From 6fd0e6df9c9aa9e6faca8c0aaa25a56ffa29c4b6 Mon Sep 17 00:00:00 2001 From: rachitm022 Date: Fri, 8 Aug 2025 18:41:05 +0530 Subject: [PATCH 2/4] fix name --- defaults/docs-defaults.yaml | 2 +- docs/snippets/defaults_ad_platform.mdx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/defaults/docs-defaults.yaml b/defaults/docs-defaults.yaml index 7ec64f5b..a483749d 100644 --- a/defaults/docs-defaults.yaml +++ b/defaults/docs-defaults.yaml @@ -65,7 +65,7 @@ defaults: social: 1000 streaming-video: 1000 web: 1500 - default_count_ad_platforms: + default_count_ad_platform: dooh: 6 search: 1 default_device_by_channel: diff --git a/docs/snippets/defaults_ad_platform.mdx b/docs/snippets/defaults_ad_platform.mdx index 41ce08f9..6456ff70 100644 --- a/docs/snippets/defaults_ad_platform.mdx +++ b/docs/snippets/defaults_ad_platform.mdx @@ -18,7 +18,7 @@ default_emissions_generic_ad_server_gco2_per_imp_by_channel: default_emissions_ad_selection_gco2_per_imp_by_channel: search: 0.0012293 dooh: 0.00384 -default_count_ad_platforms: +default_count_ad_platform: search: 1 dooh: 6 From 08916855a192bd42bd0a46a360b83013571e381e Mon Sep 17 00:00:00 2001 From: rachitm022 Date: Fri, 8 Aug 2025 19:51:40 +0530 Subject: [PATCH 3/4] add formula --- docs/calculations.mdx | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/docs/calculations.mdx b/docs/calculations.mdx index 5b8b3e8d..684e7b2d 100644 --- a/docs/calculations.mdx +++ b/docs/calculations.mdx @@ -557,20 +557,24 @@ get_platform_emissions(ad_platform): ad_selection_platform_emissions_gco2_per_imp = 0 data_transfer_bytes = 0 -for platform in placement.ad_platforms: - ad_selection_platform_emissions_gco2_per_imp += get_platform_emissions(platform) - platform_bytes = - platform.average_bid_request_size ?? - default_consumer_device_request_size_bytes[channel] - data_transfer_bytes += default_consumer_device_request_size_bytes[channel] - if platform.sends_client_side_requests: - for bidder in platform.bidders: - bidder_bytes = - bidder.average_bid_request_size ?? - default_consumer_device_request_size_bytes[channel] - data_transfer_bytes += - bidder_bytes x - platform.distribution_rate_by_bidder_by_country[country, bidder] ?? 1 +if channel in ['search', 'dooh']: + data_transfer_bytes = default_count_ad_platform[channel] * default_consumer_device_request_size_bytes[channel] + ad_selection_platform_emissions_gco2_per_imp = default_emissions_ad_selection_gco2_per_imp_by_channel[channel] +else: + for platform in placement.ad_platforms: + ad_selection_platform_emissions_gco2_per_imp += get_platform_emissions(platform) + platform_bytes = + platform.average_bid_request_size ?? + default_consumer_device_request_size_bytes[channel] + data_transfer_bytes += default_consumer_device_request_size_bytes[channel] + if platform.sends_client_side_requests: + for bidder in platform.bidders: + bidder_bytes = + bidder.average_bid_request_size ?? + default_consumer_device_request_size_bytes[channel] + data_transfer_bytes += + bidder_bytes x + platform.distribution_rate_by_bidder_by_country[country, bidder] ?? 1 ``` ### Ad Selection - Data Transfer From 6f125995004101313e5f50e8e6772aecabcf1835 Mon Sep 17 00:00:00 2001 From: rachitm022 Date: Thu, 14 Aug 2025 00:12:03 +0530 Subject: [PATCH 4/4] update default_consumer_device_request_size_bytes for dooh --- defaults/docs-defaults.yaml | 2 +- docs/snippets/defaults_ad_platform.mdx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/defaults/docs-defaults.yaml b/defaults/docs-defaults.yaml index a483749d..e2995b8f 100644 --- a/defaults/docs-defaults.yaml +++ b/defaults/docs-defaults.yaml @@ -60,7 +60,7 @@ defaults: app: 1000 audio: 1000 ctv-bvod: 0 - dooh: 0 + dooh: 1000 search: 150 social: 1000 streaming-video: 1000 diff --git a/docs/snippets/defaults_ad_platform.mdx b/docs/snippets/defaults_ad_platform.mdx index 6456ff70..bf8dbfa6 100644 --- a/docs/snippets/defaults_ad_platform.mdx +++ b/docs/snippets/defaults_ad_platform.mdx @@ -3,7 +3,7 @@ default_consumer_device_request_size_bytes: web: 1500 app: 1000 ctv-bvod: 0 - dooh: 0 + dooh: 1000 audio: 1000 social: 1000 streaming-video: 1000