I have loaded google ads data to Big query using data transfer. I am trying to get keyword and search keyword metrics for my analysis

I used below code from p_ads_KeywordBasicStats table

WITH stats AS (   SELECT     campaign_id AS CampaignId,     ad_group_id AS AdGroupId,     ad_group_criterion_criterion_id AS CriterionID,     segments_ad_network_type AS AdNetworkType1,     metrics_clicks AS Clicks,     metrics_cost_micros AS Cost,     segments_date AS Date,     metrics_impressions AS Impressions   FROM `micro-reserve.google_ad.p_ads_KeywordBasicStats_xxxxxx    ), keywords AS (   SELECT     ad_group_criterion_criterion_id AS CriterionId,     MAX(ad_group_criterion_keyword_text) AS Criteria,     ad_group_criterion_negative,     ad_group_criterion_status   FROM `micro-reserve.google_ad.p_ads_Keyword_xxxxxxx      GROUP BY ad_group_criterion_criterion_id, ad_group_criterion_negative, ad_group_criterion_status ), campaigns AS (   SELECT     campaign_id,     MAX(campaign_name) AS campaign_name   FROM `micro-reserve.google_ad.p_ads_Campaign_xxxxx      GROUP BY campaign_id ) SELECT    Clicks,   Cost,   Date,   Impressions,   Criteria AS Keywords,   campaign_name,   ROUND(SAFE_DIVIDE(Clicks, Impressions) * 100, 2) AS CTR FROM stats LEFT JOIN keywords   ON stats.CriterionID = keywords.CriterionId LEFT JOIN campaigns   ON stats.CampaignId = campaigns.campaign_id WHERE keywords.ad_group_criterion_negative IS FALSE    AND keywords.ad_group_criterion_status = 'ENABLED'    AND Date BETWEEN '2024-09-01' AND '2024-09-13' 

========== Using below query for p_ads_SearchQueryStats table

WITH stats AS (   SELECT     campaign_id AS CampaignId,     ad_group_id AS AdGroupId,     ad_group_ad_ad_id AS CriterionID,     segments_ad_network_type AS AdNetworkType1,     SUM(metrics_clicks) AS Clicks,     SUM(metrics_cost_micros) AS Cost,     segments_date AS Date,     SUM(metrics_impressions) AS Impressions,     MAX(search_term_view_search_term) AS Criteria,     search_term_view_status   FROM `micro-reserve.google_ad.p_ads_SearchQueryStats_xxxxxx   WHERE _PARTITIONTIME = TIMESTAMP('2024-09-13')   GROUP BY ad_group_ad_ad_id, search_term_view_status, ad_group_id, campaign_id, segments_ad_network_type, segments_date ), campaigns AS (   SELECT     campaign_id,     MAX(campaign_name) AS campaign_name   FROM `micro-reserve=.google_ad.p_ads_Campaign_xxxxxxxx   WHERE _PARTITIONTIME = TIMESTAMP('2024-09-13')   GROUP BY campaign_id ) SELECT    campaigns.campaign_name,   stats.Date,   stats.Clicks,   stats.Impressions,   stats.Cost,   stats.Criteria AS Search_Keywords FROM stats LEFT JOIN campaigns   ON stats.CampaignId = campaigns.campaign_id WHERE stats.Date = '2024-09-13' 

The above query works, but the numbers are not matching with Google Ads. Is something I am doing wrong? Can anyone advise please?

Tag:google-ads-api, google-ad-manager, sql, google-bigquery

Add a new comment.