I read that we can't delete asset using AssetService but some of the Google Team recommended users to mutate via AdService instead.
So I tried to remove specific asset from AdGroup by using this code: ``` def _pause_assets_by_campaign( self, campaign_resource_name, paused_assets_resource_names ): ga_service = self._client.get_service("GoogleAdsService") query = f"""SELECT ad_group_ad.resource_name, ad_group_ad.ad.id, ad_group_ad.ad.app_ad.images, ad_group_ad.ad.app_ad.youtube_videos, campaign.resource_name FROM ad_group_ad WHERE campaign.resource_name = '{campaign_resource_name}'""" self._get_logger().info(f"pause_ads_by_campaign -> query: {query}") response = ga_service.search_stream(customer_id=self._customer_id, query= query) self._get_logger().info(f"pause_ads_by_campaign -> response: {response}") paused_assets_resource_names_map = {} for resource_name in paused_assets_resource_names: paused_assets_resource_names_map[resource_name] = True self._get_logger().info(f"pause_ads_by_campaign -> paused_assets_resource_names_map: {paused_assets_resource_names_map}") for batch in response: for row in batch.results: self._get_logger().info(f"pause_ads_by_campaign -> AdGroupAd: {row}") ad = row.ad_group_ad.ad ad_service = self._client.get_service("AdService") ad_operation = self._client.get_type("AdOperation") updated_ad = ad_operation.update updated_ad.resource_name = ad.resource_name extended_youtube_videos = [ youtube_asset for youtube_asset in ad.app_ad.youtube_videos if youtube_asset.asset not in paused_assets_resource_names_map ] self._get_logger().info(f"pause_ads_by_campaign -> extended_youtube_videos: {extended_youtube_videos}") updated_ad.app_ad.youtube_videos = extended_youtube_videos extended_images = [ image_asset for image_asset in ad.app_ad.images if image_asset.asset not in paused_assets_resource_names_map ] self._get_logger().info(f"pause_ads_by_campaign -> extended_images: { extended_images}") updated_ad.app_ad.images = extended_images field_mask = protobuf_helpers.field_mask( None, updated_ad._pb ) self._get_logger().info(f"pause_ads_by_campaign -> field_mask: {field_mask}" ) self._client.copy_from(ad_operation.update_mask, field_mask) self._get_logger().info(f"pause_ads_by_campaign -> ad_operation: { ad_operation}") self._get_logger().info(f"pause_ads_by_campaign -> ad_operation.update_mask: {ad_operation.update_mask}") response = ad_service.mutate_ads( customer_id=self._customer_id, operations=[ad_operation], ) self._get_logger().info(f"pause_ads_by_campaign -> response: {response}") resource_name = response.results[0].resource_name self._get_logger().info(f"pause_ads_by_campaign -> Ad updated! resource_name:{resource_name}") ``` There is no error thrown but my asset is not getting excluded by this update. Please help me to resolve this. :) -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog: https://googleadsdeveloper.blogspot.com/ =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups "AdWords API and Google Ads API Forum" group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en --- You received this message because you are subscribed to the Google Groups "Google Ads API and AdWords API Forum" group. To unsubscribe from this group and stop receiving emails from it, send an email to adwords-api+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/adwords-api/91db49dd-28d4-4b05-a912-2c059e1e5ba8n%40googlegroups.com.