Overview
This guide covers two processing paths for digital ads data: a manual approach using the data collection template, and an automated approach using platform connectors (Fivetran + BigQuery). It also covers how to review results for consistency.
Key use cases
Processing digital ads data from a client-provided spreadsheet
Processing digital ads data directly from ad platform connectors (Google Ads, LinkedIn, Facebook, Instagram, TikTok, Snapchat, Apple search)
Reviewing emission estimates for consistency across ad types
1. Align with client requirements
Before processing, agree on any hypotheses or specific requirements with the client:
Analytic tags: for clients who need specific outputs for their datacenter analysis, it is possible to add analytic tags to the study.
Missing data: a variety of hypotheses can be applied when data is incomplete (average viewable time, video quality, image weight, audience country). These must be agreed upon with the client upfront.
Impression-only data: if the client only has impression counts and no other data, the template path can still be used with default assumptions.
2. Process the data
Choose the processing path based on how the client's data is available.
Path A: Data collection template
Use the study template. Make a copy in the client's folder, then go to the "Données d'entrée Digital" tab and copy/paste the client's data into the yellow columns.
The more data provided, the more precise the analysis. Watch out for these common data errors:-Type column: must contain only Video, Image, or Text.
⚠️ French clients sometimes write Texte instead of Text — use Find & Replace (⌘ + Shift + H) on the column to fix this.
Video Quality column: must contain only
360,480,720,1080, or4K— no trailing "p" (use1080, not1080p).Percentage columns: enter full numbers, not percentages (e.g.,
18, not18%). The sum must equal 100. If the client provided no device split, use82for smartphone and18for computer.Country column: spell out country names in full — do not use 2- or 3-letter codes.
Audience country column: make sure it is always filled-in (use “World” as a proxy if it’s unknown).
Once filled, verify results look coherent. The impact per impression should be around 0.1–1 gCO2e/impression depending on ad type.Export and upload: Go to the**"To Module"** tab.
Download the generated table as a CSV and upload it to the Digital Ads advanced module in Admeenly.
Path B: Connectors (Fivetran + BigQuery)
💡 You'll need access to BigQuery (and optionally Fivetran — Audric and Jeremy have access).
Supported platforms: Google Ads, LinkedIn, Facebook, Instagram, TikTok, Snapchat — models available in this folder.
Step 1: Validate the connector
The client connects their ad platform(s) via the Digital Ads advanced module in Greenly.
⚠️ Before validating the connection in Fivetran, the client must set the historical timeframe to at least 24 months.
Check all active connections on Fivetran to verify whether a connection is live, paused, or incomplete.
You can search by the client's company_id (found in the platform) to find their specific connection.
⚠️ Always pause connectors in Fivetran when you are done with the study.
Step 2: Retrieve data from BigQuery
Once data is synced, access it in the Greenly customers warehouse. Tables are named id_xxxxxxx_xxxxxxx_providerName.
Click the relevant table and copy the "Dataset ID".
First, run a date-range query to confirm data covers the study period. Query templates are available here. Then scroll up in the left menu and look for the saved queries under "(Classique) Requêtes (xx)".
Saved queries are available for each ad provider — select the one matching your platform.
In the query, update the table name (the part before the .) in green — do not modify the rest of the line (e.g., keep .ad_group_history at the end of the first line).
Adjust the timeframe at the end of the query, then click Run. Download the results as CSV and save to the client's folder.
Step 3: Run the analysis Import the CSV into the corresponding provider model, in its dedicated raw data tab.Google Ads To compute the emissions, you’ll have to import the raw data you retrieved into the corresponding model, in the tab “raw data - google ads”.
You’ll need to fill the column “Country” with the 2-letter country code associated with the campaign - The information is usually in the name of the campaign. If it is not, leave the line empty.
Check in the marketing tab that everything went right, and that no error is showing. If it is the case, you might want to add new countries, or new types of content in the hypothesis tab. The table “Emissions per type” should look like this. If there are more activity types, you’ll need to add rows here and in the “To Module” tab.
⚠️ If you have an error linked with an activity called "GOOGLE_OWNED_CHANNELS” use the Emissions per impression “MIXED” as it is a “cross network” type
Copy the file in your client’s folder. You’ll need to give back access to two importrange data in the hypothesis tab (C44 and C55):
Facebook Ads model
To compute the emissions, you’ll have to import the raw data you retrieved into the corresponding model, in the tab raw data - Facebook.
Make sure to adjust the extrapolation in this tab, depending on the dataframe you’re able to pull from bigquery (if your data covers 1 year, leave it to “1”, if it covers only 6 months, you can set it to 2)
Check in the marketing tab that everything went right, and that no error is showing. If it is the case, you might want to add new countries, or new types of content in the hypothesis tab.
Copy the file in your client’s folder. You’ll need to give back access to two importrange data in the hypothesis tab:
LinkedIn Ads model
To compute the emissions, you’ll have to import the raw data you retrieved into the corresponding model, in the tab raw data - LinkedIn.
Check in the marketing tab that everything went right, and that no error is showing. If it is the case, you might want to add new countries, or new types of content in the hypothesis tab.
Your Emissions per activity tab should look like this:
Copy the file in your client’s folder. You’ll need to give back access to two importrange data in the hypothesis tab:
Instagram model
To compute the emissions, you’ll have to import the raw data you retrieved into the corresponding model, in the tab raw data - Instagram.
Look at the campaign names. If you have information about the country; you can fill the country code in the column “R”.
Check in the results tab that everything went right, and that no error is showing. If it is the case, you might want to add new countries, or new types of content in the hypothesis tab.
Copy the file in your client’s folder. You’ll need to give back access to two importrange data in the hypothesis tab:
TikTok model
To compute the emissions, you’ll have to import the raw data you retrieved into the corresponding model, in the tab raw data - TikTok.
Check in the marketing tab that everything went right, and that no error is showing. If it is the case, you might want to add new countries, or new types of content in the hypothesis tab.
Copy the file in your client’s folder. You’ll need to give back access to two importrange data in the hypothesis tab:
Snapchat model
To compute the emissions, you’ll have to import the raw data you retrieved into the corresponding model, in the tab raw data Snapchat.
Check in the marketing tab that everything went right, and that no error is showing. If it is the case, you might want to add new countries, or new types of content in the hypothesis tab.
Copy the file in your client’s folder. You’ll need to give back access to two importrange data in the hypothesis tab:
Extrapolation
In some cases, data is not available for the whole year:
You can extrapolate based on the number of months X for which the data is available vs the duration of the study (usually 12 months), and multiply quantities in the “To module” tab of the analysis by a ratio 12/X.
Data export
The data can be exported as a.csv from the “To module” tab, that is automatically filled.
Once you’ve downloaded the file, go to Admeenly and upload the data in the advanced module. All the columns should be matching.
You’re done with your study!
Once the study is finished, remember to pause the connector in Fivetran
3. Review the data
After processing, check the impact per 1, 000 impressions for each ad type to verify consistency:
Ad type
Expected range
Video
0.5 – 1.5 kgCO2e / 1, 000 impressions
Image
0.1 – 0.5 kgCO2e / 1, 000 impressions
Text
< 0.1 kgCO2e / 1, 000 impressions
If results fall outside these ranges, revisit the input data and any hypotheses agreed upon with the client.
4. Methodology note
You can find the methodology not here.
FAQs
The client only has impression counts and no other data — can we still process?
Yes. Use the data collection template (Path A) and apply default assumptions: 82 for smartphone and 18 for computer in the device split columns. Agree with the client on any other hypotheses (viewable time, video quality, etc.) before proceeding.
When should I use the connector path instead of the template?
Use the connector path (Path B) when the client has connected their ad platform(s) directly to Greenly via Fivetran. This allows you to pull data programmatically from BigQuery rather than relying on manual exports. Both paths lead to the same output format for upload to the platform.




























