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

# Explorer

> Создавайте кастомные аналитические запросы и отчеты с помощью Explorer в Aftersell.

Explorer позволяет создавать кастомные аналитические запросы с помощью гибкого конструктора запросов (AftersellQL). Вы можете выбирать метрики, группировать результаты по измерениям, применять фильтры и визуализировать данные в диаграммах или таблицах. Сохраненные запросы можно добавлять в отчеты как виджеты для постоянного мониторинга.

<Tip>
  Вы строите запросы визуально с помощью меню — синтаксис не требуется. Если вы предпочитаете вводить запросы напрямую, Explorer также предоставляет доступ к исходному тексту AftersellQL. Справочник по синтаксису см. в разделе [Написание AQL-запросов](#writing-aql-queries) ниже.
</Tip>

***

<div id="available-metrics">
  ## Доступные метрики
</div>

Это метрики, которые вы можете выбрать в Explorer, сгруппированные так же, как они группируются в списке выбора метрик.

<div id="revenue-profit">
  ### Доход и прибыль
</div>

| Метрика                      | Описание                                                                                                                                                                                                                                                                                                                                                                |
| ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Revenue**                  | Доход от апселлов в родной валюте вашего магазина.                                                                                                                                                                                                                                                                                                                      |
| **Revenue (USD)**            | Доход от апселлов, нормализованный в USD для сравнений между валютами.                                                                                                                                                                                                                                                                                                  |
| **Revenue Per Visit**        | Доход от апселлов на сессию с показом. Не может разбиваться по товару, размещению, воронке или устройству.                                                                                                                                                                                                                                                              |
| **Avg. Conversion Value**    | Доход на принятое предложение. Также называется Average Upsell Value.                                                                                                                                                                                                                                                                                                   |
| **Upsell Revenue Per Order** | Доход от апселлов (USD), деленный на общее количество заказов. Только на уровне магазина.                                                                                                                                                                                                                                                                               |
| **Product Profit**           | Доход минус себестоимость проданных товаров (COGS) для апселл-товаров. Опирается на настроенную мерчантом себестоимость, поэтому относитесь к нему как к оценке: товары без указанной себестоимости отражают доход как прибыль, а покрытие себестоимости варьируется по магазинам. Только на уровне товара; не может разбиваться по воронке, размещению или устройству. |

<div id="conversions">
  ### Конверсии
</div>

| Метрика          | Описание                                                                                                                                                                          |
| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Conversions**  | Количество событий принятых предложений. Одно принятое предложение — одна конверсия, поэтому сессия, принявшая два предложения, считается дважды.                                 |
| **Accept Rate**  | На основе сессий: доля сессий, увидевших предложение и принявших хотя бы одно. Вычисляется независимо от Conversions, из другой сводки, поэтому это не Conversions ÷ Impressions. |
| **Units Sold**   | Общее количество единиц, проданных через апселл-предложения.                                                                                                                      |
| **Decline Rate** | Процент post-purchase предложений, явно отклоненных. Только post-purchase.                                                                                                        |

<div id="engagement">
  ### Вовлеченность
</div>

| Метрика         | Описание                                  |
| --------------- | ----------------------------------------- |
| **Impressions** | Уникальные сессии, увидевшие предложение. |
| **Show Rate**   | Процент решений, приведших к показу.      |

<div id="store-performance">
  ### Показатели магазина
</div>

| Метрика                       | Описание                                                                                                                                        |
| ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| **Total Store Revenue**       | Общий доход от оплаченных заказов Shopify. Только на уровне магазина — не может разбиваться по поверхности, воронке, размещению или устройству. |
| **Orders**                    | Общее количество оплаченных заказов Shopify. Только на уровне магазина.                                                                         |
| **Average Total Order Value** | Доход магазина, деленный на количество заказов. Средняя стоимость заказа на уровне магазина.                                                    |

<div id="rokt-network">
  ### Сеть Rokt
</div>

| Метрика                        | Описание                                                                                                         |
| ------------------------------ | ---------------------------------------------------------------------------------------------------------------- |
| **Rokt Revenue**               | Доход сети Rokt, отнесенный к вашему магазину.                                                                   |
| **Rokt Transactions**          | Количество транзакций сети Rokt для вашего магазина.                                                             |
| **Rokt Revenue / Transaction** | Доход Rokt, деленный на количество транзакций за временной интервал.                                             |
| **Rokt Impressions**           | Общее количество показов сети Rokt по размещениям вашего магазина. Отличается от апселл-метрики **Impressions**. |
| **Rokt Referrals**             | Рефералы сети Rokt — позитивные взаимодействия, направившие покупателя к партнеру Rokt.                          |

***

<div id="dimensions">
  ## Измерения
</div>

Измерения позволяют разбивать метрики по конкретному атрибуту. Не все измерения совместимы с каждой метрикой.

<Note>
  Некоторые комбинации измерений и метрик несовместимы. Например, **Decline rate** и **Show rate** нельзя разбить по **Currency**. Explorer автоматически предотвращает несовместимые комбинации.
</Note>

<div id="available-dimensions">
  ### Доступные измерения
</div>

| Измерение     | Описание                                                                                                                                             |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Date**      | Группирует результаты по дню, неделе или месяцу.                                                                                                     |
| **Surface**   | Поверхность апселла. Одна из: PPU (post-purchase), Checkout, Thank You Page или Cart.                                                                |
| **Funnel**    | Конкретная воронка, к которой относится предложение.                                                                                                 |
| **Product**   | Товар апселла.                                                                                                                                       |
| **Placement** | Размещение внутри воронки.                                                                                                                           |
| **Device**    | Тип устройства: Mobile, Desktop или Unknown. Отдельного значения для планшетов нет.                                                                  |
| **Currency**  | Код валюты ISO (например, USD, EUR, GBP). Полезно для мультивалютных магазинов. Совместимо с метриками уровня магазина и большинством апселл-метрик. |

<div id="unavailable-dimensions">
  ### Недоступные измерения
</div>

Следующие измерения находятся в разработке. Они отображаются в списке выбора, но пока недоступны для разбивки. Вместо этого они показываются как «Not compatible» для каждой метрики. **Этот документ будет обновлен, когда эти измерения будут полностью реализованы.**

| Измерение         | Описание                                                    |
| ----------------- | ----------------------------------------------------------- |
| **Flow type**     | Тип апселл-потока.                                          |
| **Experiment**    | Вариант A/B-теста или эксперимента.                         |
| **Outcome**       | Результат решения (например, подходит, нет в наличии).      |
| **Reason code**   | Причина результата решения.                                 |
| **Scope**         | Область решения (Flow, Experience, Placement или ItemSlot). |
| **Response type** | Ответ на предложение (Accepted, Declined или Timeout).      |

***

<div id="writing-aql-queries">
  ## Написание AQL-запросов
</div>

Каждый запрос, который вы строите в Explorer, — это выражение **AftersellQL (AQL)**. Чаще всего вы строите запросы визуально — выбирая метрики, измерения, фильтры и диапазон дат из меню — и вам никогда не нужно писать AQL вручную.

Для опытных пользователей Explorer также предоставляет исходный запрос в виде редактируемого текста. Этот раздел — справочник по этой текстовой форме: что означают клаузы, какие значения они принимают, и несколько готовых примеров.

<div id="how-an-aql-statement-reads">
  ### Как читается выражение AQL
</div>

Выражение AQL — это один вопрос, состоящий из клауз. Обязательны только `SELECT` и временной диапазон (`SINCE`); все остальное необязательно. Когда вы включаете необязательные клаузы, они должны идти в порядке, показанном ниже.

```text theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
SELECT    <metrics>                    -- what to measure (required)
WHERE     <filters>                    -- narrow the data
GROUP BY  <dimensions>                 -- break the numbers down
SINCE     <time range>                 -- the period to cover (required)
GRAIN     <time grain>                 -- bucket size for time series
COMPARE   <comparison>                 -- compare against another period
CHART     <visualization>              -- how to display the result
TIMEZONE  "<timezone>"                 -- timezone for date buckets
ORDER BY  <field> <direction>          -- sort the results
LIMIT     <number>                     -- cap the number of rows
```

Минимальный пример — ежедневный доход от апселлов и коэффициент принятия за последние 30 дней:

```aql theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
SELECT revenue, accept_rate
GROUP BY date
SINCE last_30d
GRAIN day
```

<Note>
  Ключевые слова нечувствительны к регистру (работают и `SELECT`, и `select`), а выражения не заканчиваются точкой с запятой. Строковые значения заключаются в двойные кавычки; числа и списки — нет.
</Note>

<div id="picking-what-to-measure-and-how-to-slice-it">
  ### Выбор того, что измерять и как разрезать
</div>

* **`SELECT`** перечисляет метрики для измерения через запятую — например `SELECT revenue, impressions, accept_rate`.
* **`GROUP BY`** разбивает эти метрики по одному или нескольким измерениям, таким как `date`, `device`, `surface` или `funnel`. Без `GROUP BY` вы получите один итог за весь период.

Полный список доступных метрик и измерений — и разрешенных комбинаций — см. выше в разделах [Доступные метрики](#available-metrics) и [Доступные измерения](#available-dimensions). Explorer автоматически предотвращает несовместимые комбинации метрик и измерений.

<div id="filtering-with-where">
  #### Фильтрация с помощью `WHERE`
</div>

`WHERE` сужает данные до их измерения. Комбинируйте условия с помощью `AND`.

```aql theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
SELECT revenue
WHERE device = "mobile"
GROUP BY date
SINCE last_month
GRAIN day
```

<Warning>
  `impressions`, `accept_rate` и `rpv` **нельзя** фильтровать или группировать по устройству, воронке, размещению или товару — в их исходной сводке нет такой колонки. Добавление `WHERE device = "mobile"` к запросу, выбирающему любую из них, отклоняется с ошибкой `metric "impressions" cannot be filtered by "device"`.
</Warning>

Поддерживаемые сравнения: `=`, `!=`, `IN`, `NOT IN`, `>`, `<`, `>=` и `<=`. Используйте список с `IN` для сопоставления нескольких значений:

```aql theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
WHERE surface IN ["PPU", "Checkout"]
```

`experiment` — **не** фильтруемое поле: у него нет источника в сводках, поэтому `WHERE experiment IN [...]` отклоняется с ошибкой `filters on "experiment" are not supported.` (По этой же причине оно перечислено в разделе **Недоступные измерения** ниже.)

<div id="filtering-by-multiple-funnels">
  #### Фильтрация по нескольким воронкам
</div>

Фильтр **funnel** поддерживает операторы множественного выбора, так что вы можете ограничить запрос подмножеством ваших воронок:

* **is one of** — включает только выбранные воронки (`IN`).
* **is not one of** — исключает выбранные воронки (`NOT IN`).

Когда вы выбираете **is one of** или **is not one of**, поле ввода значения меняется на прокручиваемый список с флажками, показывающий все названия ваших воронок. Выберите столько воронок, сколько нужно.

Когда вы группируете результаты по **Funnel** и применяете фильтр **is one of**, линейная диаграмма показывает одну линию на каждую выбранную воронку — даже если вы выберете больше, чем количество серий по умолчанию. Ни одна выбранная воронка не сворачивается в категорию «Other».

<div id="time-ranges-and-comparisons">
  ### Временные диапазоны и сравнения
</div>

Каждому запросу нужен временной диапазон, задаваемый с помощью `SINCE`. Используйте пресет или пользовательское окно.

| Форма                 | Пример                              | Значение                                                                                                                                                                                      |
| --------------------- | ----------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Пресет                | `SINCE last_30d`                    | Скользящее окно, заканчивающееся **вчера** (UTC). Текущий незавершенный день намеренно исключен, поэтому `last_1d` означает только вчера, а `this_month` идет с 1-го числа по вчерашний день. |
| Пользовательское окно | `SINCE 2026-07-02 UNTIL 2026-07-05` | Фиксированный диапазон с ISO-датами (`YYYY-MM-DD`).                                                                                                                                           |

Доступные пресеты: `last_1d`, `last_7d`, `last_30d`, `last_90d`, `this_month`, `last_month` и `this_year`.

* **`GRAIN`** задает размер интервала для временных рядов — `day`, `week` или `month`. (`hour` парсится, но ни одна сводка не отдает почасовые данные, поэтому такой запрос отклоняется с ошибкой `group_by / time_grain combination is not supported.`)
* **`COMPARE`** накладывает второй период, чтобы вы могли сразу увидеть изменение. Используйте `previous_period` — окно равной длины непосредственно перед выбранным. `previous_year` намеренно скрыт из списка выбора Compare, поскольку хранилище не содержит данных до февраля 2026 года; его по-прежнему можно ввести только в AQL, чтобы ранее сохраненные запросы продолжали парситься.

```aql theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
-- A four-day sale vs the four days immediately before it
SELECT revenue, impressions, accept_rate
GROUP BY date
SINCE 2026-07-02 UNTIL 2026-07-05
GRAIN day
COMPARE previous_period
```

<Note>
  Данные отчетности начинаются с **февраля 2026 года**, поэтому окно ранее этой даты возвращает пустой результат для обоих периодов. По этой же причине сравнения год к году пока не предлагаются.
</Note>

<div id="choosing-a-chart-and-timezone">
  ### Выбор диаграммы и часового пояса
</div>

Эти необязательные клаузы обычно задаются за вас визуальными элементами управления Explorer, но вы также можете написать их напрямую:

* **`CHART`** задает способ отображения результата: `scorecard`, `line_chart`, `bar_chart`, `area_chart`, `funnel_chart` или `table`.
* **`TIMEZONE`** задает часовой пояс для группировки дат, как имя IANA в кавычках — например `TIMEZONE "America/New_York"`. По умолчанию UTC.

```aql theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
SELECT revenue
GROUP BY date
SINCE last_30d
GRAIN day
CHART line_chart
TIMEZONE "America/New_York"
```

Тип `funnel_chart` имеет особые требования:

* **Режим размещений** — сгруппируйте по `placement` и выберите одну метрику. Этапы упорядочиваются по канонической последовательности размещений (апселл по умолчанию → даунселл → дополнительные апселлы). Отображается только первая метрика; дополнительные выбранные метрики отмечаются в сноске.
* **Режим метрик** — выберите две или более метрики без `GROUP BY`. Каждая метрика становится этапом воронки в порядке запроса (например, `SELECT impressions, conversions` показывает отсев от показов к конверсиям). Все метрики должны иметь одну и ту же единицу измерения (например, нельзя смешивать валютные и процентные метрики).

```aql theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
-- Placement funnel: conversion drop-off across placements
SELECT conversions
GROUP BY placement
SINCE last_30d
CHART funnel_chart
```

<Warning>
  Режиму размещений нужна метрика, которую действительно можно разбить по размещению. `impressions`, `accept_rate` и `rpv` — нельзя: для них воронкообразная диаграмма показывает «These metrics can't be grouped by placement».
</Warning>

```aql theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
-- Metric funnel: impressions to conversions drop-off
SELECT impressions, conversions
SINCE last_30d
CHART funnel_chart
```

<div id="sorting-and-limiting">
  ### Сортировка и ограничение
</div>

* **`ORDER BY`** сортирует результаты по метрике или измерению, с `ASC` или `DESC`.
* **`LIMIT`** ограничивает количество возвращаемых строк — полезно для вопросов вида «топ N».

```aql theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
-- Top 20 products by upsell revenue this month
SELECT revenue, conversions, avg_conversion_value
GROUP BY product
SINCE this_month
ORDER BY revenue DESC
LIMIT 20
```

<div id="more-examples">
  ### Больше примеров
</div>

```aql theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
-- Daily performance vs the previous period
SELECT revenue, impressions, conversions, accept_rate
GROUP BY date
SINCE last_30d
GRAIN day
COMPARE previous_period
```

```aql theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
-- Mobile vs desktop revenue over the last 90 days
SELECT revenue
GROUP BY device
SINCE last_90d
ORDER BY revenue DESC
```

<Note>
  `impressions`, `accept_rate` и `rpv` нельзя разбить по устройству — их сводка имеет структуру «магазин × поверхность × день», без колонки устройства. Для сравнений по устройствам используйте `revenue` (или другую метрику, основанную на конверсиях).
</Note>

```aql theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
-- Which surface is driving the most revenue?
SELECT revenue, impressions, accept_rate
GROUP BY surface
SINCE last_30d
ORDER BY revenue DESC
```

Когда у вас есть подходящий запрос, сохраните его и добавьте в отчет как виджет, чтобы он продолжал обновляться, — см. [Управление виджетами](/ru/aftersell/reports_widgets). Чтобы удалить ненужный виджет, загрузите его в Explorer и нажмите **Delete** в строке заголовка. Удаление виджета убирает его из всех отчетов, где он присутствует. Кнопка **Delete** отображается только для принадлежащих вам виджетов; глобальные шаблонные виджеты доступны только для чтения.

***

<div id="exporting-results">
  ## Экспорт результатов
</div>

Explorer показывает результаты вашего запроса на экране в виде скоркарты, диаграммы или таблицы — он не скачивает файл напрямую из представления запроса.

Чтобы получить результаты в виде файла, сохраните запрос и добавьте его в отчет как [виджет](/ru/aftersell/reports_widgets). У каждого виджета есть собственная кнопка **Export to CSV**, которая скачивает данные виджета в виде файла `.csv`. О стандартных экспортах страницы Analytics (Excel и CSV) см. [Экспорт данных](/ru/aftersell/analytics_in_aftersell#exporting-your-data).

***

<div id="timezone-support">
  ## Поддержка часовых поясов
</div>

По умолчанию запросы выполняются в UTC. Вы можете переопределить часовой пояс для любого запроса прямо в панели инструментов Explorer, чтобы результаты, сгруппированные по датам (ежедневные, еженедельные, ежемесячные разбивки), отражали ваше местное время, а не UTC.

<Note>
  Запросы, включающие **Impressions**, **Accept Rate** или **Revenue Per Visit**, всегда группируют даты в UTC, независимо от выбранного вами часового пояса. Эти метрики берутся из ежедневной сводки, которая отчитывается только по дням в UTC. Если запрос смешивает одну из этих метрик с другими, весь набор результатов переходит на UTC, чтобы интервалы дат оставались согласованными.
</Note>

<div id="setting-a-timezone-for-a-query">
  ### Установка часового пояса для запроса
</div>

1. Откройте Explorer в вашей админ-панели Aftersell.
2. В панели инструментов нажмите селектор **Timezone** (рядом с **Compare**).
3. Выберите один из доступных часовых поясов из списка или выберите **Account default**, чтобы использовать часовой пояс, настроенный в ваших настройках аналитики.
4. Выполните запрос. Результаты группируются с использованием выбранного часового пояса.

Выбранный часовой пояс сохраняется вместе с запросом. Когда вы сохраняете и повторно загружаете запрос, часовой пояс восстанавливается автоматически.

<div id="account-default-timezone">
  ### Часовой пояс по умолчанию для аккаунта
</div>

Если у вас включена опция **Lock reporting timezone** в настройках аналитики, выбор **Account default** в панели инструментов использует этот зафиксированный часовой пояс для вашего запроса. Метка в панели инструментов показывает итоговую зону, например **Timezone: Account default (Paris (CET))**.

Страница настроек аналитики принимает полный список часовых поясов IANA, но Reports учитывает только десять зон, указанных выше. Если ваша зафиксированная зона не входит в их число, **Account default** молча разрешается в UTC — поэтому выбирайте зафиксированную зону из этого списка, если хотите, чтобы Reports ей следовал.

Если **Lock reporting timezone** не включена, **Account default** возвращается к UTC.

<div id="specifying-a-timezone-in-aql">
  ### Указание часового пояса в AQL
</div>

Вы также можете указать часовой пояс непосредственно в вашем AQL-запросе с помощью клаузы `TIMEZONE`, которая располагается между `CHART` и `ORDER BY`:

```aql theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
SELECT ...
CHART ...
TIMEZONE "Asia/Tokyo"
ORDER BY ...
```

Когда клауза присутствует, она переопределяет выбор в панели инструментов для этого запроса. Часовой пояс сохраняется при сохранении и повторной загрузке запроса.

<div id="available-timezones">
  ### Доступные часовые пояса
</div>

Список выбора часовых поясов включает следующие варианты:

| Часовой пояс         | Пример местоположения            |
| -------------------- | -------------------------------- |
| UTC                  | Всемирное координированное время |
| America/New\_York    | Нью-Йорк (ET)                    |
| America/Chicago      | Чикаго (CT)                      |
| America/Denver       | Денвер (MT)                      |
| America/Los\_Angeles | Лос-Анджелес (PT)                |
| Europe/London        | Лондон (GMT/BST)                 |
| Europe/Paris         | Париж (CET/CEST)                 |
| Asia/Tokyo           | Токио (JST)                      |
| Asia/Singapore       | Сингапур (SGT)                   |
| Australia/Sydney     | Сидней (AEST/AEDT)               |

Это закрытый набор из десяти зон. Любой другой часовой пояс IANA в клаузе `TIMEZONE` отклоняется как неподдерживаемый.

<div id="how-timezone-affects-query-results">
  ### Как часовой пояс влияет на результаты запроса
</div>

Когда часовой пояс задан, группировка по датам в вашем запросе использует местное время вместо UTC. Например, событие, произошедшее в `2026-03-29T01:30:00Z` (UTC), приходится на 28 марта по времени Нью-Йорка (ET), но на 29 марта по времени Парижа (CET). Установка правильного часового пояса гарантирует, что ваши ежедневные, еженедельные и ежемесячные разбивки соответствуют ожиданиям вашей бизнес-отчетности.

Запросы, не включающие часовой пояс, — включая ранее сохраненные запросы — продолжают выполняться в UTC, поэтому существующие результаты не затрагиваются.

***

<div id="need-help">
  ## Нужна помощь?
</div>

Если у вас есть вопросы об Explorer или вы хотите получить доступ, свяжитесь со службой поддержки Aftersell через чат в приложении.
