AdTech Variables
The Impulse Engine automatically maps real-time, highly granular hardware telemetry into stable, categorical tiers designed specifically for the programmatic advertising ecosystem.
Unlike the Engineering Scores (where higher is better), AdTech Variables use a fixed 1-to-4 scale (where 1 is the absolute best). This ensures that your pricing rules, Private Marketplace (PMP) deals, and DSP targeting segments remain perfectly stable year over year, regardless of new hardware releases.
1. inventory_tier (The Commercial Proxy)
The inventory_tier evaluates the commercial value of the device by combining hardware processing power, release cycle, and OS ecosystem (e.g., iOS vs. Android).
Because high-end, expensive hardware strongly correlates with high purchasing power, this variable is your primary tool for Yield Optimization.
Scale Breakdown
inventory_tier | Classification | Inventory Profile | Yield Strategy |
|---|---|---|---|
1 | Ultra-Premium | High-end ecosystems (iOS/Mac) and recent flagships. The devices of high-income earners. | Dynamic Floors: +100% to +200%. PMP: Package as exclusive VIP audiences. |
2 | Premium | Recent mid-range/high-end devices and older iPhones. A massive volume to be revalued. | Dynamic Floors: +30% to +50%. |
3 | Mainstream | The core of the market. A standardized and predictable audience. | Baseline Floors: Apply your standard Run-Of-Network (RON) pricing. |
4 | Mass-Market | Entry-level and aging devices. Promo and bargain hunters. | Fill-Rate Focus: Maintain baseline pricing or lower slightly to ensure maximum fill rate. |
2. device_tier (The Technical/Anti-Waste Proxy)
The device_tier isolates the pure rendering capability of the hardware. It strips away commercial ecosystem biases and focuses strictly on whether the machine has the CPU, GPU, and RAM required to render complex ad formats without freezing the browser.
This variable is your primary tool for protecting your Core Web Vitals (INP) and preventing ad-induced browser crashes.
Scale Breakdown
device_tier | Classification | Device Profile |
|---|---|---|
1 | High-End | Capable of parallel multi-threading and heavy WebGL rendering without dropping frames. |
2 | Mid-Range | Strong rendering power, minor latency on extremely heavy concurrent tasks. |
3 | Basic | Limited RAM and single-core bottlenecks. Susceptible to UI lag under heavy load. |
4 | Entry-level | Severe risk of INP latency and Out-Of-Memory (OOM) crashes if forced to render complex DOMs. |
Data Formatting & Type Safety
sd-metrics.js exposes these variables as Integers through the inventory_tier and device_tier metrics of your SdMetrics instance (e.g. sd.inventory_tier.get()).
Important Note for Ad Server Integration
Google Ad Manager (GAM) requires Custom Key-Values to be passed strictly as Strings. Prebid.js first-party data (ortb2) accepts any JSON value, but casting to strings keeps your targeting consistent across both.
When pushing these variables to your ad calls, always ensure you cast them to strings. We recommend prefixing the key (e.g. sd_inventory_tier) to avoid collisions with your existing key-values:
window.googletag = window.googletag || { cmd: [] };
googletag.cmd.push(async () => {
// Wait at most 200 ms, fall back to tier 3 (Mainstream) if the metric is not ready
const inventory_tier = await window.sd.inventory_tier.get({ timeout: 200, default: 3 });
googletag.pubads().setTargeting('sd_inventory_tier', inventory_tier.toString());
// Call googletag.display(...) for your slots here, after the targeting is set
});