> For the complete documentation index, see [llms.txt](https://docs.admoai.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.admoai.com/getting-started/quickstart/ad.md).

# Ad

### Creating an ad

#### 1. Select an advertiser

#### 2. Select a placement

Overriding of pricing can be done here.

#### 3. Select a template

{% hint style="success" %}
Only templates that have been linked to the selected placement will be available at this stage.
{% endhint %}

#### 4. Select styles

Select the styles this ad should be served in. The list of styles to chose from depend on the selected template in the previous step.

#### 5. Locales

Choose the locales this ad can be offered in. Ads will always have a default locale. When creating creatives, the corresponding locales will be available to populate.

<figure><img src="/files/hifZThGYEp71osCtllJH" alt=""><figcaption></figcaption></figure>

#### 6. Scheduling&#x20;

Start time, end time and pacing&#x20;

{% hint style="success" %}
Pacing options are **asap** or **evenly**. When evenly is selected, a start and end time must be present
{% endhint %}

#### 7. Capping (optional)

**Event Capping:** Cap clicks or impressions per day or over the lifetime of the ad.&#x20;

**Budget Capping:** Cap spending based on a daily or lifetime limit.

**Frequency Capping:** Cap how often an ad will be shown to the same user. Eg: Show the ad 3 times per day.&#x20;

{% hint style="success" %}
For frequency capping to work, it is required that your application sends a unique identifier per user. This identifier does not need to include personal information, but it must be a stable reference.&#x20;
{% endhint %}

#### 8. Priority

Apply a prioity to the ad (Standard, Sponsorship or House).&#x20;

Apply a weight to the ad (Higher meaning more weight).&#x20;

{% hint style="success" %}
This can be used to prioritize one ad over another ad. If there are two possible candidates when requesting an ad, the ad with a higher priority will be shown.
{% endhint %}

#### 9. Parting (optional)

Select the days and times the ad should be available to serve. Eg: All weekend, weekdays in the mornings etc.

<figure><img src="/files/gSQXjtdvcYAYPPCPUV8m" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
By default, the timezone used will be the timezone of the end user. However you may want to set a specific timezone for your ads to be shown in. For example: A worldwide event like the Superbowl
{% endhint %}

#### 10. Geotargeting (optional)

Select cities or countries you want to serve this ad in. In order for this function to work the ad request must contain one of the following:

* User's IP address, which will be used to determine the approximate location.
* &#x20;Geoname ID, if the approximate location is already known by the publisher, the geoname ID can be sent directly, omitting the IP address. Eg: For targeting in Germany, `2921044` could be sent.

<figure><img src="/files/SLr4LzuMg63yDAs0n40s" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
Must satisfy **ANY** of the geonames ids. Ads without geo targeting are always eligibles.
{% endhint %}

#### 11. Location Targeting (optional)

For more granular location targeting, radii can be created via latitude, longitude and a radius values. When an ad request contains `targeting.location` that falls within one of the radii, the ad will eligible to be served.

<figure><img src="/files/XCS4lOLk5pqLcwvayyzF" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
Must satisfy **ANY** of the coordinates. Ads without location targeting are always eligible.
{% endhint %}

#### 12. Destination Targeting (optional)

For more granular destination targeting, radii can be created via latitude, longitude, radius and minConfidence values. When an ad request contains `targeting.destination` that falls within one of the radii and the minConfidence value is higher than minimum value, the ad will be eligible to be served.

![](/files/YGSeikZ4JGc1MOiunKXS)

{% hint style="success" %}
Must satisfy **ANY** of the coordinates. Ads without destination targeting are always eligible.
{% endhint %}

#### 13. Custom Targeting (optional)

Create custom targeting parameters. When **targeting.custom** contains values matching the custom targeting, the ad will be eligible to be served.&#x20;

<figure><img src="/files/gbaqBVUs4Ao5V7ZYW4dH" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
Must satisfy **ALL** of the key values. Ads without custom targeting are always eligible.
{% endhint %}

### Ad Measurement & Verification

This section covers how to configure third-party verification for your ads using the Open Measurement (OMID) standard.

#### Open Measurement (OMID)

Open Measurement allows external vendors (such as IAS, DoubleVerify, or Moat) to verify ad viewability and brand safety. This is essential for enterprise-grade campaigns.

**General Configuration**

When setting up verification, you have the possibility to **use an existing configuration from the Advertiser**. These "Advertiser Templates" serve as a starting point to quickly populate vendor details, ensuring consistency across all ads under the same advertiser.

![](/files/XmGdsg8AM2P0mLkwTIPd)

**Configuration Fields**

When adding verification resources to an ad or creative, you must provide:

* **Vendor Key**: The unique identifier for the provider (e.g., `ias.com-omid`).
* **Script URL**: The URL of the JavaScript verification resource provided by the vendor.
* **Verification Parameters**: (Optional) A string of data used by the script to identify the specific placement or campaign.

{% hint style="success" %}
Automatic Inheritance

All active ad verifications will be automatically applied to all creatives in the advertisement. If no active verifications are configured at the ad level, no verifications will be returned.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.admoai.com/getting-started/quickstart/ad.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
