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

# Ad Campaigns

Create Advertising Campaigns where Xibo will work out how many plays are needed to satisfy entered criteria and handle the scheduling automatically for you.

{% hint style="info" %}
Enable the **Access to Ad Campaigns** Feature for each User/User Group who should have full access to this feature!
{% endhint %}

## Create an Ad Campaign

1. Click on **Campaigns** under the **Design** section of the main CMS menu
2. Click the **Add Campaign** button at the top of the grid
3. Select **Ad Campaign** from the drop down menu and complete the form fields
4. Give your Ad Campaign a **Name** for easy identification in the CMS including optional Tags
5. Use the drop down to set the **Target Type** for this Ad Campaign as **Plays**, **Budget** or **Impressions**
6. Include the total **Target** number for this Ad Campaign in relation to its selected Target Type
7. Click to **Save**

Next, criteria needs to be set to allow Xibo to work out the play frequency.

From the grid, use the row menu for the **Ad Campaign** and select **Edit**:

![Edit Ad Campaign](https://2811002782-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fj0uXhtBdyPyW40TfKTZd%2Fuploads%2Fgit-blob-9650b8ff4e42bec692669f33920d88dc10b10d26%2Fv4.5_campaigns_edit_ad_campaign.png?alt=media)

1. Provide **Start** and **End** Dates and Times for the Ad Campaign. (This is required information and **cannot** be left blank)
2. Select from available **Displays** and **Display Groups** to play this Ad Campaign on. (This is required information and **cannot** be left blank)
3. Click to **Save**

{% hint style="warning" %}
Ensure that Displays have had **Display Details** correctly entered for the selected Displays which play this Ad Campaign, ensuring that **Cost per play** and **Impressions per play** fields have been completed.
{% endhint %}

{% hint style="danger" %}
**Proof of Play** needs to be set to **ON** for all Displays/Display Groups selected here, to ensure accurate reporting and plays!&#x20;
{% endhint %}

* Assign a Layout using the **Layout** drop down menu.

Once a Layout is selected further scheduling options are available:

![Assign Layouts Ad Campaign](https://2811002782-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fj0uXhtBdyPyW40TfKTZd%2Fuploads%2Fgit-blob-9b4d342c285e9d6e9412ad9c7d52702dd8983e3d%2Fv4.5_campaigns_assign_layouts_ad_campaign.png?alt=media)

* Select which **Days of the Week** this Layout should be active in this Ad Campaign.
* Choose from existing Dayparts if this Layout is only to be shown at selected predefined times.

{% hint style="info" %}
Ad Campaigns can include multiple instances of the same Layout with different Dayparts assigned if required.\
For example, If you needed to show the same Layout for a defined 'Morning' daypart as well as a defined 'Evening' daypart add the Layout twice and define the required dayparts individually for each!
{% endhint %}

* Draw areas on the map to provide **geo fenced** based plays for any mobile displays, with content to be shown on entering a defined area.

{% hint style="success" %}
You can have multiple areas defined on the same map!
{% endhint %}

* Click to **Save**.

The Layout will be added to the Campaign which can be edited/deleted if required using the row menu:

Continue to build your Ad Campaign by selecting Layouts and defining scheduling options.

{% hint style="success" %}
Xibo will schedule automatically to fulfil the required play criteria to meet entered Targets.
{% endhint %}

Ad Campaigns can be viewed on the **Schedule** as locked entries which cannot be edited from the scheduler itself.

**Agenda** can be used to see a more detailed play view of the Ad Campaign and preview included Layouts.

The Ad Campaign progress will be shown in the Campaigns grid and on opening the Ad Campaign, providing that Proof of Play has been set to ON for all Displays and Layouts selected for the Campaign. As well as Cost per play and Impressions per play fields are completed for all selected Displays.

{% hint style="danger" %}
If the above information is omitted the reporting cannot update to reflect Plays, Spend, Impressions and Target which will all show a 0 value. The Ad Campaign itself will also try and catch up to increase the Target which will result in Layouts being played more and more frequently until its the only content shown in order to fulfil the target.&#x20;
{% endhint %}

{% hint style="info" %}
The Reference tab can be used to provide reference information for the selected Campaign. Once added, this information can be viewed in the Campaign grid and via the API.&#x20;
{% 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.xibosignage.com/scheduling/scheduling_ad_campaigns.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
