開始使用 Python 搭配 Bing 廣告 API

若要開始使用 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 依賴於以下自動安裝的套件:

安裝 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 服務位址
處理服務錯誤和例外狀況
沙箱