Ads that show up in the Google Ads frontend with ad type "Demand Gen
video ad (legacy)" are not supported by the Google Ads API and won't be returned by
GoogleAdsService.SearchStream.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-20 UTC."],[[["\u003cp\u003eDemand Gen campaign reporting data can be accessed through the Google Ads API, with campaign and ad-level details available via \u003ccode\u003eGoogleAdsService.SearchStream\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eDemand Gen entities were renamed from \u003ccode\u003ediscovery\u003c/code\u003e to \u003ccode\u003edemand_gen\u003c/code\u003e in Google Ads API v17, affecting campaign and ad type queries.\u003c/p\u003e\n"],["\u003cp\u003eThree Demand Gen ad types are supported: \u003ccode\u003eDEMAND_GEN_MULTI_ASSET_AD\u003c/code\u003e, \u003ccode\u003eDEMAND_GEN_CAROUSEL_AD\u003c/code\u003e, and \u003ccode\u003eDEMAND_GEN_VIDEO_RESPONSIVE_AD\u003c/code\u003e, each with specific attributes retrievable through the API.\u003c/p\u003e\n"],["\u003cp\u003eDemand Gen carousel ads utilize a dedicated asset type, \u003ccode\u003eDEMAND_GEN_CAROUSEL_CARD\u003c/code\u003e, for which asset-level reporting and metrics can be accessed.\u003c/p\u003e\n"],["\u003cp\u003e"Demand Gen video ad (legacy)" ads visible in the Google Ads interface are not supported by the Google Ads API.\u003c/p\u003e\n"]]],[],null,["Reporting information for Demand Gen campaigns can be retrieved at different\nlevels, similar to other campaign types.\n\nCampaign-level reporting\n\nAs with other campaign types, you can use\n[`GoogleAdsService.SearchStream`](/google-ads/api/reference/rpc/v20/GoogleAdsService#searchstream)\nto retrieve attributes and performance metrics for Demand Gen campaigns. \n\n SELECT\n campaign.id,\n campaign.status,\n campaign.bidding_strategy_type\n FROM campaign\n WHERE campaign.advertising_channel_type = DEMAND_GEN\n\nTo retrieve clicks in reporting for Demand Gen campaigns, filter by `click_type`\nof `CROSS_NETWORK`.\n\nAd-level reporting\n\nThe Google Ads API supports three types of Demand Gen ads. Use these queries with\n[`GoogleAdsService.SearchStream`](/google-ads/api/reference/rpc/v20/GoogleAdsService#searchstream)\nto retrieve them. \n\n SELECT\n ad_group_ad.ad.id,\n ad_group_ad.ad.type,\n ad_group_ad.ad.demand_gen_multi_asset_ad.marketing_images,\n ad_group_ad.ad.demand_gen_multi_asset_ad.square_marketing_images,\n ad_group_ad.ad.demand_gen_multi_asset_ad.portrait_marketing_images,\n ad_group_ad.ad.demand_gen_multi_asset_ad.logo_images,\n ad_group_ad.ad.demand_gen_multi_asset_ad.headlines,\n ad_group_ad.ad.demand_gen_multi_asset_ad.descriptions,\n ad_group_ad.ad.demand_gen_multi_asset_ad.business_name,\n ad_group_ad.ad.demand_gen_multi_asset_ad.call_to_action_text,\n ad_group_ad.ad.demand_gen_multi_asset_ad.lead_form_only\n FROM ad_group_ad\n WHERE ad_group_ad.ad.type = DEMAND_GEN_MULTI_ASSET_AD\n\n SELECT\n ad_group_ad.ad.id,\n ad_group_ad.ad.type,\n ad_group_ad.ad.demand_gen_carousel_ad.business_name,\n ad_group_ad.ad.demand_gen_carousel_ad.logo_image,\n ad_group_ad.ad.demand_gen_carousel_ad.headline,\n ad_group_ad.ad.demand_gen_carousel_ad.description,\n ad_group_ad.ad.demand_gen_carousel_ad.call_to_action_text,\n ad_group_ad.ad.demand_gen_carousel_ad.carousel_cards\n FROM ad_group_ad\n WHERE ad_group_ad.ad.type = DEMAND_GEN_CAROUSEL_AD\n\n SELECT\n ad_group_ad.ad.id,\n ad_group_ad.ad.type,\n ad_group_ad.ad.demand_gen_video_responsive_ad.breadcrumb1,\n ad_group_ad.ad.demand_gen_video_responsive_ad.breadcrumb2,\n ad_group_ad.ad.demand_gen_video_responsive_ad.business_name,\n ad_group_ad.ad.demand_gen_video_responsive_ad.call_to_actions,\n ad_group_ad.ad.demand_gen_video_responsive_ad.descriptions,\n ad_group_ad.ad.demand_gen_video_responsive_ad.headlines,\n ad_group_ad.ad.demand_gen_video_responsive_ad.logo_images,\n ad_group_ad.ad.demand_gen_video_responsive_ad.long_headlines,\n ad_group_ad.ad.demand_gen_video_responsive_ad.videos\n FROM ad_group_ad\n WHERE ad_group_ad.ad.type = DEMAND_GEN_VIDEO_RESPONSIVE_AD\n\nAsset-level reporting\n\nDemand Gen campaigns have a specialized asset type for carousel ads.\nUse\n[`GoogleAdsService.SearchStream`](/google-ads/api/reference/rpc/v20/GoogleAdsService#searchstream)\nto retrieve these assets. \n\n SELECT\n asset.id,\n asset.demand_gen_carousel_card_asset.marketing_image_asset,\n asset.demand_gen_carousel_card_asset.square_marketing_image_asset,\n asset.demand_gen_carousel_card_asset.portrait_marketing_image_asset,\n asset.demand_gen_carousel_card_asset.headline,\n asset.demand_gen_carousel_card_asset.call_to_action_text\n FROM asset\n WHERE asset.type = DEMAND_GEN_CAROUSEL_CARD\n\nYou can also retrieve metrics for `DEMAND_GEN_CAROUSEL_CARD` assets. \n\n SELECT\n asset.id,\n asset.name,\n asset.type,\n metrics.impressions\n FROM ad_group_ad_asset_view\n WHERE ad_group_ad_asset_view.field_type = DEMAND_GEN_CAROUSEL_CARD\n\nUnsupported entities\n\nAds that show up in the Google Ads frontend with ad type \"Demand Gen\nvideo ad (legacy)\" are not supported by the Google Ads API and won't be returned by\n[`GoogleAdsService.SearchStream`](/google-ads/api/reference/rpc/v20/GoogleAdsService#searchstream)."]]