Google Ads API创建广告系列时budget_micros参数报错求助
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
问题解析与解决方案
- budget_micros 的核心含义
budget_micros是Google Ads API中用于表示预算的微单位参数,1个微单位等于对应货币的1/1,000,000。例如:
- 1美元 = 1,000,000 micros
- 5欧元 = 5,000,000 micros
当前代码的直接错误
你设置的budget_micros = 5.000000是浮点数类型,但API要求该参数必须为整数,浮点数会触发类型校验错误。正确写法应为budget_micros = 5000000(对应5单位货币)。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
相关产品推荐
相关产品推荐

