簡體   English   中英

Bingads SDK Python Suds 發送錯誤的信封

[英]Bingads SDK Python Suds sending wrong envelope

將 BingAds SDK 用於 Python 由於我無法解決的錯誤,我無法執行任何更新操作。 SDK 使用 Suds 處理 SOAP 操作。

這里是 wsdl: https://campaign.api.bingads.microsoft.com/Api/Advertiser/CampaignService.Management/svc?ingle3

# This function internally configures the authorization for BingAdsAPI
campaign_service = bc.get_bing_ads_client(account=account, service='CampaignManagementService')

update_ad_groups_request = campaign_service.factory.create('UpdateAdGroupsRequest')
update_ad_groups_request.CampaignId = campaign_id

ad_group = campaign_service.factory.create('AdGroup')
ad_group.Id = ad_group_id

bid = campaign_service.factory.create('Bid')

bid.Amount = new_bid
ad_group.CpcBid = bid

update_ad_groups_request.AdGroups = campaign_service.factory.create('ArrayOfAdGroup')

update_ad_groups_request.AdGroups.AdGroup.append(ad_group)

campaign_service.UpdateAdGroups(update_ad_groups_request)

當我發送它時,它失敗說:

suds.WebFault:服務器引發錯誤:'格式化程序在嘗試反序列化消息時拋出異常:嘗試反序列化參數https://bingads.microsoft.com/CampaignManagement/v13:CampaignId時出錯。 InnerException 消息是“反序列化 System.Int64 類型的 object 時出錯。 值 '' 無法解析為類型 'Int64'。'。 有關更多詳細信息,請參閱 InnerException。

當我打開 soap 信封時:

....</SOAP-ENV:Header><ns1:Body><ns0:UpdateAdGroupsRequest><ns0:CampaignId>
<ns0:CampaignId>377072652</ns0:CampaignId><ns0:AdGroups><ns0:AdGroup><ns0:CpcBid>
<ns0:Amount>0.91</ns0:Amount></ns0:CpcBid><ns0:Id>1256742239729725</ns0:Id>
<ns0:Network/><ns0:PrivacyStatus/><ns0:Status/></ns0:AdGroup></ns0:AdGroups>
</ns0:CampaignId></ns0:UpdateAdGroupsRequest></ns1:Body></SOAP-ENV:Envelope>

請注意活動 ID 是如何重復的,並且它還包裹了整個信封。 我也直接用 Suds 嘗試過,我有同樣的問題,其他功能也有同樣的問題。

因為要自己解析信封,所以我想知道是否有人遇到過這個問題,可能是什么原因。

您不需要顯式創建“請求”object,即通過 SUDS 服務客戶端,您可以通過 UpdateAdGroups 操作直接傳遞請求參數。 為了確認我從expand_text_ads.py開始,並在AddAdGroups示例之后立即插入了以下代碼段。

ad_groups=campaign_service.factory.create('ArrayOfAdGroup')
ad_group=set_elements_to_none(campaign_service.factory.create('AdGroup'))
ad_group.Id=ad_group_ids['long'][0]
cpc_bid=campaign_service.factory.create('Bid')
cpc_bid.Amount=0.11
ad_group.CpcBid=cpc_bid
ad_groups.AdGroup.append(ad_group)

output_status_message("-----\nUpdateAdGroups:")
add_ad_groups_response=campaign_service.UpdateAdGroups(
    CampaignId=campaign_ids['long'][0],
    AdGroups=ad_groups
)
output_status_message("PartialErrors:")
output_array_of_batcherror(add_ad_groups_response.PartialErrors)

我希望這有幫助。 如果您有任何后續問題,請告訴我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM