I'm trying to create an display upload ad in Google Ads API v14, but I'm encountering issues. Specifically, I'm getting an "INVALID_ARGUMENT" error with the message "Mutates are not allowed for the requested resource."

def create_display_upload_ad_group_ad(client, customer_id, ad_group_id, ad_asset_resource_name):     """Creates a new HTML5 display upload ad and adds it to the given ad group.     Args:         client: An initialized Google Ads client.         customer_id: The Google Ads customer ID.         ad_group_id: The ID of the ad group to which the new ad will be added.         ad_asset_resource_name: The resource name of the media bundle containing             the HTML5 components.     """     # Get the AdGroupAdService client.     ad_group_ad_service = client.get_service("AdGroupAdService")     # Create an AdGroupAdOperation.     ad_group_ad_operation = client.get_type("AdGroupAdOperation")     # Configure the ad group ad fields.     ad_group_ad = ad_group_ad_operation.create     ad_group_ad.status = client.enums.AdGroupAdStatusEnum.PAUSED     ad_group_ad.ad_group = client.get_service("AdGroupService").ad_group_path(         customer_id, ad_group_id     )     # Configured the ad as a display upload ad.     display_upload_ad = ad_group_ad.ad     display_upload_ad.name = "Ad for HTML5"     display_upload_ad.final_urls.append("http://example.com/html5")     # Exactly one of the ad_data "oneof" fields must be included to specify the     # ad type. See: https://developers.google.com/google-ads/api/reference/rpc/latest/Ad for     # the full list of available types. By setting a "display_upload_ad"     # subfield it sets that as the "oneof" field for the Ad.     display_upload_ad.display_upload_ad.media_bundle.asset = (         ad_asset_resource_name     )     display_upload_ad.display_upload_ad.display_upload_product_type = (         client.enums.DisplayUploadProductTypeEnum.HTML5_UPLOAD_AD     )     # Add the ad group ad to the client account and display the resulting     # ad's resource name.     mutate_ad_group_ads_response = ad_group_ad_service.mutate_ad_group_ads(         customer_id=customer_id, operations=[ad_group_ad_operation]     )     print(         "Created new ad group ad with resource name "         f"'{mutate_ad_group_ads_response.results[0].resource_name}'."     ) 

Error Message:

Request with ID "xKDxTq8R83Lu7ElSsLBwYw" failed with status "INVALID_ARGUMENT" and includes the following errors: Error with message "Mutates are not allowed for the requested resource.".         On field: operations         On field: create         On field: ad 

file was uploaded and returned the path Uploaded file with resource name 'customers/12344/assets/12234' and I entered it in the function's ad_asset_resource_name
i try to v14

Despite these checks, I'm still encountering the same error. Any insights or suggestions on what might be going wrong would be greatly appreciated.

Tag:google-ads-api, python

Add a new comment.