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

Google Ads API创建广告系列时budget_micros参数报错求助

我在使用Google Ads API编写创建广告系列的代码时,遇到了budget_micros参数的设置错误,不清楚该参数的含义,按文档要求设置数值后仍无法解决问题,相关代码如下:

from google.ads.google_ads.client import GoogleAdsClient

def create_campaign(google_ads_client, campaign_name, budget_micros):
    campaign_operation = google_ads_client.service.campaign.create(
        customer_id="YOUR_CUSTOMER_ID",
        campaign={
            "name": campaign_name,
            "advertising_channel_type": "SEARCH",
            "status": "PAUSED",
            "manual_cpc": {
                "enhanced_cpc_enabled": True
            },
            "campaign_budget": {
                "amount_micros": budget_micros
            },
            "network_settings": {
                "target_google_search": True,
                "target_search_network": True,
                "target_content_network": False,
                "target_partner_search_network": False
            }
        }
    )

    # Execute the campaign operation
    response = campaign_operation.execute()

    # Print the created campaign's resource name
    print("Created campaign with resource name: " + response.resource_name)

# Set up the Google Ads API client
google_ads_client = GoogleAdsClient.load_from_storage()

# Define the campaign details
campaign_name = "My Campaign"
budget_micros = 5.000000  

问题解析与解决方案

  1. budget_micros 的核心含义
    budget_micros是Google Ads API中用于表示预算的微单位参数,1个微单位等于对应货币的1/1,000,000。例如:
  • 1美元 = 1,000,000 micros
  • 5欧元 = 5,000,000 micros
  1. 当前代码的直接错误
    你设置的budget_micros = 5.000000是浮点数类型,但API要求该参数必须为整数,浮点数会触发类型校验错误。正确写法应为budget_micros = 5000000(对应5单位货币)。

  2. API规范修正
    另外,Google Ads API中创建广告系列时,不能直接在campaign对象内设置amount_micros,需要先独立创建CampaignBudget资源,再将其resource_name关联到广告系列中。修正后的代码示例如下:

from google.ads.google_ads.client import GoogleAdsClient

def create_campaign_budget(google_ads_client, customer_id, budget_amount_micros):
    budget_operation = google_ads_client.service.campaign_budget.create(
        customer_id=customer_id,
        campaign_budget={
            "name": "My Budget",
            "amount_micros": budget_amount_micros,
            "delivery_method": "STANDARD",
            "explicitly_shared": False
        }
    )
    response = budget_operation.execute()
    return response.resource_name

def create_campaign(google_ads_client, customer_id, campaign_name, budget_resource_name):
    campaign_operation = google_ads_client.service.campaign.create(
        customer_id=customer_id,
        campaign={
            "name": campaign_name,
            "advertising_channel_type": "SEARCH",
            "status": "PAUSED",
            "manual_cpc": {
                "enhanced_cpc_enabled": True
            },
            "campaign_budget": budget_resource_name,
            "network_settings": {
                "target_google_search": True,
                "target_search_network": True,
                "target_content_network": False,
                "target_partner_search_network": False
            }
        }
    )
    response = campaign_operation.execute()
    print("Created campaign with resource name: " + response.resource_name)

# Set up client
google_ads_client = GoogleAdsClient.load_from_storage()
customer_id = "YOUR_CUSTOMER_ID"

# Create budget first
budget_resource = create_campaign_budget(google_ads_client, customer_id, 5000000)

# Create campaign with budget
create_campaign(google_ads_client, customer_id, "My Campaign", budget_resource)

内容的提问来源于stack exchange,提问作者Hisham Alwareh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 07:47:19