> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aiderx.io/llms.txt
> Use this file to discover all available pages before exploring further.

# When an ad does not appear

> Check each step from the ad request through rendering and metric collection.

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

| Symptom | Check first |
| - | - |
| The ad slot is empty and the response has no ad | Line item, allocation, target, and request conditions |
| The API returns an ad, but it is not visible | Rendering for the returned format and the app or website integration |
| The ad is visible, but impression or click metrics are missing or differ | Event tracking, log integration, date range, and metric filters |

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](https://docs.aiderx.io/guides/for-advertisers/en/lifecycle.md) 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](https://docs.aiderx.io/guides/for-advertisers/en/campaign-budget.md) for budget and goals, and [Change status and end delivery](https://docs.aiderx.io/guides/for-advertisers/en/lifecycle.md) 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](https://docs.aiderx.io/guides/for-advertisers/en/allocation-request.md) and [Allocation approval](https://docs.aiderx.io/guides/for-retailers/en/allocation-review.md).
* 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](https://docs.aiderx.io/guides/for-retailers/en/placement.md).

### 3. Creative and line item link

* 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](https://docs.aiderx.io/guides/for-advertisers/en/creative-types.md) for creative, link, and size checks, and [Native formats and styles](https://docs.aiderx.io/guides/for-retailers/en/native-formats.md) 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](https://docs.aiderx.io/guides/for-advertisers/en/targeting-strategy.md).
* 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](https://docs.aiderx.io/development/en/serving-ad.md) 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](https://docs.aiderx.io/development/en/serving-ad.md) 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](https://docs.aiderx.io/development/en/log-integration-data-migration.md).

## 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](https://docs.aiderx.io/guides/for-retailers/en/analytics.md). Advertisers can review their own metrics in [Performance analytics](https://docs.aiderx.io/guides/for-advertisers/en/performance-analytics.md).

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.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.