Slide 49
Slide 49 text
This is BigQuery for SEOs
Queries can be…complex
This is BigQuery for SEOs
SELECT
CASE
WHEN session_source IS NULL THEN 'Direct'
WHEN REGEXP_CONTAINS(session_campaign_name, 'cross-network') THEN 'Cross-network'
WHEN (
REGEXP_CONTAINS(
session_source,
'alibaba|amazon|google shopping|shopify|etsy|ebay|stripe|walmart'
)
OR REGEXP_CONTAINS(
session_campaign_name,
'^(.*(([^a-df-z]|^)shop|shopping).*)$'
)
)
AND REGEXP_CONTAINS(session_medium, '^(.*cp.*|ppc|paid.*)$') THEN 'Paid Shopping'
WHEN REGEXP_CONTAINS(
session_source,
'baidu|bing|duckduckgo|ecosia|google|yahoo|yandex'
)
AND REGEXP_CONTAINS(session_medium, '^(.*cp.*|ppc|paid.*)$') THEN 'Paid Search'
WHEN REGEXP_CONTAINS(
session_source,
'badoo|facebook|fb|instagram|linkedin|pinterest|tiktok|twitter|whatsapp'
)
AND REGEXP_CONTAINS(session_medium, '^(.*cp.*|ppc|paid.*)$') THEN 'Paid Social'
WHEN REGEXP_CONTAINS(
session_source,
'dailymotion|disneyplus|netflix|youtube|vimeo|twitch|vimeo|youtube'
)
AND REGEXP_CONTAINS(session_medium, '^(.*cp.*|ppc|paid.*)$') THEN 'Paid Video'
WHEN session_medium IN (
'display',
'banner',
'expandable',
'interstitial',
'cpm'
) THEN 'Display'
WHEN REGEXP_CONTAINS(
session_source,
'alibaba|amazon|google shopping|shopify|etsy|ebay|stripe|walmart'
)
OR REGEXP_CONTAINS(
session_campaign_name,
'^(.*(([^a-df-z]|^)shop|shopping).*)$'
) THEN 'Organic Shopping'
WHEN REGEXP_CONTAINS(
session_source,
'badoo|facebook|fb|instagram|linkedin|pinterest|tiktok|twitter|whatsapp'
)
OR session_medium IN (
'social',
'social-network',
'social-media',
'sm',
'social network',
'social media'
) THEN 'Organic Social'
WHEN REGEXP_CONTAINS(
session_source,
'dailymotion|disneyplus|netflix|youtube|vimeo|twitch|vimeo|youtube'
)
OR REGEXP_CONTAINS(session_medium, '^(.*video.*)$') THEN 'Organic Video'
WHEN REGEXP_CONTAINS(
session_source,
'baidu|bing|duckduckgo|ecosia|google|yahoo|yandex'
)
OR session_medium = 'organic' THEN 'Organic Search'
WHEN REGEXP_CONTAINS(session_source, 'email|e-mail|e_mail|e mail')
OR REGEXP_CONTAINS(session_medium, 'email|e-mail|e_mail|e mail') THEN 'Email'
WHEN session_medium = 'affiliate' THEN 'Affiliates'
WHEN session_medium = 'referral' THEN 'Referral'
WHEN session_medium = 'audio' THEN 'Audio'
WHEN session_medium = 'sms' THEN 'SMS'
WHEN session_medium LIKE '%push'
OR REGEXP_CONTAINS(session_medium, 'mobile|notification') THEN 'Mobile Push Notifications'
ELSE 'Unassigned'
END AS session_channel,
DATE,
device_category,
COUNT(DISTINCT session_id) AS sessions,
COUNT(DISTINCT new_users) AS new_users,
COUNT(DISTINCT user_pseudo_id) AS total_users,
SUM(purchases) AS purchases,
SUM(revenue) AS revenue,
COUNT(
DISTINCT CASE
WHEN new_users IS NOT NULL
AND total_purchasers IS NOT NULL THEN user_pseudo_id
ELSE NULL
END
) AS first_time_purchasers,
COUNT(DISTINCT total_purchasers) AS total_purchasers