In the modern Australian business landscape, data is your most valuable asset—but only if you can actually use it. Most small business owners find themselves jumping between Google Ads, Facebook Business Suite, and GA4, trying to piece together a story that never quite makes sense. By building a marketing data warehouse, you create a 'single source of truth' that allows you to see exactly how your marketing spend converts into real revenue.
Why This Matters
Fragmentation is the enemy of growth. When your data lives in separate silos, you can't easily see the customer journey from a first click on a social ad to a final conversion on your website. A data warehouse allows you to join these dots, automate your reporting, and make decisions based on facts rather than 'gut feel'.
---
Prerequisites: What You’ll Need
Before we dive in, ensure you have the following ready:
- A Google Cloud Account: We will be using BigQuery (it has a generous free tier for small businesses).
- Admin Access: You need admin rights to your Google Ads, Meta Business Suite, and GA4 accounts.
- An ETL Tool: (Extract, Transform, Load) We recommend tools like Supermetrics, Funnel.io, or Fivetran to move data automatically.
- A Visualisation Tool: Google Looker Studio (formerly Data Studio) is the best free option for Aussie businesses.
---
Step 1: Set Up Your Google Cloud Project
Your data needs a home. We recommend Google BigQuery because it integrates seamlessly with the rest of the Google marketing stack.
- Go to the Google Cloud Console.
- Create a new project named 'Marketing_Data_Warehouse'.
- Enable billing (don't worry, the 'Sandboxed' version is free for up to 10GB of storage, which is plenty for most local businesses).
Step 2: Create Your Datasets
Think of a 'Dataset' as a folder within your warehouse. You want to keep your raw data separate from your 'cleaned' data.
- In BigQuery, click on the three dots next to your Project ID and select Create Dataset.
- Create one called
raw_marketing_data. - Create another called
reporting_tables. - Set the 'Data location' to 'australia-southeast1' (Sydney) to ensure compliance with Australian data privacy preferences and lower latency.
Step 3: Connect Google Analytics 4 (GA4)
Google provides a free, native link between GA4 and BigQuery. This is a must-do for every Australian business.
- Open your GA4 Property.
- Go to Admin > Product Links > BigQuery Links.
- Click Link, select your Google Cloud Project, and choose the 'Daily' export frequency.
- Pro Tip: Choose the 'Streaming' option if you want real-time data, though 'Daily' is usually enough for weekly reporting.
Step 4: Connect Meta (Facebook/Instagram) Ads
Unlike GA4, Meta doesn't have a direct 'one-click' export to BigQuery. This is where your ETL tool comes in.
- Log into your ETL tool (e.g., Supermetrics).
- Select 'Meta Ads' as the Source.
- Select 'BigQuery' as the Destination.
- Choose the specific fields you need (Spend, Impressions, Clicks, Conversions) and schedule it to refresh every morning at 4:00 AM AEST.
Step 5: Connect Google Ads
While you can use the 'BigQuery Data Transfer Service' for Google Ads, many small business owners find it easier to use the same ETL tool they used for Meta to keep everything consistent.
- In your ETL tool, add a new 'Transfer'.
- Select 'Google Ads' and authenticate with your MCC or individual account ID.
- Map the data to your
raw_marketing_datadataset in BigQuery.
Step 6: Standardise Your Currency and Timezones
This is a common pitfall for Australian businesses. Some platforms default to USD or UTC time.
- Check that all your platforms are set to AUD.
- Ensure your BigQuery queries account for the AEST/AEDT (Sydney/Melbourne/Brisbane) time difference.
- Warning: If one platform reports in UTC and another in AEST, your daily totals will never match up.
Step 7: Create a 'Union' View
Now that the data is in BigQuery, you need to combine it. You do this using SQL (Structured Query Language). You want to create a view that stacks your Google Ads spend on top of your Meta spend so you can see 'Total Marketing Spend'.
Screenshot Description: You should be in the BigQuery SQL Editor. You'll see a text area where you can write code likeSELECT date, spend FROM google_ads UNION ALL SELECT date, spend FROM meta_ads.
Step 8: Build Your Reporting Layer
Instead of connecting your dashboard directly to the 'raw' data (which can be messy), connect it to the reporting_tables dataset you created in Step 2. This ensures your reports load quickly and the data is already cleaned.
Step 9: Visualise in Looker Studio
- Go to Looker Studio.
- Click Create > Data Source and select BigQuery.
- Select your Project >
reporting_tables> and your combined view. - Start dragging and dropping fields to create a 'ROAS (Return on Ad Spend) Leaderboard'.
---
Pro Tips for Success
- Use UTM Parameters: Your warehouse is only as good as your tracking. Ensure every link in your Meta ads and email signatures uses UTM tags (e.g.,
utm_source=facebook). This allows BigQuery to match the spend to the session in GA4. - Start Small: Don't try to import every single metric available. Start with Spend, Impressions, Clicks, and Conversions.
- Monitor Costs: While BigQuery is cheap, poorly written queries can add up. Stick to the 'Free Tier' limits until you're a data pro.
Common Mistakes to Avoid
- Ignoring the ABN/Tax Settings: When setting up Google Cloud, ensure you enter your ABN correctly to avoid being charged international tax rates unnecessarily.
- Duplicate Data: If you run your ETL tool twice for the same day, you might double-count your spend. Always set your ETL tool to 'Overwrite' or 'Append with Deduplication'.
- Naming Conventions: Don't name your tables
test1,test2. Use clear names likedaily_ad_spend_combined.
---
Troubleshooting
Problem: My Meta Ads spend in BigQuery doesn't match what I see in Meta Ads Manager. Solution: Check the 'Attribution Window'. Meta often defaults to a '7-day click' window, while your export might be using a '1-day click' window. Ensure they match. Problem: I'm seeing 'Permission Denied' errors in BigQuery. Solution: Ensure the service account email provided by your ETL tool has 'BigQuery Data Editor' and 'BigQuery Job User' roles assigned in the Google Cloud IAM console. Problem: The data isn't refreshing in my Looker Studio dashboard. Solution: Looker Studio caches data for performance. Click the 'Refresh Data' icon in the top header of your report to force a fresh pull from BigQuery.---
Next Steps
Once your warehouse is running, you can start doing advanced things like 'Lead Scoring' or 'Customer Lifetime Value' (CLV) modelling.
If this feels a bit technical or you'd prefer a professional to handle the plumbing of your data, the team at Local Marketing Group is here to help. We specialise in setting up robust analytics for Australian businesses so you can focus on running your company.
Contact us today to discuss how we can help you turn your data into a competitive advantage.