Спасибо, что заглянули!Я был бы признателен за (ре) создание окончательной воронки GA Session в Big Query.Основное внимание уделяется последовательности за сеанс с определенными, но не обязательно последовательно посещаемыми страницами в течение одного сеанса.
![Desired result from query](https://i.stack.imgur.com/TPSE8.png)
Решение должно считать сеансы как COUNT( DISTINCT CONCAT(fullVisitorId, CAST(visitStartTime AS STRING)))
.
Кроме того, воронка должна иметь такую форму, чтобы каждый шаг воронки мог быть достигнут только в том случае, если предыдущий шаг был завершен в течение сеанса (например, четвертый шаг должен учитываться только в том случае, если шаги 1–3 были посещеныво время сеанса).Однако шаги не нужно выполнять последовательно
Именно поэтому, к сожалению, этот пример , который мне очень нравится, не будет работать для меня.Возвращает цифры для посещений totals.visits
.Кроме того, мне нужно использовать REGXP_CONTAINS
для страниц, так как у меня нет событий (или пользовательских измерений) на моих страницах для шагов последовательности.Для исходного запроса (для каждого соответствующего шага)
SUM((SELECT 1 FROM UNNEST(hits) WHERE eventInfo.eventAction = 'landing_page' LIMIT 1)) Landing_Page
Я пытался:
COUNT( DISTINCT( SELECT CONCAT(fullVisitorId, CAST(visitStartTime AS STRING)) FROM UNNEST(GA.hits) WHERE REGEXP_CONTAINS(hits.page.pagePath, r”myfunnelpage”)
Однако, мои посещения пошаговой последовательности фактически больше, чем мои общие «сеансы» согласно COUNT( DISTINCT CONCAT(fullVisitorId, CAST(visitStartTime AS STRING))) AS overday_sessions
.
Другой пример смотрит на пользовательские сессии (я невероятно впечатлен, также абсолютно запуган, поддерживает @Martin) Предположительно, есть веб-сайт , который должену меня все вышло из строя, когда я написал это # StuffGettingLostOnline
Мой подход будет выглядеть примерно так.Но он возвращает только сеансы с просмотром одной страницы, а не последовательные:
SELECT
date,
COUNT( DISTINCT( SELECT CONCAT(fullVisitorId, CAST(visitStartTime AS STRING)) FROM UNNEST(GA.hits) WHERE REGEXP_CONTAINS(hits.page.pagePath, r"productoverviewpage") LIMIT 1)) AS product_overview_s1,
COUNT( DISTINCT( SELECT CONCAT(fullVisitorId, CAST(visitStartTime AS STRING)) FROM UNNEST(GA.hits) WHERE EXISTS(SELECT 1 FROM UNNEST(GA.hitS) WHERE REGEXP_CONTAINS(hits.page.pagePath, r"productoverviewregex")) AND REGEXP_CONTAINS(hits.page.pagePath, cartoverviewregex") LIMIT 1)) AS cart_overview_s2
FROM
data as GA,
UNNEST(GA.hits) AS hits
WHERE hits.type = "PAGE"
AND
TRUE IN UNNEST(
[REGEXP_CONTAINS(hits.page.pagePath, r"productoverviewpage"),
REGEXP_CONTAINS(hits.page.pagePath, r"cartoverviewregex""]
)
Есть идеи?Кто-нибудь может воссоздать окончательную последовательность больших запросов, используя «правильное» количество сеансов?