Dear Team,
I have created several image assets (MARKETING_IMAGE, SQUARE_MARKETING_IMAGE) which I would like to link to a Search campaign using the Google Ads API.
However, when I attempt to link these image assets at the campaign level via the API (using CampaignAssetService), I receive the following error:
asset_link_error: FIELD_TYPE_INCOMPATIBLE_WITH_CAMPAIGN_TYPESurprisingly, when I use the Google Ads UI (Campaigns > Assets), I am able to link the same image assets to the same campaign without any issue.
Could you please clarify:
Is it possible to link image assets to a Search campaign at the campaign level via the API?
If yes, what is the correct approach to do so, and which AssetFieldType values are supported?
If this is not supported by the API but allowed via UI, could you explain the limitation or recommend any alternative?
Your help in resolving this would be greatly appreciated.
Best regards,
Amit Tomar
1) Is it possible to link image assets to a Search campaign at the campaign level via the API?
Yes, you can link image assets to search campaigns. This can be achieved with AssetFieldType called AD_IMAGE
2) If yes, what is the correct approach to do so, and which AssetFieldType values are supported?
You need to use the asset field type called AD_IMAGE.
3) If this is not supported by the API but allowed via UI, could you explain the limitation or recommend any alternative?
First you need to create image asset using the AssetService , try the below sample request :
{
"operations": [
{
"create": {
"imageAsset": {
"data": "",
"fullSize": {
"heightPixels": 1200,
"url": "https://gaagl.page.link/Eit5",
"widthPixels": 628
},
"mimeType": "IMAGE_PNG"
},
"name": "Enter name of the asset"
}
}
]
}
Once the image asset is created, you can link this asset to search campaigns using the CampaignAssetService. To do this, follow the below sample request :
{
"operations": [
{
"create": {
"asset": "customers/{customer_id}/assets/{newly_created_asset_id}",
"campaign": "customers/{customer_id}/campaigns/{search_campaign_id}",
"fieldType": "AD_IMAGE"
}
}
]
}
If you face any issues, share the latest complete API logs (request and response with request-id and request header) generated at your end.
If you are using a client library and haven't enabled the logging yet, I would request you to enable logging for the specific client library that you are using. You can refer to the guides Java, .Net, PHP, Python, Ruby or Perl to enable logging at your end. For REST interface requests, you can enable logging via the curl command by using the -i flag.
You can send the details via Reply privately to the author option, or direct private reply to this email.
![]() |
Google Ads API Team |
[2025-07-24 12:05:27Z GMT] This message is in relation to case "ref:!00D1U01174p.!500Ht01swd0Y:ref" (ADR-00320031)
Hi Team,
Thank you for the clarification regarding image assets.
Could you please help me understand how I can link a video asset with a campaign via the API? Specifically, I would like to know:
Which campaign types support video assets?
What is the correct approach to link a video asset to a campaign using the Google Ads API?
What AssetFieldType should be used for video assets in such cases?
Your guidance on this will be really helpful.
Hi,
Below are the answers to your queries.
Which campaign types support video assets?
You can use the Performance Max campaign to support video assets. Please refer to the Use the asset in an ad API documentation to understand which ad and campaign types support different asset types.
What is the correct approach to link a video asset to a campaign using the Google Ads API?
First, you must create a campaign and an `AssetSet` containing one or more assets. Then, create a `CampaignAssetSet` to link the campaign and asset set. Note that a campaign can link to multiple `CampaignAssetSet` objects, but each `CampaignAssetSet` can only link to one campaign. For more information, please refer to the campaign assets example API documentation.
What AssetFieldType should be used for video assets in such cases?
You need to use 'YOUTUBE_VIDEO' as an AssetFieldType for video assets, and these are the respective ad types.
I hope this helps. Please let us know if you have any further questions or concerns related to the Google Ads API.
![]() |
Google Ads API Team |
[2025-07-24 19:18:59Z GMT] This message is in relation to case "ref:!00D1U01174p.!500Ht01swd0Y:ref" (ADR-00320031)