Google Ads

Version 0.0.4

Set up


Source

To get set up with the Google Ads connector, you will only need your Google login that has access to the Google Ads account you are looking to ingest data from.

Customer IDs

To set up the extract, we will require your Login Customer ID and your Customer ID:

  • Login Customer ID - This is the customer ID (without hyphens) of the Google Ads account that your Google email account is associated with.
  • Customer ID - This is the customer ID (without hyphens) of the Google Ads account you wish to pull data from. You can add multiple IDs, by separating them with a comma (no spaces).

Both IDs above may be the same, however, they may also differ in the following scenario; You have access to a Google Ads manager account, which has control of a different Google Ads account that you want to pull data from.

To retrieve your Customer ID sign into your Google Ads account then look in the top right corner of the page, and you should see your customer ID right there. It will be a sequence of numbers in the format xxx-xxx-xxxx.

Setting up query

The extract will take any valid Google Ads GAQL query. To validate queries, you can head to the following link - Query Validator

There is also an overview on how to build queries here - Query Builder

To pull incremental data, you should use a WHERE clause to limit the time range.

Example queries:

Campaign
SELECT
    campaign.id
	, customer.id
	, campaign.base_campaign
	, campaign.start_date
	, campaign.end_date
	, campaign.name
	, campaign.status
	, campaign_group.name
	, campaign_group.resource_name
    , campaign.resource_name
	, campaign_group.status
	, campaign.bidding_strategy
	, campaign.bidding_strategy_type
	, campaign_budget.id
	, campaign.advertising_channel_sub_type
	, campaign.advertising_channel_type
	, campaign_budget.amount_micros
	, campaign.experiment_type
	, campaign.manual_cpc.enhanced_cpc_enabled
	, campaign_budget.has_recommended_budget
	, campaign_budget.explicitly_shared
	, campaign.maximize_conversion_value.target_roas
	, campaign_budget.period
	, campaign_budget.recommended_budget_amount_micros
	, campaign.serving_status
	, campaign_budget.total_amount_micros
	, campaign.tracking_url_template
	, campaign.url_custom_parameters
	, segments.ad_network_type
	, segments.device
	, segments.slot
    , metrics.cost_micros
    , metrics.view_through_conversions
    , metrics.engagements
    , metrics.impressions
    , metrics.conversions
    , metrics.conversions_value
    , metrics.clicks
    , metrics.interaction_event_types
    , metrics.interactions
    , metrics.cost_per_conversion
	, segments.date
FROM
	campaign
WHERE segments.date DURING LAST_7_DAYS
Ad Group
SELECT 
    ad_group.id
  , ad_group.cpv_bid_micros
  , ad_group.name
  , ad_group.status
  , ad_group.type
  , campaign.end_date
  , campaign.id
  , campaign.name
  , campaign.resource_name
  , campaign.start_date
  , campaign.status
  , ad_group.resource_name
  , segments.date
  , segments.ad_network_type
  , segments.device
  , segments.slot
  , metrics.clicks
  , metrics.conversions
  , metrics.cost_micros
  , metrics.engagements
  , metrics.impressions
  , metrics.interactions
  , metrics.view_through_conversions
  , metrics.conversions_value
  , customer.id
  , customer.status
  , customer.resource_name
  , customer.currency_code
FROM
  ad_group
WHERE segments.date DURING LAST_7_DAYS
Ad
SELECT
    segments.date
  , segments.ad_network_type
  , segments.device
  , segments.slot 
  , ad_group_ad.ad.id
  , ad_group_ad.ad.name   
  , ad_group.id   
  , ad_group.name   
  , ad_group.status   
  , customer.id   
  , ad_group.cpv_bid_micros   
  , ad_group.type   
  , ad_group.ad_rotation_mode   
  , ad_group.display_custom_bid_dimension   
  , ad_group.effective_target_cpa_micros   
  , ad_group.effective_target_cpa_source   
  , ad_group.effective_target_roas   
  , ad_group.effective_target_roas_source   
  , ad_group.effective_cpc_bid_micros   
  , ad_group.tracking_url_template   
  , campaign.bidding_strategy   
  , campaign.id   
  , campaign.bidding_strategy_type   
  , campaign.advertising_channel_sub_type   
  , campaign.advertising_channel_type   
  , campaign.percent_cpc.enhanced_cpc_enabled
  , campaign.name
  , customer.status   
  , customer.currency_code  
  , metrics.cost_micros   
  , metrics.view_through_conversions   
  , metrics.engagements   
  , metrics.impressions   
  , metrics.conversions   
  , metrics.conversions_value   
  , metrics.clicks   
  , metrics.interaction_event_types   
  , metrics.interactions  
  , metrics.cost_per_conversion
  , ad_group_ad.ad.resource_name   
  , ad_group_ad.ad.added_by_google_ads   
  , ad_group_ad.ad.legacy_responsive_display_ad.description   
  , ad_group_ad.ad.expanded_text_ad.description   
  , ad_group_ad.ad.text_ad.description1   
  , ad_group_ad.ad.text_ad.description2   
  , ad_group_ad.ad.call_ad.description1   
  , ad_group_ad.ad.call_ad.description2   
  , ad_group_ad.ad.expanded_text_ad.headline_part1   
  , ad_group_ad.ad.expanded_text_ad.headline_part2   
  , ad_group_ad.ad.expanded_text_ad.description2   
  , ad_group_ad.ad.expanded_text_ad.headline_part3   
  , ad_group_ad.ad.expanded_text_ad.path1   
  , ad_group_ad.ad.expanded_text_ad.path2   
  , ad_group_ad.status   
  , ad_group_ad.ad.final_urls   
  , ad_group_ad.ad.expanded_dynamic_search_ad.description   
  , ad_group_ad.ad.responsive_display_ad.logo_images   
  , ad_group_ad.ad.responsive_display_ad.square_logo_images   
  , ad_group_ad.ad.responsive_display_ad.square_marketing_images   
  , ad_group_ad.ad.responsive_display_ad.marketing_images      
  , ad_group_ad.ad.legacy_responsive_display_ad.accent_color   
  , ad_group_ad.ad_strength   
  , ad_group_ad.ad.type   
  , ad_group_ad.ad.legacy_responsive_display_ad.allow_flexible_color   
  , ad_group_ad.ad.legacy_responsive_display_ad.business_name   
  , ad_group_ad.ad.call_ad.phone_number   
  , ad_group_ad.ad.discovery_carousel_ad.call_to_action_text   
  , ad_group_ad.ad.final_mobile_urls   
  , ad_group_ad.ad.tracking_url_template   
  , ad_group_ad.ad.url_custom_parameters   
  , ad_group_ad.ad.device_preference   
  , ad_group_ad.ad.display_url   
  , ad_group_ad.ad.expanded_dynamic_search_ad.description2   
  , ad_group_ad.ad.legacy_responsive_display_ad.format_setting   
  , ad_group_ad.ad.text_ad.headline   
  , ad_group_ad.ad.image_ad.image_url   
  , ad_group_ad.ad.image_ad.pixel_height   
  , ad_group_ad.ad.image_ad.pixel_width   
  , ad_group_ad.ad.image_ad.mime_type   
  , ad_group_ad.ad.image_ad.name   
  , ad_group_ad.ad.legacy_responsive_display_ad.long_headline   
  , ad_group_ad.ad.legacy_responsive_display_ad.main_color         
  , ad_group_ad.ad.responsive_display_ad.accent_color    
  , ad_group_ad.ad.responsive_display_ad.allow_flexible_color    
  , ad_group_ad.ad.responsive_display_ad.business_name    
  , ad_group_ad.ad.responsive_display_ad.call_to_action_text    
  , ad_group_ad.ad.responsive_display_ad.descriptions    
  , ad_group_ad.ad.responsive_display_ad.price_prefix    
  , ad_group_ad.ad.responsive_display_ad.promo_text    
  , ad_group_ad.ad.responsive_display_ad.format_setting    
  , ad_group_ad.ad.responsive_display_ad.headlines    
  , ad_group_ad.ad.responsive_display_ad.logo_images    
  , ad_group_ad.ad.responsive_display_ad.square_logo_images    
  , ad_group_ad.ad.responsive_display_ad.long_headline    
  , ad_group_ad.ad.responsive_display_ad.main_color    
  , ad_group_ad.ad.responsive_display_ad.marketing_images    
  , ad_group_ad.ad.responsive_display_ad.square_marketing_images    
  , ad_group_ad.ad.responsive_display_ad.youtube_videos    
  , ad_group_ad.policy_summary.policy_topic_entries    
  , ad_group_ad.policy_summary.approval_status    
  , ad_group_ad.ad.legacy_responsive_display_ad.price_prefix    
  , ad_group_ad.ad.legacy_responsive_display_ad.promo_text    
  , ad_group_ad.ad.responsive_search_ad.descriptions    
  , ad_group_ad.ad.responsive_search_ad.headlines    
  , ad_group_ad.ad.responsive_search_ad.path1    
  , ad_group_ad.ad.responsive_search_ad.path2    
  , ad_group_ad.ad.legacy_responsive_display_ad.short_headline    
  , ad_group_ad.ad.system_managed_resource_source    
  , ad_group_ad.ad.app_ad.descriptions    
  , ad_group_ad.ad.app_ad.headlines    
  , ad_group_ad.ad.app_ad.html5_media_bundles    
  , ad_group_ad.ad.app_ad.images    
  , ad_group_ad.ad.app_ad.mandatory_ad_text    
  , ad_group_ad.ad.app_ad.youtube_videos
FROM
  ad_group_ad
where segments.date DURING LAST_7_DAYS
Keyword
SELECT
    campaign.id
  , campaign.name
  , ad_group.id
  , ad_group.name
  , ad_group_criterion.criterion_id
  , ad_group_criterion.keyword.text
  , ad_group_criterion.keyword.match_type
  , customer.currency_code
  , customer.id
  , customer.status
  , customer.resource_name
  , segments.date  
  , segments.device 
  , segments.slot
  , segments.ad_network_type
  , metrics.clicks
  , metrics.conversions
  , metrics.conversions_value
  , metrics.cost_micros
  , metrics.cost_per_conversion
  , metrics.engagements
  , metrics.impressions
  , metrics.interactions
  , metrics.view_through_conversions
  , accessible_bidding_strategy.id
  , accessible_bidding_strategy.name
  , accessible_bidding_strategy.type
FROM 
  keyword_view 
WHERE segments.date DURING YESTERDAY
Customer
SELECT
	  customer.id
	, customer.currency_code
	, customer.descriptive_name
	, customer.time_zone
	, customer.manager
	, customer.auto_tagging_enabled
	, customer.test_account
	, segments.ad_network_type
	, segments.device
	, segments.date
FROM
  customer
WHERE segments.date DURING LAST_7_DAYS
Cross Device (Campaign)
SELECT
    campaign.end_date
  , campaign.id
  , campaign.name
  , campaign.status
  , campaign.start_date
  , campaign.resource_name
  , metrics.absolute_top_impression_percentage
  , metrics.all_conversions_from_interactions_rate
  , metrics.all_conversions_value
  , metrics.all_conversions
  , metrics.average_cpe
  , metrics.average_cpv
  , metrics.average_page_views
  , metrics.average_time_on_site
  , metrics.bounce_rate
  , metrics.content_budget_lost_impression_share
  , metrics.content_impression_share
  , metrics.content_rank_lost_impression_share
  , metrics.cost_per_all_conversions
  , metrics.cross_device_conversions
  , segments.date
  , segments.day_of_week
  , segments.week
  , segments.month
  , segments.quarter
  , segments.year
  , metrics.engagement_rate
  , metrics.engagements
  , metrics.phone_impressions
  , metrics.phone_calls
  , metrics.phone_through_rate
  , metrics.percent_new_visitors
  , metrics.top_impression_percentage
  , metrics.value_per_all_conversions
  , metrics.video_quartile_p100_rate
  , metrics.video_quartile_p25_rate
  , metrics.video_quartile_p50_rate
  , metrics.video_quartile_p75_rate
  , metrics.video_view_rate
  , metrics.video_views
  , metrics.relative_ctr
  , metrics.search_absolute_top_impression_share
  , metrics.search_budget_lost_absolute_top_impression_share
  , metrics.search_budget_lost_top_impression_share
  , metrics.search_budget_lost_impression_share
  , metrics.search_exact_match_impression_share
  , metrics.search_impression_share
  , metrics.search_rank_lost_absolute_top_impression_share
  , metrics.search_rank_lost_top_impression_share
  , metrics.search_top_impression_share
  , metrics.search_rank_lost_impression_share
  , metrics.search_click_share
  , metrics.active_view_impressions
  , metrics.active_view_measurability
  , metrics.active_view_measurable_cost_micros
  , metrics.active_view_measurable_impressions
  , metrics.active_view_viewability
  , metrics.interaction_event_types
  , metrics.interactions
  , metrics.view_through_conversions
FROM
	campaign
WHERE segments.date DURING LAST_7_DAYS
Cross Device (Ad Group)
SELECT 
    metrics.absolute_top_impression_percentage
  , metrics.auction_insight_search_absolute_top_impression_percentage
  , metrics.cross_device_conversions
  , segments.date
  , segments.week
  , segments.year
  , segments.quarter
  , segments.day_of_week
  , ad_group.id
  , ad_group.name
  , ad_group.status
  , ad_group.type
  , ad_group.resource_name
  , metrics.average_cpv
  , metrics.average_cpm
  , metrics.average_cpe
  , metrics.average_cpc
  , metrics.bounce_rate
  , metrics.clicks
  , metrics.content_rank_lost_impression_share
  , metrics.content_impression_share
  , metrics.all_conversions_value
  , metrics.all_conversions_from_interactions_rate
  , metrics.all_conversions
  , metrics.video_quartile_p50_rate
  , metrics.video_quartile_p25_rate
  , metrics.video_quartile_p100_rate
  , metrics.video_quartile_p75_rate
  , metrics.video_view_rate
  , metrics.video_views
  , metrics.relative_ctr
  , metrics.search_absolute_top_impression_share
  , metrics.search_budget_lost_absolute_top_impression_share
  , metrics.search_budget_lost_top_impression_share
  , metrics.search_exact_match_impression_share
  , metrics.search_impression_share
  , metrics.search_rank_lost_absolute_top_impression_share
  , metrics.search_rank_lost_impression_share
  , metrics.search_rank_lost_top_impression_share
  , metrics.search_top_impression_share
  , metrics.top_impression_percentage
  , metrics.interaction_event_types
  , metrics.interactions
  , metrics.active_view_impressions
  , metrics.active_view_measurability
  , metrics.active_view_measurable_cost_micros
  , metrics.active_view_measurable_impressions
  , metrics.active_view_viewability
  , metrics.auction_insight_search_impression_share
  , metrics.auction_insight_search_outranking_share
  , metrics.auction_insight_search_overlap_rate
  , metrics.auction_insight_search_position_above_rate
  , metrics.auction_insight_search_top_impression_percentage
  , metrics.conversions
  , metrics.cost_micros
  , metrics.engagements
  , metrics.impressions
  , metrics.view_through_conversions
  , metrics.phone_calls
  , metrics.phone_through_rate
  , metrics.phone_impressions
  , metrics.engagement_rate
  , campaign.end_date
  , campaign.id
  , campaign.name
  , campaign.start_date
  , campaign.status 
FROM
  ad_group 
WHERE 
  segments.date DURING LAST_7_DAYS