Переход с Logs API на Data Streaming

Примечание

Функция доступна только для пакета Метрика Про.

При переходе с Logs API на Data Streaming (интеграция с Yandex Cloud) данные передаются в кластер ClickHouse. Формат данных Data Streaming не является обратно совместимым с Logs API: названия полей отличаются, а для некоторых полей Logs API нет прямого аналога.

В отличие от Logs API, данные Data Streaming содержат изменения визитов и хитов по версиям. Одна строка в логе — это одна версия визита или хита (события). Поэтому для одного визита или хита в логе может быть несколько строк. Как получить только финальную версию визита или хита, см. на странице Как работать с данными. Чтобы автоматически удалять устаревшие версии данных, в ClickHouse есть специальные механизмы, например CollapsingMergeTree.

Как перейти с Logs API на Data Streaming

  1. Создайте кластер ClickHouse в Yandex Cloud, если он еще не создан.
  2. Настройте Data Streaming: подключите источник данных (Метрика), выберите тип данных (хиты или визиты) и нужные поля, создайте трансфер. Включите потоковую передачу (тип трансфера Репликация), чтобы новые данные начали поступать в реальном времени.
  3. Сопоставьте поля в SQL-запросах и витринах данных с помощью таблиц соответствий на этой странице.
  4. Для полей Logs API, у которых нет прямого аналога в Data Streaming, используйте формулы для вычисляемых полей.
  5. Проверьте корректность данных в кластере ClickHouse, сравнив результаты запросов с данными из Logs API за пересекающийся период.
  6. После проверки переключите дашборды, отчеты и интеграции на чтение из ClickHouse и отключите выгрузку через Logs API.

Чтобы заполнить кластер архивными данными в том же формате, что и при потоковой передаче, запустите историческую выгрузку данных за нужный период (тип трансфера Копирование). В историческую выгрузку попадают данные, собранные более недели назад: например, за 17 августа данные будут доступны не раньше 10 августа.

Примечание

Data Streaming и Logs API можно использовать параллельно в течение переходного периода: данные будут поступать в оба источника. Это позволит сравнить результаты и убедиться в корректности миграции.

Чтобы облегчить миграцию и сохранить целостность витрин данных, на этой странице приведены:

Таблица соответствий полей хитов

В таблице приведены поля хитов (событий) Logs API и их аналоги в Data Streaming.

Примечание

Поля, для которых нет прямого аналога, помечены как «Вычисляемое поле» — см. раздел Формулы для вычисляемых полей. Поля, связанные с атрибуцией и гео-данными, описаны в отдельных разделах: Атрибуция и Гео-данные.

Поле Logs API

Поле Data Streaming

Примечание

ym:pv:watchID

WatchID

ym:pv:counterID

CounterID

ym:pv:clientID

FirstPartyCookie

ym:pv:date

EventDate

ym:pv:dateTime

Дата и время в формате UTC

ym:pv:title

Title

ym:pv:pageCharset

PageCharset

ym:pv:goalsID

GoalsReached

Идентификаторы достигнутых целей, включая офлайн-конверсии (доступны с 12 августа 2025 года)

ym:pv:URL

URL

ym:pv:referer

Referer

ym:pv:UTMCampaign

UTMCampaign

ym:pv:UTMContent

UTMContent

ym:pv:UTMMedium

UTMMedium

ym:pv:UTMSource

UTMSource

ym:pv:UTMTerm

UTMTerm

ym:pv:openstatAd

OpenstatAdID

ym:pv:openstatCampaign

OpenstatCampaignID

ym:pv:openstatService

OpenstatServiceName

ym:pv:openstatSource

OpenstatSourceID

ym:pv:operatingSystem

OSStr, OS

Строковый и числовой идентификатор ОС

ym:pv:from

FromTag

ym:pv:hasGCLID

HasGCLID

ym:pv:GCLID

GCLID

ym:pv:lastTrafficSource

—

См. раздел Атрибуция

ym:pv:lastSearchEngineRoot

SearchEngineRootID, SearchEngineRootStrID

См. раздел Атрибуция

ym:pv:lastSearchEngine

—

См. раздел Атрибуция

ym:pv:lastAdvEngine

AdvEngine, AdvEngineStrID

См. раздел Атрибуция

ym:pv:lastSocialNetwork

SocialSourceNetworkID, SocialSourceNetworkStrID

См. раздел Атрибуция

ym:pv:lastSocialNetworkProfile

SocialSourcePage

См. раздел Атрибуция

ym:pv:browser

UserAgentStr

Строковый идентификатор браузера

ym:pv:browserMajorVersion

UserAgentMajor

Старшая цифра версии браузера

ym:pv:browserMinorVersion

UserAgentMinor

Младшая цифра версии браузера

ym:pv:browserCountry

BrowserCountry

ym:pv:browserEngine

BrowserEngineID

ym:pv:browserEngineVersion1

BrowserEngineVersion1

ym:pv:browserEngineVersion2

BrowserEngineVersion2

ym:pv:browserEngineVersion3

BrowserEngineVersion3

ym:pv:browserEngineVersion4

BrowserEngineVersion4

ym:pv:browserLanguage

BrowserLanguage

ym:pv:clientTimeZone

ClientTimeZone

ym:pv:cookieEnabled

CookieEnable

ym:pv:deviceCategory

IsMobile, IsTablet, IsTV

1 — если хит совершен с соответствующего устройства

ym:pv:javascriptEnabled

JavascriptEnable

ym:pv:mobilePhone

MobilePhoneVendor

ym:pv:mobilePhoneModel

MobilePhoneModel

ym:pv:operatingSystemRoot

OSRoot, OSRootStr

Числовой и строковый идентификатор группы ОС

ym:pv:physicalScreenHeight

—

Вычисляемое поле, см. Формулы

ym:pv:physicalScreenWidth

—

Вычисляемое поле, см. Формулы

ym:pv:screenColors

ResolutionDepth

ym:pv:screenFormat

—

Вычисляемое поле, см. Формулы

ym:pv:screenHeight

ResolutionHeight

ym:pv:screenOrientation

—

Вычисляемое поле, см. Формулы

ym:pv:screenWidth

ResolutionWidth

ym:pv:windowClientHeight

WindowClientHeight

ym:pv:windowClientWidth

WindowClientWidth

ym:pv:ipAddress

ClientIP, ClientIP6

IPv4 или IPv6, с которого установлено TCP-соединение

ym:pv:regionCity

—

См. раздел Гео-данные

ym:pv:regionCountry

—

См. раздел Гео-данные

ym:pv:regionCityID

—

См. раздел Гео-данные

ym:pv:regionCountryID

—

См. раздел Гео-данные

ym:pv:isPageView

IsPageView

ym:pv:iFrame

IsIFrame

ym:pv:link

IsLink

ym:pv:download

IsDownload

ym:pv:notBounce

IsNotBounce

ym:pv:artificial

IsArtifical

ym:pv:parsedParamsKey1

ParsedParams.Key1

ym:pv:parsedParamsKey2

ParsedParams.Key2

ym:pv:parsedParamsKey3

ParsedParams.Key3

ym:pv:parsedParamsKey4

ParsedParams.Key4

ym:pv:parsedParamsKey5

ParsedParams.Key5

ym:pv:parsedParamsKey6

ParsedParams.Key6

ym:pv:parsedParamsKey7

ParsedParams.Key7

ym:pv:parsedParamsKey8

ParsedParams.Key8

ym:pv:parsedParamsKey9

ParsedParams.Key9

ym:pv:parsedParamsKey10

ParsedParams.Key10

ym:pv:httpError

HTTPError

ym:pv:networkType

NetworkType

ym:pv:shareService

ShareService

ym:pv:shareURL

ShareURL

ym:pv:shareTitle

ShareTitle

Таблица соответствий полей визитов

В таблице приведены поля визитов Logs API и их аналоги в Data Streaming.

Поле Logs API

Поле Data Streaming

Примечание

ym:s:visitID

VisitID

ym:s:counterID

CounterID

ym:s:watchIDs

WatchIDs

ym:s:date

StartDate

ym:s:dateTime

—

Приведите UTCStartTime к нужной таймзоне

ym:s:dateTimeUTC

UTCStartTime

ym:s:isNewUser

—

Вычисляемое поле, см. Формулы

ym:s:startURL

StartURL

ym:s:endURL

EndURL

ym:s:pageViews

PageViews

ym:s:visitDuration

Duration

Длительность визита в секундах

ym:s:bounce

IsBounce

ym:s:ipAddress

ClientIP, ClientIP6

ym:s:regionCountry

—

См. раздел Гео-данные

ym:s:regionCity

—

См. раздел Гео-данные

ym:s:regionCountryID

—

См. раздел Гео-данные

ym:s:regionCityID

—

См. раздел Гео-данные

ym:s:clientID

ClientID, FirstPartyCookie

ClientID — доменная кука и значение, отправленное через Measurement Protocol; FirstPartyCookie — отдельно

ym:s:networkType

NetworkType

ym:s:goalsID

Goals.ID

ym:s:goalsSerialNumber

Goals.Serial

ym:s:goalsDateTime

Goals.EventTime

ym:s:goalsPrice

Goals.Price

ym:s:goalsOrder

Goals.OrderID

ym:s:goalsCurrency

Goals.CurrencyID

ym:s:lastTrafficSource

—

См. раздел Атрибуция

ym:s:lastAdvEngine

—

См. раздел Атрибуция

ym:s:lastReferalSource

—

См. раздел Атрибуция

ym:s:lastSearchEngineRoot

—

См. раздел Атрибуция

ym:s:lastSearchEngine

—

См. раздел Атрибуция

ym:s:lastSocialNetwork

—

См. раздел Атрибуция

ym:s:lastSocialNetworkProfile

—

См. раздел Атрибуция

ym:s:referer

Referer

ym:s:lastDirectClickOrder

TrafficSource.ClickDirectCampaignID

Идентификатор кампании в Директе

ym:s:lastDirectBannerGroup

TrafficSource.ClickGroupBannerID

Идентификатор группы объявлений Директа

ym:s:lastDirectClickBanner

TrafficSource.ClickBannerID

Идентификатор рекламного объявления

ym:s:lastDirectClickOrderName

—

Нет прямого аналога. Есть TrafficSource.DirectCLID — идентификатор рекламного клика Директа (YCLID)

ym:s:lastClickBannerGroupName

—

Нет прямого аналога. Есть TrafficSource.DirectCLID

ym:s:lastDirectClickBannerName

—

Нет прямого аналога. Есть TrafficSource.DirectCLID

ym:s:lastDirectPhraseOrCond

—

Нет прямого аналога. Есть TrafficSource.DirectCLID

ym:s:lastDirectPlatformType

—

Нет прямого аналога. Есть TrafficSource.DirectCLID

ym:s:lastDirectPlatform

TrafficSource.ClickTargetType

Площадка размещения

ym:s:lastDirectConditionType

—

Нет прямого аналога. Есть TrafficSource.DirectCLID

ym:s:lastCurrencyID

Goals.CurrencyID, EPurchase.CurrencyID

ym:s:from

TrafficSource.FromTag

ym:s:UTMCampaign

TrafficSource.UTMCampaign

ym:s:UTMContent

TrafficSource.UTMContent

ym:s:UTMMedium

TrafficSource.UTMMedium

ym:s:UTMSource

TrafficSource.UTMSource

ym:s:UTMTerm

TrafficSource.UTMTerm

ym:s:openstatAd

TrafficSource.OpenstatAdID

ym:s:openstatCampaign

TrafficSource.OpenstatCampaignID

ym:s:openstatService

TrafficSource.OpenstatServiceName

ym:s:openstatSource

TrafficSource.OpenstatSourceID

ym:s:hasGCLID

TrafficSource.HasGCLID

ym:s:lastGCLID

—

См. раздел Атрибуция

ym:s:firstGCLID

—

См. раздел Атрибуция

ym:s:lastSignificantGCLID

—

См. раздел Атрибуция

ym:s:browserLanguage

BrowserLanguage

ym:s:browserCountry

BrowserCountry

ym:s:clientTimeZone

ClientTimeZone

ym:s:deviceCategory

IsMobile, IsTablet, IsTV

ym:s:mobilePhone

MobilePhoneVendor

ym:s:mobilePhoneModel

MobilePhoneModel

ym:s:operatingSystemRoot

OSRoot, OSRootStr

ym:s:operatingSystem

OSStr, OS

ym:s:browser

UserAgentStr

ym:s:browserMajorVersion

UserAgentMajor

ym:s:browserMinorVersion

UserAgentMinor

ym:s:browserEngine

BrowserEngineID

ym:s:browserEngineVersion1

BrowserEngineVersion1

ym:s:browserEngineVersion2

BrowserEngineVersion2

ym:s:browserEngineVersion3

BrowserEngineVersion3

ym:s:browserEngineVersion4

BrowserEngineVersion4

ym:s:cookieEnabled

CookieEnable

ym:s:javascriptEnabled

JavascriptEnable

ym:s:screenFormat

—

Вычисляемое поле, см. Формулы

ym:s:screenColors

ResolutionDepth

ym:s:screenOrientation

—

Вычисляемое поле, см. Формулы

ym:s:screenWidth

ResolutionWidth

ym:s:screenHeight

ResolutionHeight

ym:s:physicalScreenWidth

—

Вычисляемое поле, см. Формулы

ym:s:physicalScreenHeight

—

Вычисляемое поле, см. Формулы

ym:s:windowClientWidth

WindowClientWidth

ym:s:windowClientHeight

WindowClientHeight

ym:s:purchaseID

EPurchase.ID

ym:s:purchaseDateTime

EPurchase.EventTime

ym:s:purchaseAffiliation

EPurchase.Affiliation

ym:s:purchaseRevenue

EPurchase.Revenue

ym:s:purchaseTax

EPurchase.Tax

ym:s:purchaseShipping

EPurchase.Shipping

ym:s:purchaseCoupon

EPurchase.Coupon

ym:s:purchaseCurrency

EPurchase.Currency

ym:s:purchaseProductQuantity

EPurchase.ProductQuantity

ym:s:productsPurchaseID

EPurchaseWithProducts.ID

ym:s:productsID

EAction.ProductID

ym:s:productsName

EAction.ProductName

ym:s:productsBrand

EAction.ProductBrand

ym:s:productsCategory

EAction.ProductCategory

ym:s:productsCategory1

EAction.ProductCategory1

ym:s:productsCategory2

EAction.ProductCategory2

ym:s:productsCategory3

EAction.ProductCategory3

ym:s:productsCategory4

EAction.ProductCategory4

ym:s:productsCategory5

EAction.ProductCategory5

ym:s:productsVariant

EAction.ProductVariant

ym:s:productsPosition

EAction.ProductPosition

ym:s:productsPrice

EAction.ProductPrice

ym:s:productsCurrency

EAction.ProductCurrency

ym:s:productsCoupon

EAction.ProductCoupon

ym:s:productsQuantity

EAction.ProductQuantity

ym:s:impressionsURL

—

См. раздел Данные электронной коммерции

ym:s:impressionsDateTime

—

См. раздел Данные электронной коммерции

ym:s:impressionsProductID

—

См. раздел Данные электронной коммерции

ym:s:impressionsProductName

—

См. раздел Данные электронной коммерции

ym:s:impressionsProductBrand

—

См. раздел Данные электронной коммерции

ym:s:impressionsProductCategory

—

См. раздел Данные электронной коммерции

ym:s:impressionsProductCategory1

—

См. раздел Данные электронной коммерции

ym:s:impressionsProductCategory2

—

См. раздел Данные электронной коммерции

ym:s:impressionsProductCategory3

—

См. раздел Данные электронной коммерции

ym:s:impressionsProductCategory4

—

См. раздел Данные электронной коммерции

ym:s:impressionsProductCategory5

—

См. раздел Данные электронной коммерции

ym:s:impressionsProductVariant

—

См. раздел Данные электронной коммерции

ym:s:impressionsProductPrice

—

См. раздел Данные электронной коммерции

ym:s:impressionsProductCurrency

—

См. раздел Данные электронной коммерции

ym:s:impressionsProductCoupon

—

См. раздел Данные электронной коммерции

ym:s:offlineCallTalkDuration

Goals.CallTalkDuration

Продолжительность разговора в секундах

ym:s:offlineCallHoldDuration

Goals.CallHoldDuration

Продолжительность ожидания в секундах

ym:s:offlineCallMissed

Goals.CallMissed

Признак пропущенного звонка

ym:s:offlineCallTag

Goals.CallTag

Метки, ассоциированные со звонком

ym:s:offlineCallFirstTimeCaller

Goals.CallFirstTimeCaller

Признак первого звонка от этого клиента

ym:s:offlineCallURL

Goals.Call

Страница, с которой позвонили

ym:s:parsedParamsKey1

ParsedParams.Key1

ym:s:parsedParamsKey2

ParsedParams.Key2

ym:s:parsedParamsKey3

ParsedParams.Key3

ym:s:parsedParamsKey4

ParsedParams.Key4

ym:s:parsedParamsKey5

ParsedParams.Key5

ym:s:parsedParamsKey6

ParsedParams.Key6

ym:s:parsedParamsKey7

ParsedParams.Key7

ym:s:parsedParamsKey8

ParsedParams.Key8

ym:s:parsedParamsKey9

ParsedParams.Key9

ym:s:parsedParamsKey10

ParsedParams.Key10

Формулы для вычисляемых полей

Некоторые поля Logs API вычисляются на стороне сервиса, тогда как в Data Streaming передаются необработанные данные. Поля Logs API, которые не имеют прямого аналога в Data Streaming, можно вычислить с помощью формул ClickHouse.

screenFormat

toUInt16(ifNotFinite(ResolutionWidth * 21 / ResolutionHeight, 0)) AS screenFormat

Поле screenFormat возвращает не разрешение, а число, которое соответствует следующим значениям:

Значение

Соотношение сторон

0

undefined

9

9:21

11

9:16

12

3:5

13

10:16

14

2:3

15

3:4

16

4:5

26

5:4

28

4:3

31

3:2

33

16:10

35

5:3

37

16:9

49

21:9

screenOrientation

toUInt8(
  if(IsTablet OR IsMobile,
    if(WindowClientHeight > 0 AND WindowClientWidth > 0,
      if(WindowClientWidth < WindowClientHeight, 1, 2),
      0),
    if(ResolutionHeight > 0 AND ResolutionWidth > 0,
      if(ResolutionWidth < ResolutionHeight, 1, 2),
      0)
  )
) AS screenOrientation

Значения screenOrientation:

  • 0 — undefined;
  • 1 — портретная ориентация;
  • 2 — альбомная ориентация.

physicalScreenWidth

if(
  UserAgent IN (2, 6, 72, 137, 14) OR (UserAgent = 70 AND NOT IsMobile),
  toUInt32(ResolutionWidth),
  toUInt32(ifNotFinite(ResolutionWidth * DevicePixelRatio, 0)) + bitAnd(toUInt16(toUInt32(ifNotFinite(ResolutionWidth * DevicePixelRatio, 0))), 1)
) AS physicalScreenWidth

physicalScreenHeight

if(
  UserAgent IN (2, 6, 72, 137, 14) OR (UserAgent = 70 AND NOT IsMobile),
  toUInt32(ResolutionHeight),
  toUInt32(ifNotFinite(ResolutionHeight * DevicePixelRatio, 0)) + bitAnd(toUInt16(toUInt32(ifNotFinite(ResolutionHeight * DevicePixelRatio, 0))), 1)
) AS physicalScreenHeight

isNewUser

Для определения новых пользователей используется атрибуция по времени первого визита. Сравните UTCStartTime первого визита с UTCStartTime текущего визита. Если значения совпадают, текущий визит — первый для данного пользователя.

TrafficSource.StartTime[indexOf(TrafficSource.Model, 3)] = UTCStartTime AS isNewUser

Где атрибуция 3 — «Первое посещение».

Атрибуция

В визитах Data Streaming, в отличие от Logs API, атрибуция хранится массивами. Все массивы TrafficSource.XXX соответствуют друг другу по типу атрибуции. Порядок элементов в массивах отражает, по какой модели атрибуции (TrafficSource.Model) считается значение поля TrafficSource.XXX, а внутри массива находится само значение.

Чтобы получить значение поля XXX в нужной модели атрибуции YYY, используйте функцию indexOf:

TrafficSource.XXX[indexOf(TrafficSource.Model, YYY)] AS XXX

Модели атрибуции

Код

Модель атрибуции

1

Последний переход

5

Последний значимый переход (кросс-девайс)

6

Первый переход (кросс-девайс)

11

Автоматическая (кросс-девайс)

Источники трафика

Значения в поле TrafficSource.ID:

Код

Источник

-1

Внутренние переходы

0

Прямые заходы

1

Переходы по ссылкам на сайтах

2

Переходы из поисковых систем

3

Переходы по рекламе

4

Переходы с сохраненных страниц

5

Не определен

6

Переходы по внешним ссылкам

7

Переходы с почтовых рассылок

8

Переходы из соцсетей

9

Переходы из рекомендательных систем

10

Переходы из мессенджеров

11

Переходы по QR-коду

Пример

SELECT
    VisitID,
    TrafficSource.ID[indexOf(TrafficSource.Model, 1)] AS lastTrafficSourceID, -- Источник трафика по атрибуции «Последний переход»
    TrafficSource.ID[indexOf(TrafficSource.Model, 5)] AS cd_last_significant_TraficSourceID, -- Источник трафика по атрибуции «Последний значимый переход» (кросс-девайс)
    TrafficSource.ID[indexOf(TrafficSource.Model, 6)] AS cd_first_TraficSourceID -- Источник трафика по атрибуции «Первый переход» (кросс-девайс)
FROM your_database.your_visits_table
WHERE StartDate = today() - 1

Подробнее о работе с массивами в ClickHouse см. в документации ClickHouse.

Гео-данные

В Data Streaming нет готовых полей с названиями стран и городов. Гео-данные представлены идентификаторами регионов (например, RegionID). Чтобы получить названия регионов по идентификаторам, используйте встроенные функции ClickHouse для работы с гео-словарями, например regionToName:

SELECT
    RegionID,
    regionToName(RegionID, 'ru') AS regionName
FROM your_database.your_visits_table
LIMIT 10

Подробнее о функциях работы с гео-данными см. в документации ClickHouse.

Данные электронной коммерции

В Data Streaming данные электронной коммерции хранятся в массивах:

  • EAction.* — массив действий с товарами в течение визита. В одном визите могут быть действия с просмотренными товарами, добавленными в корзину и купленными товарами. Тип действия можно узнать с помощью поля EAction.Type.
  • EPurchase.* — массив покупок в течение визита. За один визит может быть совершено несколько покупок.
  • EPurchaseWithProducts.* — массив купленных товаров. Совпадает с EAction.*, где оставлены только покупки (EAction.Type = 3).

Внимание

Если информация о покупке передана без заполнения массива products, массив EPurchase будет содержать данные о покупке, но EAction.Type = 3 в массиве EAction будет отсутствовать.

  • EPromotion.* — массив действий с внутренними промокампаниями в течение визита. Тип действия с промокампанией можно определить по полю EPromotion.Type.