Why is Inventory Forecasting Crucial?
Managing an ad server like Google Ad Manager involves selling future impression volumes. Without a reliable forecasting system, a publisher is exposed to two major risks:
- Under-booking: Losing potential revenue by failing to fully monetize available inventory due to over-caution.
- Over-booking: Committing to impression volumes that the inventory cannot deliver, causing campaign under-delivery, financial penalties, and operational overhead.
How Does Forecasting Work with the LLM?
OrbiAds integrates the Model Context Protocol (MCP), allowing our AI Assistant (LLM) to communicate directly with Google Ad Manager's ForecastService in real time. The AI can query and analyze your ad inventory dynamically.
In natural language, you can ask questions like:
"Do I have enough available impressions to run 500,000 impressions of a 300x250 ad unit in December?"
"Simulate the volume drop if I add geographic targeting for France and Belgium on this line item." What the AI (LLM) Queries and Returns
Under the hood, the AI assistant calls specialized tools on the MCP server:
get_inventory_forecast: Retrieve estimated available impressions for a given targeting criteria before creating a campaign.get_standalone_forecast: Simulate complex forecasts without modifying existing campaigns.get_delivery_forecast_by_line_item: Project the future delivery of an active Line Item.get_prospective_delivery_forecast: Simulate the impact of a hypothetical targeting change on an existing Line Item.
The LLM processes the raw API response and returns:
- Estimated Impressions (Matched / Available / Possible):
Matched: Total impressions matching the targeting criteria.Available: Unreserved impressions free to be booked.Possible: Total potential impressions if competing campaigns were inactive.
- Constraint Analysis (Constraining Targeting): If there is an inventory shortage, the AI uses
targetingCriteriaBreakdownsto isolate exactly which criterion (e.g., a highly restrictive custom key-value or geographic filter) is choking the delivery. - Alternative Scenarios: The AI can analyze equivalent formats in clicks or viewable impressions (Active View) using the WSDL
alternativeUnitTypeForecastsfield.
The Importance of Correct Dimensions and Priorities
Google Ad Manager's forecasting engine is highly sensitive to input parameters. Inaccurate simulations lead to delivery failures. Make sure you specify:
- Exact Dimensions (e.g., 300x250, 728x90): Running a forecast without specifying a size or using the wrong size will lead to incorrect estimates, as GAM filters inventory slots by exact dimensions.
- Priority and Line Item Type: GAM calculates delivery pre-emption based on priority. A Sponsorship (Priority 4) pre-empts a Standard (Priority 8) line item. The LLM must know the exact priority to simulate deliverability conflicts.
- Frequency Caps: Repetition rules limit the actual inventory available per user. Omitting frequency caps in the forecast overestimates delivery capacity.
Workflow Optimization: Simulating Delivery Scenarios
In the native Google Ad Manager UI, testing different targeting setups is tedious: you must manually duplicate line items, update the targeting criteria, click "Check Inventory", write down the results, and then delete the draft objects.
With OrbiAds and the LLM, the workflow is streamlined:
AI Scenario Simulation Flow
- Describe the variations: "Compare delivery between 300x250 and 970x250 formats on Homepage from December 1st to 15th."
- The AI assistant runs parallel forecast API requests.
- The LLM compares the metrics and outputs a clean comparison table (Available impressions, penetration rate, potential conflicts).
- Your AI agent keeps the best setup and applies it directly at deploy time via the OrbiAds MCP/CLI.
What Happens When Booking in an Overbooked Scenario?
A common question traffickers ask is what happens when booking a line item when inventory is saturated.
1. GAM Default Behavior
By default, if you try to book a line item whose goal exceeds available impressions, the GAM API throws a blocking exception (e.g., INVENTORY_NOT_AVAILABLE). The creation fails, halting the campaign deployment saga.
2. Intelligent Handling with OrbiAds (allowOverbook)
To prevent blocking deployments for strategic campaigns, OrbiAds supports the allowOverbook parameter:
- The
allow_overbookparameter (falseby default) is passed directly to the MCP/CLI line-item creation tool. - When
allow_overbook: true, the flag is passed to GAM during line-item creation. - The dry-run preview explicitly reports the state before any confirmation: ⚠ Overbooking: Allowed.
- During campaign creation, the SOAP payload includes
"allowOverbook": True. GAM forces creation without throwing errors. - The SSE status update logs the forced creation:
Line Item 1/3 created — lineItemId=87654321 (150 000 imp.) (⚠ overbooked)
3. Technical Subtleties and Limits (Targeting & Non-persistence)
Implementing overbooking in Google Ad Manager presents several technical specifics that developers and traffickers should keep in mind:
- Flag Non-persistence: The
allowOverbookparameter is not persisted on the Line Item object in GAM. It acts as an execution-level override sent only with the write/update request to bypass API rate-limiter or inventory warnings. Reading the object later will not show this field. - Creative-Level Targeting Conflict: If the originating proposal line item was not configured to allow overbooking, applying creative-level targeting that overbooks inventory will trigger the strict
CANNOT_OVERBOOK_WITH_CREATIVE_TARGETINGexception. - Complex Targeting Couplings: When combining complex targeting filters (e.g. cross-targeting geography with custom key-values), GAM might reject forced bookings if size rules or goals are structurally incompatible. Pre-validating reach via
get_inventory_forecastremains best practice.
