Skip to main content
An ad that does not appear and an ad that appears without performance metrics need different checks. Trace one real request in the order below. If a setting is not visible to your account, ask an operator to check it.

First, identify the symptom

Record the time and timezone, AdUnit ID, web or app environment, request ID if available, HTTP status, and whether the response contained an ad. Advertisers should also provide their line item ID and allocation status. When contacting support, remove cookies, authentication tokens, personal identifiers, signed request contents, and private bid parameters. Share only the relevant redacted details.

When no ad is returned

1. Order and line item status and dates

  • Confirm that the order is active. The line item must be Delivering to be considered for an ad request. If it is Draft, Ready, Preparing, or Archived, see Change status and end delivery for the status flow and next steps.
  • Check that the current time falls between the line item’s start and end dates. Confirm that the line item dates also fall within the order period.
  • If the line item has a weekday or time Schedule, check the request time against its timezone. When no timezone is set, the schedule uses UTC.
  • Check whether the line item was archived, which cancels its allocations, or its allocations reached Finished after the impression goal was met or the budget was spent. See Orders and line items for budget and goals, and Change status and end delivery for statuses.
The ad server excludes line items that are not delivering, requests outside their dates, and requests that do not match a configured schedule. Review goal and budget progress with the operator when checking the current Line Item and allocation status.

2. Allocation and request target

  • Confirm that the allocation between the Line Item and AdUnit or Placement is Published. Pending and Requested allocations do not serve ads. See Request an inventory assignment and Allocation approval.
  • For an AdUnit allocation, confirm that the requested AdUnit is the target or one of its child AdUnits. An allocation on a parent AdUnit can also apply to requests from its children. For a Placement allocation, ask the operator to confirm that the requested AdUnit belongs to that Placement.
  • AdUnit and Placement status is checked when an allocation is requested or published. A published allocation is not excluded solely because the target is inactive at request time. The request path needs an AdUnit ID; an invalid tagid format or unknown ID can return 500, not 204 No Content. See Manage AdUnits and Placements.
  • Confirm that an active creative is linked to the line item. Check the creative status and the line item link status separately.
  • Check that the requested display size matches the creative size. For native ads, also check the AdUnit’s HTML or Asset rendering mode and its format and style links.
  • For a network ad, check the allocation’s ad source and supported environment. Network ads also require an active creative association for delivery, but the current console does not show the controls to create one. Do not publish the allocation until an A2 administrator confirms how to proceed. A backfill ad uses an internal creative linked to the Line Item, not an external ad source. The ad source field on a backfill allocation is not used for delivery.
See Register and link creatives for creative, link, and size checks, and Native formats and styles for native setup. An ad source setting for a network type does not replace a direct creative link. Publishing also requires an active creative link and an active creative.

4. Request conditions and delivery limits

  • If the line item has custom conditions, check that the request sends matching keys and values. A request without the required conditions, or with different values, may exclude the line item. See Targeting setup.
  • If an experiment is running, check which bucket the request user is assigned to and which Line Items are in that bucket. Line Items in another bucket may not be candidates for that request.
  • Check the allocation’s frequency cap. Repeated requests with the same user ID may stop selecting the ad after the configured limit is reached.
  • Recheck the line item’s schedule. A request outside the allowed day or time will not match, even when the other settings are correct.
  • Compare the line item’s impression goal, budget, daily budget, and current progress. Check whether the allocation finished after its impression goal was met or its budget was spent. If the status is unclear, ask an operator to review the status and figures before changing the line item.

Check request, response, and display separately

  1. Check application or website logs to confirm that the service sends an ad request for the intended AdUnit ID. See Ad serving integration for the request path, body, and response format.
  2. Check the HTTP response. 204 No Content can mean no eligible ad was returned; there is no response body to parse as ad data. An invalid tagid format or unknown AdUnit ID can return 500. If a successful response contains an ad object, investigate why it was not rendered.
  3. If your service calls the API directly, compare the returned creative format with your rendering code. If you use the web SDK, check the registered AdUnit ID and the SDK’s rendering and log integration. See Ad serving integration for API details.
  4. If the ad appears, check how impression events are recorded. When the allocation uses On Impression Event, the client tracker must be integrated. Recording an impression when the ad response is sent is different from recording it when the ad is shown on screen. A direct API integration must implement any required event and log transmission separately. See Log integration.

When the ad appears but metrics are missing

With On Impression Event, the ad must be shown and the tracker must send an impression event for it to be recorded. With On Ad Response, the impression is recorded when the ad response is sent. Check the analytics date range and Line Item or AdUnit filters, then review the integration for the selected tracking mode. Operators can compare unfilled requests and impressions in Analytics and reports. Advertisers can review their own metrics in Performance analytics. If you cannot distinguish display from event collection, or you cannot access the required settings, ask an operator to investigate.

What to include when contacting an operator

Provide the following details to help reproduce and narrow down the issue:
  • Time and timezone, web or app environment, and test setup
  • AdUnit ID, line item ID, and allocation ID or status
  • HTTP status, whether an ad object was returned, and request ID if available
  • Whether the ad appeared, which metrics are missing, and the date range you checked
  • Relevant request conditions or log excerpts with user data, tokens, and secrets removed
If the AdUnit, allocation, and creative statuses do not agree, or a setting is not visible to your account, ask the responsible operator to review it.