You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过Google Ads API添加图片扩展时遇LEGACY_EXTENSION_TYPE_READ_ONLY错误

解决Google Ads API添加图片扩展的LEGACY_EXTENSION_TYPE_READ_ONLY错误

错误原因

错误LEGACY_EXTENSION_TYPE_READ_ONLY是因为图片扩展(Image Extension)不属于传统的基于Feed的扩展类型,无法通过ExtensionFeedItemService创建和管理。这类扩展需要通过Asset服务创建对应资产,再通过CampaignAsset服务关联到目标广告系列。

修正后的代码

def create_image_extensions(df):
    # 预获取所需服务实例
    asset_service = client.get_service("AssetService")
    campaign_service = client.get_service("CampaignService")
    campaign_asset_service = client.get_service("CampaignAssetService")
    
    for index, row in df.iterrows():
        # 1. 创建IMAGE_EXTENSION类型的资产
        asset_operation = client.get_type("AssetOperation")
        image_ext_asset = asset_operation.create
        # 关联已上传的图片资产ID
        image_ext_asset.image_extension_asset.image_asset = asset_service.asset_path(account_id, row.asset_id)
        
        # 提交资产创建请求
        asset_response = asset_service.mutate_assets(
            customer_id=account_id,
            operations=[asset_operation]
        )
        ext_asset_resource = asset_response.results[0].resource_name
        print(f"创建图片扩展资产成功: '{ext_asset_resource}'")
        
        # 2. 将图片扩展资产关联到目标广告系列
        campaign_asset_operation = client.get_type("CampaignAssetOperation")
        campaign_asset = campaign_asset_operation.create
        campaign_asset.campaign = campaign_service.campaign_path(account_id, row.campaign_id)
        campaign_asset.asset = ext_asset_resource
        # 指定资产类型为图片扩展
        campaign_asset.field_type = client.enums.AssetFieldTypeEnum.IMAGE_EXTENSION
        
        # 提交关联请求
        ca_response = campaign_asset_service.mutate_campaign_assets(
            customer_id=account_id,
            operations=[campaign_asset_operation]
        )
        print(f"图片扩展关联广告系列成功: '{ca_response.results[0].resource_name}'")

关键说明

  • 替换原代码中ExtensionFeedItemService和CampaignExtensionSettingService的使用,改用AssetService创建图片扩展资产,CampaignAssetService完成与广告系列的绑定
  • 图片扩展资产需通过image_extension_asset字段关联已上传的图片资产(即你传入的row.asset_id对应资源)
  • 关联广告系列时必须指定field_type为IMAGE_EXTENSION,确保系统识别该资产的用途

内容的提问来源于stack exchange,提问作者Sidharth Ravindra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 03:48:14