Grade any URL A–F for carbon per ad impression — page weight, ad-tech overhead, hosting efficiency and supply-chain complexity in one score.
The internet accounts for roughly 3.7% of global greenhouse gas emissions — comparable to the airline industry — and digital advertising is a significant driver. Every ad impression triggers cascading HTTP requests across dozens of intermediaries, each burning compute cycles in data centres worldwide. Yet most sustainability reports treat digital as "zero impact" because there is no standardised measurement. That gap is closing fast: regulators, holding companies and brand procurement teams are demanding numbers.
Ad-tech infrastructure — exchanges, DSPs, SSPs, verification pixels, data-management platforms — consumes roughly 1% of global electricity, and the ad-funded web adds significant page weight on top of editorial content.
Made-for-Advertising sites load heavy ad stacks on pages nobody reads. They exist to generate impressions, not attention — meaning every gram of CO2 they produce is pure waste with zero brand or user value.
A single autoplay video ad can transfer 5–15 MB per impression. Multiply that across millions of impressions on pages users scroll past, and video becomes the single largest contributor to digital advertising's carbon footprint.
GARM, Ad Net Zero and Scope3 are building frameworks, but today there is no universal, per-URL scoring standard. Without measurement, "sustainable media" claims are unverifiable — and often meaningless.
A common first attempt is to measure total transfer size: "the page weighs 4 MB, so it is carbon-heavy." This misses the story. A 4 MB page delivering well-compressed editorial images on green-powered hosting is far cleaner than a 2 MB page running 30 header-bidding partners through uncompressed JavaScript on a coal-grid data centre. Carbon intensity is a function of what the weight is, how efficiently it is delivered, and how many intermediaries are involved in the supply chain. You need to decompose the page, not just weigh it.
We fetch the page in a real headless browser, execute JavaScript, and measure everything transferred over the wire:
Advertising scripts are among the heaviest and least-optimised resources on the web. We quantify:
Video is the single largest contributor to per-impression carbon. We detect and score:
Every third-party domain is another server, another data centre, another network hop. We map the supply chain:
How efficiently the infrastructure delivers the content matters as much as the content itself:
POST a URL, get the composite carbon-intensity score with every sub-score and optimisation recommendation exposed — no black box, every number traceable to a measurable signal.
curl -X POST "https://www.websitecategorizationapi.com/api/carbon/score.php" \ -d "query=https://example-news-site.com/article/summer-travel" \ -d "api_key=YOUR_API_KEY"
import requests
resp = requests.post(
"https://www.websitecategorizationapi.com/api/carbon/score.php",
data={"query": url, "api_key": API_KEY},
timeout=180,
)
result = resp.json()
if result["carbon_grade"] in ("E", "F"):
exclusion_list.add(result["url"])
elif result["carbon_grade"] == "D":
review_queue.add(result["url"], result["sub_scores"])
{
"url": "https://example-news-site.com/article/summer-travel",
"carbon_intensity_score": 62,
"carbon_grade": "D",
"sub_scores": {
"page_weight": 55,
"ad_load": 71,
"video_rich_media": 78,
"supply_chain_complexity": 58,
"hosting_efficiency": 45
},
"grade_thresholds": {
"A": "0-15", "B": "16-30", "C": "31-50",
"D": "51-70", "E": "71-85", "F": "86-100"
},
"estimated_carbon_per_impression_mg": 6.84,
"optimization_recommendations": [
"Remove autoplay video player (-12 points est.)",
"Compress hero image from PNG to WebP (-4 points est.)",
"Reduce header-bidding partners from 18 to 8 (-6 points est.)"
],
"waste_overlap": {
"mfa_score": 34,
"mfa_risk": "LOW RISK"
},
"status": 200
}
The response links carbon intensity to actionable
causes: the autoplay video player alone accounts for an estimated 12-point swing, and the
waste_overlap field cross-references the MFA score so you can distinguish
high-carbon legitimate publishers from high-carbon waste inventory.
Calibrated against a benchmark of 10,000 sites spanning premium publishers, mid-tier content, and documented MFA inventory. Premium publishers average grade B; MFA sites average grade E.
| Score | Grade | Intensity | Typical action |
|---|---|---|---|
| 0–15 | A | Minimal carbon intensity | Preferred supply |
| 16–30 | B | Below-average intensity | Allow, green-certified |
| 31–50 | C | Average intensity | Allow, optimise |
| 51–70 | D | Above-average intensity | Review / renegotiate |
| 71–85 | E | High intensity | Exclude or remediate |
| 86–100 | F | Extreme intensity | Block |
Total transfer size decomposed by resource type. Penalises unoptimised images, redundant fonts and render-blocking scripts — dampened for genuinely rich editorial content (photojournalism, interactive data).
Ad-script count, header-bidding partner depth, ad-refresh intervals and total ad-related payload. High ad load means more HTTP requests, more JavaScript execution, and more CO2 per impression.
Autoplay video detection, VAST/VPAID player weight, rich-media framework overhead. A single autoplay ad can outweigh the rest of the page combined.
Third-party domain count, ads.txt seller depth, cookie-sync chains. Each intermediary is another server, another data centre, another carbon cost that adds zero user value.
Green-energy hosting, HTTP/2+ protocol, Brotli/gzip compression, CDN and cache-control headers. Efficient delivery can halve the carbon cost of the same content.
The bottom line: estimated milligrams of CO2 per impression, derived from the five sub-scores. Use this number directly in ESG reporting and Scope 3 calculations.
Quantify the carbon footprint of your digital media spend with per-impression data. Feed the estimated_carbon_per_impression_mg directly into Scope 3 emissions calculations for annual sustainability disclosures.
Build inclusion lists of grade-A and grade-B publishers. Shift budget toward low-carbon supply without sacrificing reach — premium publishers with optimised sites score well and deliver better attention.
Integrate the score into your DSP's bid logic. Bid higher on low-carbon inventory and lower (or exclude) high-carbon placements — the API response latency supports real-time decisioning via batch pre-scoring.
Publishers can score their own pages, identify the heaviest contributors (usually autoplay video and unoptimised images), and use the optimization_recommendations to reduce their grade by one or two tiers.
Carbon-aware media buying is a change to live operations, so treat it like one. The pattern below produces evidence before enforcement — which keeps procurement, publishers and sustainability teams aligned on the same data before anyone's budget moves.
Score your current placement reports and supply-path domains without changing anything. Establish the carbon profile of your media spend per DSP, per deal and per publisher — this is the number your sustainability team needs for the next disclosure cycle.
Sort by carbon intensity score descending. The top decile typically accounts for a disproportionate share of total emissions. Cross-reference with MFA scores — high-carbon waste inventory is the lowest-risk exclusion target.
Exclude grade-F inventory. Share optimization_recommendations with grade-D and grade-E publishers who deliver real audiences — many will compress images and remove autoplay video when shown the data.
Re-score your supply path monthly. Track the average carbon grade over time to show measurable progress in sustainability reports. New high-carbon entrants surface automatically, not as a quarterly surprise.
Teams that run this loop report measurable improvements within one quarter: average carbon grades improve by one to two tiers as the worst inventory is excluded and publishers optimise their pages. The budget does not shrink — it shifts to cleaner supply that also tends to deliver better viewability and attention metrics. That correlation is not coincidental: a well-built, fast-loading page is both low-carbon and high-attention.
The score is a relative intensity index (0–100), not an absolute lifecycle assessment. The estimated_carbon_per_impression_mg is derived from transfer-size models calibrated against published methodology from the Shift Project and Scope3's open research. It is designed for comparative ranking and portfolio-level reporting, not single-impression audit-grade precision.
MFA and carbon intensity are strongly correlated — MFA sites load heavy ad stacks on low-value pages, which is both wasteful spend and wasteful carbon. The waste_overlap field in the response links the two scores so you can prioritise: high-carbon + high-MFA inventory is the easiest exclusion, high-carbon + low-MFA may deserve optimisation rather than removal. See also the MFA Detection feature page.
We combine client-side transfer measurement (real headless browser, full JavaScript execution) with server-side hosting analysis (Green Web Foundation data, protocol detection, compression audit). The five sub-scores are weighted and combined into the composite index. The methodology is transparent: every sub-score and signal is returned in the API response so you can inspect and challenge any result.
Both. The real-time endpoint scores a single URL on demand. For supply-path screening, batch-score against the 102M-domain database to build carbon-graded inclusion lists. Re-score monthly to track changes as publishers optimise or new inventory enters your supply path.
Send us a placement list and get back a carbon-graded CSV with every sub-score and optimisation recommendation — the same report format we produce for sustainability auditors.
Request a Sample Read the API Docs