若要開始使用 Python 開發 Bing Ads API 應用程式,您可以從 提供的範例 開始,或遵循 Web 或 傳統型 應用程式的其中一個應用程式逐步解說。
您將需要可在 生產環境 或 沙箱中存取 Microsoft Advertising 的使用者認證。 對於生產環境,您需要 生產開發人員權杖。 所有沙箱用戶端都可以使用通用沙箱開發人員權杖,即 BBD37VB98。 如需詳細資訊,請參閱 開始使用 Bing Ads API 和 沙箱。
若要透過 OAuth 進行驗證,您也必須註冊應用程式,並取得對應的用戶端識別碼。 如果您正在開發 Web 應用程式,您也需要記住用戶端密碼和重新導向 URI。 如需在生產環境中註冊應用程式和授權碼授與流程的詳細資訊,請參閱 使用 OAuth 驗證 和 使用 SDK 進行驗證。 雖然在生產環境中您必須使用自己的應用程式識別碼 (也稱為用戶端識別碼) ,但所有Microsoft廣告客戶都可以在沙箱中使用公開的「教學課程範例應用程式」用戶端識別碼,例如 00001111-aa-2222-bbbb-3333ccc4444。 如需詳細資訊,請參閱 沙箱。
相依性
Bing Ads Python SDK 支援 Python 3.8 或更新版本。 您應該安裝並執行其中一個支援版本。
REST 型 SDK 依賴於以下自動安裝的套件:
- Pydantic (>=2.0.0) - 所有 API 物件的類型化資料模型
- 要求 — HTTP 傳輸
- typing-extensions (>=4.0.0)
安裝 SDK
若要首次安裝 Bing Ads Python SDK ,請從 IDE 或命令列提示字元執行下列命令。
pip.exe install msads
若要確認已安裝 Bing Ads Python SDK,請執行下列命令。 您應該會在輸出清單中看到 msads (<版本>) 。
pip.exe list
如果您已安裝 Bing Ads Python SDK,則可以執行此命令來取得最新的位元。
pip.exe install --upgrade msads
逐步解說
安裝 Bing Ads Python SDK 之後,您可以從 GitHub 下載範例,或依照其中一個應用程式逐步解說進行逐步 解說:Python 中的 Bing 廣告 API Web 應用程式 或 逐步解說:Python 應用程式中的 Bing Ads API 桌面應用程式 。
使用 REST SDK
Bing Ads Python SDK 會使用 Pydantic 模型支援的 OpenAPI 產生的用戶端類別,與 Microsoft Advertising REST API 進行通訊。 您可以透過 ServiceClient 執行個體與 API 互動,該執行個體會自動處理驗證標頭、端點路由和方法分派。
設定 ServiceClient
傳遞服務名稱、API 版本、授權資料和目標環境,以建立 ServiceClient 。
from bingads.service_client import ServiceClient
campaign_service = ServiceClient(
service='CampaignManagementService',
version=13,
authorization_data=authorization_data,
environment=ENVIRONMENT, # 'production' or 'sandbox'
)
支援下列服務名稱:CampaignManagementService、、BulkServiceReportingService、CustomerManagementService、CustomerBillingService、和 AdInsightService。
建立物件
直接從模型類別匯入 openapi_client.models.campaign 模型類別,並使用關鍵字引數將其具現化。 沒有 ArrayOf* 包裝函式類型 — 只要欄位接受多個項目,就使用純 Python 清單。
from openapi_client.models.campaign import *
campaign = Campaign(
name="Women's Shoes",
daily_budget=50.0,
budget_type=BudgetLimitType.DAILYBUDGETSTANDARD,
time_zone='PacificTimeUSCanadaTijuana',
languages=['All'],
)
針對 ExpandedTextAd 之類衍生類型,請直接具現化具體子類別,不需要工廠呼叫或特殊編碼。 自訂參數和其他巢狀物件可以透過建構函式內嵌設定。
expanded_text_ad = ExpandedTextAd(
title_part1='Contoso',
title_part2='Quick & Easy Setup',
title_part3='Seamless Integration',
text='Find New Customers & Increase Sales!',
text_part2='Start Advertising on Contoso Today.',
path1='seattle',
path2='shoe sale',
# With FinalUrls you can separate the tracking template, custom parameters,
# and landing page URLs.
final_urls=['https://www.contoso.com/womenshoesale'],
# Final Mobile URLs can also be used if you want to direct the user to a
# different page for mobile devices.
final_mobile_urls=['https://mobile.contoso.com/womenshoesale'],
# Set custom parameters that are specific to this ad.
url_custom_parameters=CustomParameters(
parameters=[
CustomParameter(key='promoCode', value='PROMO' + str(index)),
CustomParameter(key='season', value='summer'),
]
),
)
ads = [expanded_text_ad]
呼叫服務作業
建置要求物件,並將它傳遞給 ServiceClient 上的對應方法。 方法使用snake_case命名。
add_request = AddCampaignsRequest(
account_id=authorization_data.account_id,
campaigns=[campaign],
)
response = campaign_service.add_campaigns(add_campaigns_request=add_request)
campaign_id = response.campaign_ids[0]
驗證
REST SDK 使用標準 Authorization: Bearer <token> 的 HTTP 標頭。 OAuth 流程 — 授權碼授與、重新整理權杖處理和權杖儲存體 — 與 SOAP SDK 相同。 如需詳細資料,請參閱 使用 SDK 驗證。
錯誤處理
服務錯誤會如 ApiException 同套件一樣 openapi_client 引發。 例外狀況會公開 HTTP 狀態碼和錯誤回應本文。
from openapi_client.exceptions import ApiException
try:
response = campaign_service.GetCampaignsByAccountId(
AccountId=authorization_data.account_id,
CampaignType='Search'
)
except ApiException as ex:
print(f"HTTP status {ex.status}: {ex.body}")
如需剖析回應主體中傳回批次錯誤的相關資訊,請參閱 處理服務錯誤和例外狀況。
另請參閱
Bing 廣告 API 用戶端程式庫
Bing Ads API 程式碼範例
Bing 廣告 API Web 服務位址
處理服務錯誤和例外狀況
沙箱