Slide 1

Slide 1 text

1

Slide 2

Slide 2 text

Hi! I’m Sam Torres Gray Dot Co Official role Chief Digital Officer at Gray Dot Co Unofficial (but important) roles Data & dev nerd SEO mermaid™ Day-to-day focus Creating solutions where search, data, and development intersect. #WTSFest @SamTorresATL

Slide 3

Slide 3 text

Gray Dot Co Have you ever felt like shaking your fist at… #WTSFest @SamTorresATL

Slide 4

Slide 4 text

Gray Dot Co …GSC’s 16- month data window? #WTSFest @SamTorresATL

Slide 5

Slide 5 text

Gray Dot Co …or painfully slow data processing? #WTSFest @SamTorresATL

Slide 6

Slide 6 text

Gray Dot Co …or data costs that are out of control? #WTSFest @SamTorresATL

Slide 7

Slide 7 text

Well, some good news… Gray Dot Co Own your data Work with bigger datasets Scale without limitations Connect data from multiple sources I’ll share how BigQuery solves many of the internal data pain points we’ve all experienced. So you can… #WTSFest @SamTorresATL

Slide 8

Slide 8 text

Gray Dot Co We’ll cover… Is BigQuery worth it? Setting up your account & connecting to data sources Navigating BigQuery Building aggregate tables Setting up budget alerts #WTSFest @SamTorresATL

Slide 9

Slide 9 text

Is BigQuery worth it? Gray Dot Co #WTSFest @SamTorresATL

Slide 10

Slide 10 text

First things first, what is it? Gray Dot Co “BigQuery is a fully managed enterprise data warehouse that helps you manage and analyze your data with built-in features like machine learning, geospatial analysis, and business intelligence. BigQuery’s serverless architecture lets you use SQL queries to answer your organization’s biggest questions with zero infrastructure management. BigQuery’s scalable, distributed analysis engine lets you query terabytes in seconds and petabytes in minutes.” #WTSFest @SamTorresATL

Slide 11

Slide 11 text

Just kidding, I fixed it… Gray Dot Co “BigQuery is a fully managed enterprise data warehouse that helps you manage and analyze your data with built-in features like machine learning, geospatial analysis, and business intelligence. BigQuery’s serverless architecture lets you use SQL queries to answer your organization’s biggest questions with zero infrastructure management. BigQuery’s scalable, distributed analysis engine lets you query terabytes in seconds and petabytes in minutes.” #WTSFest @SamTorresATL

Slide 12

Slide 12 text

The benefits of leveraging BigQuery Gray Dot Co 🤩 Unsampled data 🤩 Data scales as you do 🤩 1 warehouse for many sources 🤩 Lower costs & budget alerts 🤩 Big requests in seconds 🤩 Access data back to day 1 😭 Platforms report sampled data 😭 Data setup isn’t scalable 😭 Data is in many places 😭 High data-storage costs 😭 Big requests break or are slow 😭 Historical data is limited Before BQ With BQ #WTSFest @SamTorresATL

Slide 13

Slide 13 text

Why doesn’t everyone use it? Gray Dot Co #WTSFest @SamTorresATL

Slide 14

Slide 14 text

Why doesn’t everyone use it? Gray Dot Co #WTSFest @SamTorresATL

Slide 15

Slide 15 text

Setting up your account & connecting to data sources Gray Dot Co #WTSFest @SamTorresATL

Slide 16

Slide 16 text

Create a billing account in Google Cloud Gray Dot Co Go to console.cloud.google.com and select Billing SETTING UP YOUR ACCOUNT #WTSFest @SamTorresATL

Slide 17

Slide 17 text

1. Create a project in Google Cloud Gray Dot Co CONNECTING TO GSC #WTSFest @SamTorresATL

Slide 18

Slide 18 text

2. Enable the BigQuery API Gray Dot Co CONNECTING TO GSC #WTSFest @SamTorresATL

Slide 19

Slide 19 text

2. Enable the BigQuery API Gray Dot Co CONNECTING TO GSC #WTSFest @SamTorresATL Can’t find this page? Go to > APIs & Services and search for “BigQuery”

Slide 20

Slide 20 text

3. Set up permissions Gray Dot Co CONNECTING TO GSC #WTSFest @SamTorresATL

Slide 21

Slide 21 text

3. Set up permissions Gray Dot Co CONNECTING TO GSC #WTSFest @SamTorresATL

Slide 22

Slide 22 text

3. Set up permission Gray Dot Co CONNECTING TO GSC #WTSFest @SamTorresATL

Slide 23

Slide 23 text

1. Enable bulk export Gray Dot Co CONNECTING TO GSC #WTSFest @SamTorresATL

Slide 24

Slide 24 text

2. Add your project ID Gray Dot Co CONNECTING TO GSC #WTSFest @SamTorresATL Find your ID in the Project Overview page: > Cloud Overview

Slide 25

Slide 25 text

2. Add your project ID Gray Dot Co CONNECTING TO GSC #WTSFest @SamTorresATL Find your ID in the Project Overview page: > Cloud Overview

Slide 26

Slide 26 text

3. Set the name & location Gray Dot Co CONNECTING TO GSC #WTSFest @SamTorresATL Useful if you’re bringing in multiple GSC properties Set the country that your data governance is based in

Slide 27

Slide 27 text

3. Wait for it… Gray Dot Co CONNECTING TO GSC #WTSFest @SamTorresATL

Slide 28

Slide 28 text

3. Wait for it… Gray Dot Co CONNECTING TO GSC #WTSFest @SamTorresATL

Slide 29

Slide 29 text

1. Create a project in Google Cloud Gray Dot Co CONNECTING TO GA4 #WTSFest @SamTorresATL

Slide 30

Slide 30 text

1. Create a project in Google Cloud Gray Dot Co CONNECTING TO GA4 #WTSFest @SamTorresATL Or you can use the same project. Consider data storage size and separate budget alerts/ ceiling needs.

Slide 31

Slide 31 text

2. Link your GA4 property Gray Dot Co CONNECTING TO GA4 #WTSFest @SamTorresATL

Slide 32

Slide 32 text

2. Link your GA4 property Gray Dot Co CONNECTING TO GA4 #WTSFest @SamTorresATL

Slide 33

Slide 33 text

2. Link your GA4 property Gray Dot Co CONNECTING TO GA4 #WTSFest @SamTorresATL

Slide 34

Slide 34 text

2. Link your GA4 property Gray Dot Co CONNECTING TO GA4 #WTSFest @SamTorresATL

Slide 35

Slide 35 text

3. Configure streams & events Gray Dot Co CONNECTING TO GA4 #WTSFest @SamTorresATL Selecting the right location is extremely important!

Slide 36

Slide 36 text

3. Configure streams & events Gray Dot Co CONNECTING TO GA4 #WTSFest @SamTorresATL

Slide 37

Slide 37 text

3. Configure streams & events Gray Dot Co CONNECTING TO GA4 #WTSFest @SamTorresATL Limit is 1M events per day. Take what you need.

Slide 38

Slide 38 text

3. Configure streams & events Gray Dot Co CONNECTING TO GA4 #WTSFest @SamTorresATL

Slide 39

Slide 39 text

4. Wait for it… Gray Dot Co CONNECTING TO GA4 #WTSFest @SamTorresATL

Slide 40

Slide 40 text

4. Wait for it… Gray Dot Co CONNECTING TO GA4 #WTSFest @SamTorresATL

Slide 41

Slide 41 text

Gray Dot Co Am I Looker Studio Ready?! #WTSFest @SamTorresATL

Slide 42

Slide 42 text

Gray Dot Co Not quite yet my young penguin… #WTSFest @SamTorresATL

Slide 43

Slide 43 text

BigQuery’s pricing structure Gray Dot Co #WTSFest @SamTorresATL Storage Computation 💸 How much data is contained within BQ 💸 Free tier gets you 10 GB of data storage 💸 How much handling of that data is BQ doing 💸 Free tier gets you 1Tb of computation or processing

Slide 44

Slide 44 text

The sneaky build of compute costs Gray Dot Co #WTSFest @SamTorresATL

Slide 45

Slide 45 text

The sneaky build of compute costs Gray Dot Co #WTSFest @SamTorresATL This single branded impression chart is filtering for specific words across queries, grouping according to month and summing impressions.

Slide 46

Slide 46 text

How is data structured in BigQuery? Gray Dot Co #WTSFest @SamTorresATL

Slide 47

Slide 47 text

For GSC, your data includes Gray Dot Co #WTSFest @SamTorresATL Site Data Individual URL Data Great for seeing total site performance Includes page-level performance Where SERP Features data is found

Slide 48

Slide 48 text

In BQ, it translates to this table Gray Dot Co #WTSFest @SamTorresATL

Slide 49

Slide 49 text

In GA4, your data includes Gray Dot Co #WTSFest @SamTorresATL Table PER day Nested columns (the details that apply to specific types of data)

Slide 50

Slide 50 text

In BQ, it translates to this table Gray Dot Co #WTSFest @SamTorresATL

Slide 51

Slide 51 text

Finding your table schema Gray Dot Co #WTSFest @SamTorresATL

Slide 52

Slide 52 text

How do I wade through all of these tables?! Gray Dot Co #WTSFest @SamTorresATL

Slide 53

Slide 53 text

Building SQL Queries Gray Dot Co #WTSFest @SamTorresATL

Slide 54

Slide 54 text

Use SQL queries to retrieve data Gray Dot Co #WTSFest @SamTorresATL

Slide 55

Slide 55 text

The basics of query structure Gray Dot Co Retrieve data from tables or expressions. SELECT , FROM WHERE =’Value’ ORDER BY Which table(s) should the data be retrieved from? Which rows should be retrieved? Which columns should dictate sorting, in which direction? #WTSFest @SamTorresATL

Slide 56

Slide 56 text

A query can be…simple Gray Dot Co #WTSFest @SamTorresATL SELECT * FROM `table.searchconsole.searchdata_ site_impression` WHERE data_date BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 3 DAY) AND DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY) AND country = 'usa' AND query IS NOT NULL

Slide 57

Slide 57 text

A query can be…complex Gray Dot Co #WTSFest @SamTorresATL 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

Slide 58

Slide 58 text

Either way, tools can write it for you Gray Dot Co I generally use GA4SQL but that’s just one example. #WTSFest @SamTorresATL

Slide 59

Slide 59 text

Export any retrieved data for analysis Gray Dot Co #WTSFest @SamTorresATL

Slide 60

Slide 60 text

Gray Dot Co Enter…aggregated tables! CREATE TABLES AND JOB TO RUN DAILY CONNECT TO LOOKER STUDIO USE YOUR MEASUREMENT PLAN #WTSFest @SamTorresATL

Slide 61

Slide 61 text

1. Decide what kind of data you want Gray Dot Co CREATING AGGREGATE TABLES GSC - Queries & metrics aggregated by: ● Page ● Device Type ● Country GA4 - Event data aggregated by: ● Entry page ● Page path ● Channel grouping #WTSFest @SamTorresATL

Slide 62

Slide 62 text

1. Decide what kind of data you want Gray Dot Co CREATING AGGREGATE TABLES GSC - Queries & metrics aggregated by: ● Page ● Device Type ● Country GA4 - Event data aggregated by: ● Entry page ● Page path ● Channel grouping Start with only a few. You can always add more later - and the query will go through your entire set of data (meaning you can aggregate retroactively!) #WTSFest @SamTorresATL

Slide 63

Slide 63 text

2. Run the SQL query in Explorer Gray Dot Co CREATING AGGREGATE TABLES #WTSFest @SamTorresATL

Slide 64

Slide 64 text

2. Run the SQL query in Explorer Gray Dot Co CREATING AGGREGATE TABLES #WTSFest @SamTorresATL Here, you can see the compute cost. If you’re testing, try adding a limit to your query until you’re happy with the data you’re getting. Then, open the query (and number of results). LIMIT 1000

Slide 65

Slide 65 text

2. Run the SQL query in Explorer Gray Dot Co CREATING AGGREGATE TABLES #WTSFest @SamTorresATL

Slide 66

Slide 66 text

3. Save Results to a New Table Gray Dot Co CREATING AGGREGATE TABLES #WTSFest @SamTorresATL

Slide 67

Slide 67 text

3. Save Results to a New Table Gray Dot Co CREATING AGGREGATE TABLES #WTSFest @SamTorresATL

Slide 68

Slide 68 text

4. Duplicate the query and adjust to yesterday Gray Dot Co CREATING AGGREGATE TABLES #WTSFest @SamTorresATL

Slide 69

Slide 69 text

5. Schedule the new query Gray Dot Co CREATING AGGREGATE TABLES #WTSFest @SamTorresATL

Slide 70

Slide 70 text

5. Schedule the new query Gray Dot Co CREATING AGGREGATE TABLES #WTSFest @SamTorresATL

Slide 71

Slide 71 text

5. Schedule the new query Gray Dot Co CREATING AGGREGATE TABLES #WTSFest @SamTorresATL Don’t remember your Table ID?

Slide 72

Slide 72 text

6. Use your shiny new tables for Looker Studio Gray Dot Co CREATING AGGREGATE TABLES ● Don’t forget that you can blend tables in Looker Studio too! ● Why does this save on processing & time? ○ Calculations happen in BQ ○ Larger grouping calculations only happen once a day #WTSFest @SamTorresATL

Slide 73

Slide 73 text

Setting up budget alerts Gray Dot Co #WTSFest @SamTorresATL

Slide 74

Slide 74 text

1. Create a budget Gray Dot Co It can be for one or more projects, or the whole cloud account (which is the default). #WTSFest @SamTorresATL

Slide 75

Slide 75 text

1. Create a budget Gray Dot Co It can be for one or more projects, or the whole cloud account (which is the default). #WTSFest @SamTorresATL

Slide 76

Slide 76 text

2. Specify a budget Gray Dot Co #WTSFest @SamTorresATL

Slide 77

Slide 77 text

2. Specify a budget Gray Dot Co #WTSFest @SamTorresATL Note that you can set this for specific organization, projects or even services (BigQuery is a service).

Slide 78

Slide 78 text

3. Create alert thresholds Gray Dot Co #WTSFest @SamTorresATL

Slide 79

Slide 79 text

3. Create alert thresholds Gray Dot Co #WTSFest @SamTorresATL Need to send alerts to different emails than the project owner? You can do that here.

Slide 80

Slide 80 text

Sample Budget Alerts Gray Dot Co #WTSFest @SamTorresATL Set cost thresholds: ● Last month’s spend ● ANY spending (my personal favorite!) Limit to specific services: ● BigQuery Storage ● BigQuery Data Transfer Service: Responsible for the scheduled queries

Slide 81

Slide 81 text

Watch BigQuery take flight Gray Dot Co #WTSFest @SamTorresATL

Slide 82

Slide 82 text

Gray Dot Co Thank you! LinkedIn /in/samantha-torres-seo /company/graydotco X (Formerly Twitter) @SamTorresATL @GrayDotCo #WTSFest