Trillboards
Menu

Weather-Triggered DOOH: Technical DCO Integration Guide

Trillboards Team12 min read
Weather-Triggered DOOH: Technical DCO Integration Guide

Introduction to Context-Driven Programmatic DOOH

The era of static, looping digital signage is over. Today's most effective Digital Out-of-Home (DOOH) campaigns rely on real-time environmental data to deliver hyper-relevant messaging.

At the forefront of this shift is weather-triggered DOOH, a programmatic strategy that dynamically alters ad creatives based on local meteorological conditions. By leveraging dynamic creative optimization (DCO), brands can swap assets instantly,serving iced coffee ads during a heatwave and hot soup promotions during a blizzard.

With 10,000+ DOOH screens under contract, Trillboards provides the open infrastructure required to execute these contextual campaigns at global scale. Our network spans 35 countries and 2,604 distinct cities, meaning weather variables fluctuate wildly across the ecosystem at any given second.

This guide provides a comprehensive, technical blueprint for developers and ad operations teams. We will explore how to implement OpenRTB weather targeting, configure VAST weather macros, and build a robust programmatic DOOH creative API using the Trillboards ecosystem.


The Architecture of Weather-Triggered DOOH

Implementing weather-responsive campaigns requires a synchronized technology stack. The hardware, the ad server, and the demand-side platform (DSP) must communicate in milliseconds.

According to industry resources like Broadsign's DCO guide, deploying dynamic creative optimization ensures seamless cross-network compatibility and lowers manual production overhead.

How OpenRTB Weather Targeting Works

OpenRTB weather targeting is standardized by the IAB Tech Lab. It allows supply-side platforms (SSPs) like Trillboards to pass precise geolocation data to DSPs during the real-time bidding process.

When a screen requests an ad, the SSP generates an OpenRTB 2.6 bid request. This request contains a Device.geo object, which includes the screen's latitude, longitude, and ZIP code.

DSPs ingest this geolocation payload, ping a real-time weather API (like OpenWeatherMap or AccuWeather), and evaluate the bid. If the local temperature matches the advertiser's parameters, the DSP submits a bid.

For a broader understanding of how media buyers utilize this data, see Digiday's WTF is weather targeting.

The Role of Dynamic Creative Optimization (DCO)

Once the DSP wins the auction, the ad server must deliver the correct creative. This is where dynamic creative optimization takes over.

Instead of rendering hundreds of massive, flat video files for every possible weather scenario, developers build a single modular HTML5 template. The player-level CMS dynamically swaps assets,such as copy, backgrounds, and product offers,instantly based on the weather payload.

As highlighted by Vistar Media's weather examples, brands can dynamically swap creatives to boost campaign effectiveness by up to 17% without suffering playback latency or black screens.


Implementing OpenRTB 2.6 Weather Targeting

To execute weather-triggered campaigns, developers must ensure their bid requests are properly formatted. Trillboards acts as a next-generation SSP and free ad server, managing this complexity for you.

Unlike legacy systems that charge exorbitant SaaS fees, Trillboards is a free ad server where publishers pay $0/screen/month. We monetize exclusively through ad demand, providing an OpenRTB 2.6 exchange with a second-price auction engine.

The Device.geo Object in Action

To trigger weather-based demand, your screens must emit accurate geolocation data. Trillboards automatically enriches your bid requests based on your venue configuration.

Here is an example of an OpenRTB 2.6 bid request payload generated by the Trillboards SSP, highlighting the geo object:

{
  "id": "1234567890-trillboards-req",
  "imp": [
    {
      "id": "1",
      "video": {
        "mimes": ["video/mp4", "application/javascript"],
        "minduration": 5,
        "maxduration": 15,
        "w": 1920,
        "h": 1080,
        "protocols": [2, 3, 7, 8],
        "placement": 1
      },
      "ext": {
        "dooh": {
          "venue_type": "convenience_store",
          "multiplier": 4.5
        }
      }
    }
  ],
  "device": {
    "ua": "Trillboards-Player/2.1.0",
    "ip": "192.168.1.1",
    "geo": {
      "lat": 40.7128,
      "lon": -74.0060,
      "zip": "10001",
      "country": "USA",
      "ext": {
        "accuracy": 10
      }
    }
  }
}

Key Insight: DSPs rely heavily on the zip and lat/lon fields. If these are missing or inaccurate, weather-based DSPs will automatically drop the bid request, drastically reducing your fill rate.

Enriching Requests with Audience Taxonomy

Weather impacts different audiences in different ways. Trillboards supports 1,558 IAB Audience Taxonomy 1.1 nodes (segtax=4) in OpenRTB requests.

Over the past 60 days, we have observed 588 IAB audience segments in live impressions. By combining weather data with real-time audience intelligence, developers can create highly targeted programmatic environments.

For example, if a screen is located in a gym, you can target health-conscious consumers during a rainy day with indoor workout gear. To explore venue-specific strategies, check out our hub at /guides/.


Building a Programmatic DOOH Creative API

To handle DCO efficiently, developers need a robust backend. A programmatic DOOH creative API acts as the middleware between the ad server and the HTML5 player.

This API listens for impression events, fetches local weather data, and serves the appropriate creative assets to the screen in real-time.

Node.js Middleware Example

Below is a simplified example of how to build a programmatic DOOH creative API using Node.js and Express. This endpoint receives a screen ID, fetches its location via the Trillboards API, checks the weather, and returns the correct HTML5 asset URL.

const express = require('express');
const axios = require('axios');
const app = express();

// Trillboards API configuration
const TRILLBOARDS_API_URL = 'https://api.trillboards.com/v1';
const API_KEY = process.env.TRILLBOARDS_API_KEY;

app.get('/api/creative/:screenId', async (req, res) => {
  try {
    const { screenId } = req.params;

    // 1. Fetch screen location from Trillboards
    const deviceRes = await axios.get(`${TRILLBOARDS_API_URL}/devices/${screenId}`, {
      headers: { 'Authorization': `Bearer ${API_KEY}` }
    });
    const { lat, lon } = deviceRes.data.location;

    // 2. Fetch real-time weather
    const weatherRes = await axios.get(`https://api.weatherapi.com/v1/current.json?key=YOUR_WEATHER_KEY&q=${lat},${lon}`);
    const temp = weatherRes.data.current.temp_f;
    const condition = weatherRes.data.current.condition.text.toLowerCase();

    // 3. Dynamic Creative Logic
    let creativeUrl = 'https://cdn.yourdomain.com/default-ad.html';
    
    if (temp > 85) {
      creativeUrl = 'https://cdn.yourdomain.com/cold-drink-promo.html';
    } else if (temp < 40 || condition.includes('snow')) {
      creativeUrl = 'https://cdn.yourdomain.com/hot-coffee-promo.html';
    }

    // 4. Return DCO asset
    res.json({
      status: 'success',
      creative_url: creativeUrl,
      weather_context: { temp, condition }
    });

  } catch (error) {
    console.error('DCO API Error:', error);
    res.status(500).json({ error: 'Failed to optimize creative' });
  }
});

app.listen(3000, () => console.log('DCO Creative API running on port 3000'));

Specialized Network Use Cases

This modular approach is highly effective for specialized networks. For example, as Naki Power demonstrates with their power bank sharing kiosk network across Europe with screen-equipped charging stations in bars, weather-responsive HTML5 creatives can drive immediate foot traffic to indoor venues during sudden rainstorms.

By leveraging the Trillboards API, networks can integrate this exact logic without building an SSP from scratch.


VAST Weather Macros for Video Delivery

While HTML5 is the gold standard for DCO, many advertisers still rely on standard video files (MP4) delivered via VAST (Video Ad Serving Template).

To make standard video weather-responsive, the industry relies on VAST weather macros. These macros allow the ad player to inject real-time variables into the VAST tag URL before requesting the ad from the server.

Injecting Geolocation into VAST Tags

Trillboards supports full macro replacement in its VAST waterfall. When configuring a campaign, you can append macros like [LAT], [LON], and [CLIENTIP] to your VAST URLs.

When the Trillboards SDK requests the ad, it automatically replaces these macros with the device's actual coordinates. The upstream ad server uses these coordinates to resolve the weather and return the appropriate MP4 file.

Example VAST 4.2 XML Structure

Here is an example of a VAST 4.2 response that utilizes dynamic tracking URLs. Notice how the tracking pixels include macros that pass environmental data back to the analytics server.

<VAST version="4.2" xmlns="http://www.iab.com/VAST">
  <Ad id="weather_campaign_01">
    <InLine>
      <AdSystem version="2.0">Trillboards Ad Server</AdSystem>
      <AdTitle>Dynamic Weather Promo - Hot</AdTitle>
      <Impression id="trillboards_imp">
        <![CDATA[https://track.trillboards.com/imp?lat=[LAT]&lon=[LON]&temp=[TEMP]&device=[DEVICEID]]]>
      </Impression>
      <Creatives>
        <Creative id="video_hot_weather" sequence="1">
          <Linear>
            <Duration>00:00:15</Duration>
            <MediaFiles>
              <MediaFile delivery="progressive" type="video/mp4" width="1920" height="1080">
                <![CDATA[https://cdn.trillboards.com/creatives/hot-weather-promo.mp4]]>
              </MediaFile>
            </MediaFiles>
          </Linear>
        </Creative>
      </Creatives>
    </InLine>
  </Ad>
</VAST>

Pro Tip: Always include fallback creatives in your VAST waterfall. If a weather API times out or returns an error, the player must seamlessly fall back to a generic, weather-agnostic ad to prevent black screens.


Trillboards SDK: Step-by-Step Integration

Building your own SSP and ad server from scratch can cost upwards of $500,000 in development time. Trillboards provides this infrastructure as a service via our Partner SDK (@trillboards/ads-sdk).

The SDK supports TypeScript, React, React Native, Flutter, and CTV environments. It handles the heavy lifting of VAST parsing, macro replacement, and OpenRTB auction execution.

Prerequisites & Setup

Before initializing the SDK, you must create a publisher account and register your screens in the Trillboards dashboard. This generates your unique API keys and venue IDs.

For full endpoint documentation, developers can access our OpenAPI specification with Swagger UI at /developer/docs.

Initializing the React SDK

Integrating the Trillboards SDK into a React digital signage application takes only a few lines of code. The SDK automatically manages the VAST waterfall, fetching demand from Google Ad Manager (GAM), HiveStack, Vidverto, and the OpenRTB exchange.

import React, { useEffect, useRef } from 'react';
import { TrillboardsPlayer, TrillboardsConfig } from '@trillboards/ads-sdk';

const DigitalSignageApp = () => {
  const playerRef = useRef(null);

  useEffect(() => {
    // Initialize Trillboards Configuration
    const config: TrillboardsConfig = {
      apiKey: 'YOUR_PUBLISHER_API_KEY',
      screenId: 'SCREEN_UUID_1234',
      venueType: 'convenience_store',
      enableWeatherMacros: true,
      fallbackCreative: 'https://cdn.yourdomain.com/fallback.mp4',
    };

    // Instantiate the Player
    const player = new TrillboardsPlayer(config);
    
    // Mount to the DOM
    if (playerRef.current) {
      player.mount(playerRef.current);
    }

    // Listen for DCO Events
    player.on('creativeSwapped', (event) => {
      console.log('Weather DCO Triggered:', event.weatherContext);
    });

    return () => {
      player.destroy();
    };
  }, []);

  return (
    <div style={{ width: '1920px', height: '1080px', backgroundColor: '#000' }}>
      <div ref={playerRef} style={{ width: '100%', height: '100%' }} />
    </div>
  );
};

export default DigitalSignageApp;

Handling Webhook-Driven Events

Trillboards utilizes a webhook-driven event architecture. You can subscribe to real-time events for device status, impressions, payouts, and audience spikes.

When a weather-triggered ad plays, Trillboards fires an impression.verified webhook. This allows your backend to track exactly which weather conditions are driving the highest eCPM.


Measuring DCO Performance & Verification

Delivering dynamic creatives is only half the battle. Advertisers demand rigorous proof-of-play and brand safety verification before paying for impressions.

To ensure brand safety and contextual relevance, Trillboards has performed 192,091 creative-level classifications across 93 IAB Content Taxonomy top-level categories. This ensures that weather-triggered ads never violate venue safety guidelines.

OM SDK Integration for MRC Compliance

The Trillboards platform includes native integration with the IAB Tech Lab's Open Measurement (OM) SDK. This provides MRC-compliant ad verification for viewability and attention metrics.

When a weather-optimized HTML5 creative renders, the OM SDK measures the exact pixels on the screen, verifying that the ad was fully visible and unobstructed.

Supply Chain Transparency

Programmatic buyers require absolute transparency. Trillboards enforces a strict 14-check OpenRTB 2.6 supply-chain validation runbook.

This automated runbook validates sellers.json, ads.txt, and schain (SupplyChain object) in every single VAST request. If an ad tag fails these checks, it is immediately blocked, protecting your screens from invalid traffic (IVT) and domain spoofing.

Furthermore, our real-time audience intelligence is unparalleled. We currently have 241 sensing-enabled screens emitting segtax=600 audience signals during peak windows, providing DSPs with granular foot-traffic data to optimize their weather bidding strategies.


The Publisher Revenue Model: The 60/40 Split

Implementing advanced DCO and OpenRTB targeting requires powerful software. Competitors like BroadSign and Vistar operate closed ecosystems with expensive SaaS fees, often charging $5 to $45 per screen per month just for CMS access.

Trillboards is fundamentally different. We are an API-first platform that is completely free for publishers.

We monetize through ad demand, not publisher fees. The programmatic ad revenue is split 60/40 in the publisher's favor: the venue/publisher keeps 60%, Trillboards keeps 40%.

Maximizing eCPM with Weather Context

By enabling weather-triggered DOOH, publishers instantly increase the value of their inventory. DSPs are willing to pay a premium,often 2x to 3x higher eCPMs,for highly contextual, weather-matched impressions.

If you operate a network of screens in retail environments, leveraging these capabilities can transform your bottom line. For specific revenue projections and hardware setups, read our deep dive on /guides/convenience-store-digital-signage-income/.


Conclusion & Next Steps

Weather-triggered Dynamic Creative Optimization is no longer a futuristic concept; it is a baseline expectation for premium programmatic DOOH buyers.

By leveraging OpenRTB weather targeting, VAST weather macros, and a programmatic DOOH creative API, publishers can deliver highly engaging, context-aware advertising that commands premium eCPMs.

Trillboards provides the end-to-end infrastructure required to execute these campaigns. With our free ad server, robust Partner SDK, and transparent 60/40 revenue split, you can transform any digital screen into a high-yield programmatic asset.

Ready to integrate? Create your free publisher account today, generate your API keys, and start exploring the Trillboards developer documentation.


Frequently asked questions

What is weather-triggered DOOH?

Weather-triggered DOOH is a programmatic advertising strategy that uses real-time environmental data (like temperature, rain, or pollen counts) to dictate which creative assets are displayed on digital out-of-home screens.

How does dynamic creative optimization (DCO) work in digital signage?

DCO uses modular HTML5 templates instead of flat video files. A programmatic API feeds real-time data to the player, which instantly swaps text, images, and offers within the template to match the current context.

What are VAST weather macros?

VAST weather macros are placeholder variables (such as [LAT], [LON], or [TEMP]) embedded in a Video Ad Serving Template URL. The ad player replaces these macros with real-time data before requesting the video file from the ad server.

How much does the Trillboards ad server cost?

Trillboards is completely free for publishers, charging $0/screen/month. The platform monetizes strictly through ad demand, and the programmatic ad revenue is split 60/40 in the publisher's favor: the venue/publisher keeps 60%, Trillboards keeps 40%.

Does Trillboards support OpenRTB 2.6?

Yes. Trillboards operates a full OpenRTB 2.6 exchange, supporting advanced features like the Device.geo object, supply-chain validation (schain), and IAB Audience Taxonomy 1.1 nodes.

Can I integrate Trillboards into my existing React application?

Absolutely. Trillboards provides a Partner SDK (@trillboards/ads-sdk) that supports React, React Native, TypeScript, and Flutter, allowing you to add programmatic ad monetization to any app in minutes.

Related on Trillboards

Sources & further reading

Related reading