# Campaigns structure

Within the Gravity Field personalization platform, campaigns (both Frontend and API) are structured with a three-level hierarchy:

1. Campaign: This is the primary element we work with within a given campaign. It can take various forms, such as a button, a slider with banners, a recommendation widget (or a set of recommendation widgets), and more! At the campaign level, you configure the conditions for its activation.&#x20;
2. Experience: An experience represents a specific targeting setting that determines when and how this experience will trigger for which users. For example, you could create experiences for new users or for users who have interacted with more than a certain number of product pages and are currently on the cart page. A single campaign can have multiple experiences, which are organized as a funnel. When a user interacts with a campaign, they will be checked for compliance against the targeting conditions of the topmost experience. If the user meets these conditions, they remain in the first experience and are not evaluated against subsequent ones. If they don't meet the conditions, the system progresses to the second experience, and so on. All analytics for the personalization campaign are gathered at the experience level.
3. Variation: A variation represents a specific element that is displayed (or triggered) for the user. Multiple variations with different options for the element, such as different button colors or recommendation widgets with various algorithms, operate in an A/B test mode against each other. This allows for the testing and comparison of different approaches to optimize the user experience.


---

# Agent Instructions: 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://developer.gravityfield.ai/lang/en/platform-interface/campaigns-structure.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.
