BigQuery Вопрос Google Analytics по автоматизации - PullRequest
0 голосов
/ 04 апреля 2020

Здравствуйте: Может кто-нибудь, пожалуйста, помогите мне с этой проблемой.

Все наши кампании начинаются с даты

"20200312_NEWS _....."

Я хочу получать информацию о "Новых пользователях" в течение 7 дней. (т. 2020-03-12 до 2020-03-19)

Как я могу автоматизировать этот процесс? У меня есть 100 из этих кампаний. Я знаю дату начала, потому что в названии кампании. Я знаю дату окончания, потому что это всего лишь +7.

Я хочу сделать это как: Start_Date = Left (trafficSource.campaign, 8) End_Date = Left (trafficSource.campaign, 8) +7. Но тогда, как мне сказать, чтобы дать мне информацию о новых пользователях от Start_Date до End_Date. [введите описание изображения здесь] [1]

Это мой самый базовый c код:

ВЫБРАТЬ TrafficSource.campaign AS Campaign,

- Новые пользователи (metri c) COUNT (DISTINCT (СЛУЧАЙ КОГДА totals.newVisits = 1 THEN fullVisitorId ELSE NULL END)) AS New_Users

ОТ Table_1.ga_sessions_*

ГДЕ totalals.visits = 1 и _table_suffix BETWEEN ' 20200101 'И' 20201231 '

GROUP BY trafficSource.campaign

Ответы [ 3 ]

0 голосов
/ 05 апреля 2020

Итак, я получаю дату начала и окончания. Я могу разобрать дату. Но, например, если дата начала кампании - «2020-01-03», а дата окончания - «2020-01-10», а данные «нового пользователя» - от «2020-01-03» до « 2020-». 04-05 ». «Новый пользователь» не передает мне данные из диапазона дат «2020-01-03» на « 2020-01-10 »

Мой код:

SELECT trafficSource.campaign AS Campaign,

Случай, когда (SUBSTR (trafficSource.campaign, 10,4)) = 'news' затем PARSE_DATE ('% Y% m% d', (SUBSTR (trafficSource.campaign, 0,8))) end как Start_Date, Case When (SUBSTR (trafficSource.campaign, 10,4)) = 'news', затем DATE_ADD (PARSE_DATE ('% Y% m% d', (SUBSTR (trafficSource.campaign, 0) , 8))), INTERVAL 7 DAY) заканчивается как End_Date,

- Новые пользователи (metri c) COUNT (DISTINCT (CASE WHEN totals.newVisits = 1 THEN fullVisitorId ELSE NULL END)) AS New_Users

ОТ ga_sessions_*

ГДЕ totals.visits = 1 и _table_suffix МЕЖДУ '20190101' И '20201231'

GROUP BY trafficSource.campaign

Заказ По 2 Des c

введите описание изображения здесь

0 голосов
/ 05 апреля 2020

Думаю, я наконец понял это. Но я написал худший код в галактике. Может ли кто-нибудь помочь мне сделать его более эффективным:

Выберите Table_XYZ.Campaign, Table_XYZ.Start_Date, Table_XYZ.End_Date, SUM (col_1) От (

Выберите b. Campaign, Start_Date, End_Date,

(случай, когда a.date> = b.Start_Date AND a.date <= b.End_Date затем SUM (a.New_Users) End) как col_1 </p>

из TABLE_1.VW_GA_TABLE1 a Left outer join TABLE_2.GA_TABLE2 b

ON a.Camp = b.Campaign

Группировка по b.Campaign, a.date, b.Start_Date, b.End_Date

Порядок по b.Campaign Des c) Таблица_XYZ

Группировать по таблице_XYZ.Campaign, Table_XYZ.Start_Date, Table_XYZ.End_Date

0 голосов
/ 05 апреля 2020

Если я правильно понял ваш вопрос, вы пытаетесь извлечь дату из названия кампании, а затем пытаетесь добавить 7 к нему и получить всех новых пользователей

Вот что вы можете попробовать

select PARSE_DATE('%Y%m%d',(SUBSTR('20200312_NEWS_SampleData',0,8))), DATE_ADD (PARSE_DATE('%Y%m%d',(SUBSTR('20200312_NEWS_SampleData',0,8))), INTERVAL 7 DAY)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...