Resettable device identifiers (RDIDs) can be used for measurement and first-party data matching in Ads Data Hub. By querying against RDIDs, you can unpack in-app impressions and conversions. You can also join to first-party datasets, such as customer app transactions, to better understand the impact of media on first-party app conversions.
RDID analysis is ideal for advertisers whose first-party data comes primarily from mobile apps (such as ridesharing or mobile game companies), or deliver a large number of impressions via mobile apps (such as YouTube mobile exposures), and need to enrich their impression data by joining a first-party dataset where RDIDs are captured. Additionally, RDID matching requires a negligible amount of setup from you to get started.
Here are a few of the many use-cases RDID matching allows:
- Enrich ad data with telemetry: By joining in-app behavior to Ads Data Hub data, you can assess the impact of ad exposures on user actions within your apps.
- Measure YouTube performance: Since a large portion of Youtube traffic occurs in-app, RDID joins are useful in assessing the impact of Youtube campaigns on app performance.
- Quantify the impact of branding campaigns on in-app-conversions and LTV: Join LTV data in your CRM to measure the degree to which branding campaigns increase in-app conversions and LTV.
Limitations
- For iOS events, you can only match data originating from apps on iOS 14.5+ from users who have granted permission under Apple's App Tracking Transparency framework.
- Gmail data is not available in RDID tables.
How RDID matching works
Ads Data Hub builds RDID tables, which contain an additional device_id_md5
column. Each adh.*
table that contains a user_id
column will have a corresponding *_rdid
table. The device_id_md5
column contains an MD5-hashed version of the RDID. Since device_id_md5
is hashed, you’ll need to hash the RDIDs in your first-party dataset using the transformation below:
UPPER(TO_HEX(MD5(UPPER(raw device id string))))
After you’ve hashed your RDID, you can join your device IDs to this column.
RDID matching query workflow
- Upload a first-party dataset containing RDIDs to a BigQuery dataset that your Ads Data Hub account has read-access to.
- Write and run a query that joins
device_id_md5
with an MD5-hashed version of the RDIDs in your dataset.
Samples
Quantify the impact of branding campaigns on in-app-conversions and LTV
This query joins CRM data with a list of YouTube campaigns to measure users’ average LTV and number of in-app-conversions by campaign:
WITH crm_data as (
SELECT
UPPER(TO_HEX(MD5(UPPER(raw device_id)))) as device_id_md5, AVG(lifetime_value), SUM(iac)
FROM 'projectname.crm_data' # first party transactions data keyed off device ID
)
SELECT
branding_campaigns.campaign_id, crm_data.iac, crm_data.lifetime_value
FROM
adh.dv360_youtube_conversions_rdid AS branding_campaigns
branding_campaigns LEFT JOIN crm_data
ON branding_campaigns.device_id_md5 = crm_data.device_id_md5
WHERE branding_campaigns.campaign_id IN (list of branding campaigns)
Measure revenue by campaign
This query shows how to join transaction data to campaigns, allowing you to quantify revenue from conversions, sliced by Google Ads campaign ID:
WITH transactions AS (
SELECT
UPPER(TO_HEX(MD5(UPPER(raw device_id)))) as device_id_md5,
transaction_amount
FROM 'projectname.transactions' # first-party transactions data keyed off device ID
)
SELECT
adh_conversions.campaign_id,
SUM(transaction_amount) # first-party column for transaction amount as revenue
FROM
adh.google_ads_conversions_rdid AS adh_conversions
LEFT JOIN transactions ON (adh_conversions.device_id_md5 = transactions.device_id_md5)