добавление улучшенных показателей электронной коммерции к запросу - PullRequest
0 голосов
/ 18 апреля 2019

У меня есть этот запрос, который я хотел бы добавить дополнительную метрику "представления сведений о продукте", это hit.ecommerceaction.action_type = 2.

Я в целом понимаю, как работают эти запросы, но этоодин уже сложен для меня, и я изо всех сил пытаюсь добавить эти дополнительные вложенные хиты в микс.

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

SELECT DISTINCT
   a.date
  ,a.landingpage
  ,a.medium
  ,a.sources
  ,a.campaign
  ,a.device
  ,a.content
  ,a.country
  ,COUNT(DISTINCT(a.sessionId)) sessions
  ,SUM(a.bounces) bounces
  ,SUM(a.trans) trans
  ,SUM(a.rev)/1000000 rev
  ,AVG(a.avg_pages) avg_pages
  ,(SUM(tos)/COUNT(DISTINCT(a.sessionId)))/60 session_duration
  ,COUNT(DISTINCT(a.user)) users



FROM
(
    SELECT DISTINCT 
       CONCAT(CAST(fullVisitorId AS STRING),CAST(visitStartTime AS STRING)) sessionId
      ,fullvisitorid user
      ,(SELECT sourcePropertyInfo.sourcePropertyDisplayName FROM UNNEST(hits) where hitnumber = (SELECT MIN(hitnumber) from UNNEST(hits) where type = 'PAGE')) country
      ,(SELECT page.pagePath FROM UNNEST(hits) WHERE hitnumber = (SELECT MIN(hitnumber) FROM UNNEST(hits) WHERE type = 'PAGE')) landingpage

      ,date
      ,trafficSource.medium medium
      ,trafficSource.source sources
      ,trafficSource.campaign campaign
      ,trafficSource.adContent content
      ,device.deviceCategory device
      ,totals.bounces bounces

      ,totals.timeonsite tos
      ,totals.transactions trans
      ,totals.transactionRevenue as rev
      ,(SELECT COUNT(hitnumber) FROM UNNEST(hits) WHERE type = 'PAGE') avg_pages



   FROM `ghd-analytics-235112.132444882.ga_sessions_*`
    WHERE _TABLE_SUFFIX >= '20190417'   /*date start*/
    AND _TABLE_SUFFIX <= '20190417'    /*date end*/ 
    AND totals.visits = 1   

) a
GROUP BY landingpage,medium,device,sources,campaign,content,date,country
ORDER BY sessions desc

Любые мысли / помощь высоко ценится!

1 Ответ

0 голосов
/ 18 апреля 2019

Я нашел решение, в котором я пробовал другие варианты, но теперь это похоже на работу.

 ,(SELECT COUNT(eventinfo.eventaction) FROM UNNEST(hits) WHERE eventinfo.eventaction = 'productDetail') pviews

Полный запрос здесь для всех, кому это понравится.

/* landing page, medium, source, campaign, adcontent, device, country, sessions, bounces, avg pages per session, time on site, transactions, revenue

   add additional dimensions and metrics into the second select statement, aggregate in the top select statement, order by any new dimensions

 */
 SELECT DISTINCT
   a.date
  ,a.landingpage
  ,a.medium
  ,a.sources
  ,a.campaign
  ,a.device
  ,a.content
  ,a.country
  ,COUNT(DISTINCT(a.sessionId)) sessions
  ,SUM(a.bounces) bounces
  ,SUM(a.trans) trans
  ,SUM(a.rev)/1000000 rev
  ,AVG(a.avg_pages) avg_pages
  ,(SUM(tos)/COUNT(DISTINCT(a.sessionId)))/60 session_duration
  ,COUNT(DISTINCT(a.user)) users
  ,sum(a.pviews) pviews



FROM
(
    SELECT DISTINCT 
       CONCAT(CAST(fullVisitorId AS STRING),CAST(visitStartTime AS STRING)) sessionId
      ,fullvisitorid user
      ,(SELECT sourcePropertyInfo.sourcePropertyDisplayName FROM UNNEST(hits) where hitnumber = (SELECT MIN(hitnumber) from UNNEST(hits) where type = 'PAGE')) country
      ,(SELECT page.pagePath FROM UNNEST(hits) WHERE hitnumber = (SELECT MIN(hitnumber) FROM UNNEST(hits) WHERE type = 'PAGE')) landingpage
       ,date
      ,trafficSource.medium medium
      ,trafficSource.source sources
      ,trafficSource.campaign campaign
      ,trafficSource.adContent content
      ,device.deviceCategory device
      ,totals.bounces bounces

      ,totals.timeonsite tos
      ,totals.transactions trans
      ,totals.transactionRevenue as rev
      ,(SELECT COUNT(hitnumber) FROM UNNEST(hits) WHERE type = 'PAGE') avg_pages
      ,(SELECT COUNT(eventinfo.eventaction) FROM UNNEST(hits) WHERE eventinfo.eventaction = 'productDetail') pviews


   FROM `ghd-analytics-XXXXXX.XXXXXXX.ga_sessions_*`
    WHERE _TABLE_SUFFIX >= '20190417'   /*date start*/
    AND _TABLE_SUFFIX <= '20190417'    /*date end*/ 
    AND totals.visits = 1   

) a


GROUP BY landingpage,medium,device,sources,campaign,content,date,country
ORDER BY sessions desc
...