Join your data with Google data in Ads Data Hub

Upload your data

Upload your data to at least one dataset in BigQuery (e.g. YourData). You can also split your data across multiple BigQuery projects.

Create another dataset for the output of joins that you make between Google data and your data (e.g. OutputData).

Give permission to Ads Data Hub service account

The name of your service account is in an email from Ads Data Hub support.

You must give the service account dataViewer permission for the dataset containing your uploaded data (e.g. YourData). If your data is split across multiple datasets, the service account will need dataViewer permission for all of them.

The service account also requires dataEditor permission for the dataset containing your data join outputs (e.g. OutputData).

Learn more about access control in BigQuery

Write queries to join data

As a best practice for your uploaded data, identify each of your users with an encrypted ID or cookie. After setting up cookie matching, uploading your data, and giving the Ads Data Hub service account access, all tables containing Google, Google Ads, or DoubleClick IDs will get new match tables, labeled _match, that also contain your user IDs. For example the adh.google_ads_impressions table receives a match table called adh.google_ads_impressions_match containing your user IDs. Join a table with its aligning match table to join your data with Google data.

Mobile device IDs

If you upload a dataset containing resettable mobile device IDs, it also can also be joined to the _rdid tables. For this to work, the device IDs in your data must be hashed with MD5. Device IDs in your data will then be joinable with device IDs in the _rdid tables. To query _rdid tables, add _rdid to the name of any adh. table that contains user_id. As with any Ads Data Hub query, results will be aggregated to ensure user privacy.


Qualified table names, e.g. projectname.datasetname.tablename, are required when joining your data with Google data.