Aggregating multiple Google Ads accounts into a single BI report

The existing Google Ads reporting tools are numerous and comprehensive. But if you're running multiple accounts and need to consolidate data across your entire organization, things get a little more difficult.

Ben Liebert Developer & Data Specialist LinkedIn

In this walkthrough, we'll use SyncHub to take you through the process of syncing your various Google Ads accounts to a single location, then aggregating your data to build a comprehensive view across your entire business.

Download your Google Ads data

Head over to your Connection Dashboard in SyncHub and follow the instructions to connect your first Google Ads account, which will take just a few mouseclicks and a couple of minutes.

As part of the connection process, you're asked to provide details of the database where you'd like us to sync your data. We currently support Snowflake, BigQuery, Redshift, Postgres and SQL Server/Azure.

Once completed, SyncHub creates a unique database schema inside your data store, then immediately starts syncing your Google Ads data from the cloud. This results in various database tables, such as this example from the Campaign table:

Name Status AdvertisingChannelType UseSuppliedUrlsOnly
March blockbuster UNSPECIFIED DISPLAY true
CA-2026 ENABLED SEARCH false
Brand awareness ENABLED SHOPPING false

Connect your other accounts

Now, follow a similar process to connect your other Google Ads accounts. SyncHub will store the data in the same database, but in different database schemas. This gives you the best of both worlds, where your data is demarcated at the connection level, but you can access everything from within a single query.

Consolidating your schemas

Now that you have your data in your database, we need a way to merge it into a single consolidated view. This is where our Insights platform comes into play. Using Insights, we can write a simple SQL query that merges the data from all of our schemas. Because each schema has an identical format, this is trivial:



select 'Google Ads 1' as [ConnectionName], [Name], [Status], [AdvertisingChannelType], [UseSuppliedUrlsOnly]
from schema_googleads_1.Campaign
UNION
select 'Google Ads 2' as [ConnectionName], [Name], [Status], [AdvertisingChannelType], [UseSuppliedUrlsOnly]
from schema_googleads_2.Campaign
UNION
select 'Google Ads 3' as [ConnectionName], [Name], [Status], [AdvertisingChannelType], [UseSuppliedUrlsOnly]
from schema_googleads_3.Campaign

Insights stores your query results in a database table under the sh_report_cache schema alongside the raw data we've downloaded from Google Ads. You can call this table whatever you like, so let's use something self-explanatory like googleads_campaign_consolidated. We can then query it from our reporting tool as simply as this:


select * from sh_report_cache.googleads_campaign_consolidated

Conclusion

As you've seen, SyncHub's consistent data structure and background syncing makes it trivial to report from multiple Google Ads accounts. You can use your new consolidated database table directly from your reporting tool, or use our own Insights platform to build charts and dashboards from within SyncHub itself.

SyncHub offers a fully functional free trial, so feel free to try out this walkthrough for yourself, using your own data.

Happy reporting everybody.