Page Summary
-
Reporting for Demand Gen campaigns can be accessed at different levels, similar to other campaign types, including campaign-level, ad-level, and asset-level reporting using the Google Ads API.
-
Campaign-level reporting allows retrieval of attributes and performance metrics for Demand Gen campaigns, and clicks are filtered by
click_typeofCROSS_NETWORK. -
Ad-level reporting supports retrieving data for the three types of Demand Gen ads: Demand Gen Multi-Asset Ad, Demand Gen Carousel Ad, and Demand Gen Video Responsive Ad.
-
Asset-level reporting provides access to specialized assets for Demand Gen carousel ads, including their attributes and metrics like impressions.
-
Legacy "Demand Gen video ad" types from the Google Ads frontend are not supported by the Google Ads API.
You can retrieve reporting attributes and performance metrics for Demand Gen campaigns at the campaign, ad, and asset levels.
Campaign-level reporting
As with other campaign types, you can use
GoogleAdsService.SearchStream
to retrieve attributes and performance metrics for Demand Gen campaigns:
SELECT
campaign.id,
campaign.status,
campaign.bidding_strategy_type,
metrics.impressions,
metrics.clicks,
metrics.cost_micros
FROM campaign
WHERE campaign.advertising_channel_type = DEMAND_GEN
To segment clicks in reporting for Demand Gen campaigns by click type, filter by
segments.click_type = CROSS_NETWORK:
SELECT
campaign.id,
segments.click_type,
metrics.clicks
FROM campaign
WHERE campaign.advertising_channel_type = DEMAND_GEN
AND segments.click_type = CROSS_NETWORK
To break down Demand Gen performance by channel (such as YOUTUBE, DISCOVER,
GMAIL, MAPS, or CONTENT) and YouTube surface (YOUTUBE_INSTREAM,
YOUTUBE_INFEED, YOUTUBE_SHORTS, or UNSEGMENTED), select both
segments.ad_network_type and segments.ad_sub_network_type (note that
segments.ad_sub_network_type must always be selected together with
segments.ad_network_type):
SELECT
campaign.id,
segments.ad_network_type,
segments.ad_sub_network_type,
metrics.impressions,
metrics.clicks,
metrics.cost_micros,
metrics.video_trueview_views
FROM campaign
WHERE campaign.advertising_channel_type = DEMAND_GEN
Ad-level reporting
The Google Ads API supports Demand Gen multi-asset, carousel, video responsive, and
product ads
(DemandGenMultiAssetAdInfo,
DemandGenCarouselAdInfo,
DemandGenVideoResponsiveAdInfo, and
DemandGenProductAdInfo). Use these queries with
GoogleAdsService.SearchStream to retrieve their attributes
and metrics:
SELECT
ad_group_ad.ad.id,
ad_group_ad.ad.type,
ad_group_ad.ad.demand_gen_multi_asset_ad.marketing_images,
ad_group_ad.ad.demand_gen_multi_asset_ad.square_marketing_images,
ad_group_ad.ad.demand_gen_multi_asset_ad.portrait_marketing_images,
ad_group_ad.ad.demand_gen_multi_asset_ad.tall_portrait_marketing_images,
ad_group_ad.ad.demand_gen_multi_asset_ad.classic_display_images,
ad_group_ad.ad.demand_gen_multi_asset_ad.logo_images,
ad_group_ad.ad.demand_gen_multi_asset_ad.headlines,
ad_group_ad.ad.demand_gen_multi_asset_ad.descriptions,
ad_group_ad.ad.demand_gen_multi_asset_ad.business_name,
ad_group_ad.ad.demand_gen_multi_asset_ad.call_to_action_text,
metrics.impressions,
metrics.clicks,
metrics.cost_micros
FROM ad_group_ad
WHERE ad_group_ad.ad.type = DEMAND_GEN_MULTI_ASSET_AD
SELECT
ad_group_ad.ad.id,
ad_group_ad.ad.type,
ad_group_ad.ad.demand_gen_carousel_ad.business_name,
ad_group_ad.ad.demand_gen_carousel_ad.logo_image,
ad_group_ad.ad.demand_gen_carousel_ad.headline,
ad_group_ad.ad.demand_gen_carousel_ad.description,
ad_group_ad.ad.demand_gen_carousel_ad.call_to_action_text,
ad_group_ad.ad.demand_gen_carousel_ad.carousel_cards,
metrics.impressions,
metrics.clicks,
metrics.cost_micros
FROM ad_group_ad
WHERE ad_group_ad.ad.type = DEMAND_GEN_CAROUSEL_AD
SELECT
ad_group_ad.ad.id,
ad_group_ad.ad.type,
ad_group_ad.ad.demand_gen_video_responsive_ad.breadcrumb1,
ad_group_ad.ad.demand_gen_video_responsive_ad.breadcrumb2,
ad_group_ad.ad.demand_gen_video_responsive_ad.business_name,
ad_group_ad.ad.demand_gen_video_responsive_ad.call_to_actions,
ad_group_ad.ad.demand_gen_video_responsive_ad.companion_banners,
ad_group_ad.ad.demand_gen_video_responsive_ad.descriptions,
ad_group_ad.ad.demand_gen_video_responsive_ad.headlines,
ad_group_ad.ad.demand_gen_video_responsive_ad.logo_images,
ad_group_ad.ad.demand_gen_video_responsive_ad.long_headlines,
ad_group_ad.ad.demand_gen_video_responsive_ad.videos,
metrics.impressions,
metrics.clicks,
metrics.cost_micros,
metrics.video_trueview_views
FROM ad_group_ad
WHERE ad_group_ad.ad.type = DEMAND_GEN_VIDEO_RESPONSIVE_AD
SELECT
ad_group_ad.ad.id,
ad_group_ad.ad.type,
ad_group_ad.ad.demand_gen_product_ad.headline,
ad_group_ad.ad.demand_gen_product_ad.description,
ad_group_ad.ad.demand_gen_product_ad.logo_image,
ad_group_ad.ad.demand_gen_product_ad.breadcrumb1,
ad_group_ad.ad.demand_gen_product_ad.breadcrumb2,
ad_group_ad.ad.demand_gen_product_ad.business_name,
ad_group_ad.ad.demand_gen_product_ad.call_to_action,
metrics.impressions,
metrics.clicks,
metrics.cost_micros
FROM ad_group_ad
WHERE ad_group_ad.ad.type = DEMAND_GEN_PRODUCT_AD
You can also query all Demand Gen ad types together in a single request:
SELECT
ad_group_ad.ad.id,
ad_group_ad.ad.type,
ad_group_ad.ad.demand_gen_multi_asset_ad.headlines,
ad_group_ad.ad.demand_gen_carousel_ad.headline,
ad_group_ad.ad.demand_gen_video_responsive_ad.headlines,
ad_group_ad.ad.demand_gen_product_ad.headline,
ad_group_ad.ad.demand_gen_product_ad.description,
ad_group_ad.ad.demand_gen_product_ad.business_name,
metrics.impressions,
metrics.clicks,
metrics.cost_micros
FROM ad_group_ad
WHERE ad_group_ad.ad.type IN (
DEMAND_GEN_MULTI_ASSET_AD,
DEMAND_GEN_CAROUSEL_AD,
DEMAND_GEN_VIDEO_RESPONSIVE_AD,
DEMAND_GEN_PRODUCT_AD
)
Asset-level reporting
Demand Gen campaigns have a specialized asset type for carousel cards
(DEMAND_GEN_CAROUSEL_CARD). Use
GoogleAdsService.SearchStream to retrieve these assets:
SELECT
asset.id,
asset.demand_gen_carousel_card_asset.marketing_image_asset,
asset.demand_gen_carousel_card_asset.square_marketing_image_asset,
asset.demand_gen_carousel_card_asset.portrait_marketing_image_asset,
asset.demand_gen_carousel_card_asset.headline,
asset.demand_gen_carousel_card_asset.call_to_action_text
FROM asset
WHERE asset.type = DEMAND_GEN_CAROUSEL_CARD
You can also retrieve performance metrics for DEMAND_GEN_CAROUSEL_CARD assets
using ad_group_ad_asset_view:
SELECT
asset.id,
asset.name,
asset.type,
metrics.impressions
FROM ad_group_ad_asset_view
WHERE ad_group_ad_asset_view.field_type = DEMAND_GEN_CAROUSEL_CARD
Unsupported entities
While standard Demand Gen video responsive ads
(DEMAND_GEN_VIDEO_RESPONSIVE_AD) are supported, deprecated legacy Discovery
video ads that show up in the Google Ads UI with ad type "Demand Gen video ad
(legacy)" are not supported by the Google Ads API and won't be returned by
GoogleAdsService.SearchStream or
GoogleAdsService.Search.