Bing Ads API での Python の使用を開始する

Python を使用してBing Ads API アプリケーションの開発を開始するには、 提供されている例 から始めるか、 Web アプリケーションまたは デスクトップ アプリケーションのアプリケーション チュートリアルのいずれかに従います。

運用環境またはサンドボックス内の Microsoft Advertising へのアクセス権を持つユーザー資格情報が必要です。 運用環境では、 運用開発者トークンが必要です。 すべてのサンドボックス クライアントは、ユニバーサル サンドボックス開発者トークン ( BBD37VB98) を使用できます。 詳細については、「 Bing広告 APIサンドボックスの概要」を参照してください。

OAuth を使用して認証するには、アプリケーションを登録し、対応するクライアント識別子を取得する必要もあります。 また、Web アプリケーションを開発する場合は、クライアント シークレットとリダイレクト URI もメモする必要があります。 運用環境でのアプリケーションの登録と承認コード付与フローの詳細については、「 OAuth による認証 」と 「SDK による認証」を参照してください。 運用環境では独自のアプリケーション ID (クライアント ID) を使用する必要がありますが、すべての Microsoft Advertising のお客様は、サンドボックス内のパブリック "Tutorial Sample App" クライアント ID ( 00001111-aaaa-2222-bbbb-3333cccc4444) を使用できます。 詳細については、「 サンドボックス」を参照してください。

依存関係

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 (<version>) が表示されます。

pip.exe list

Bing Ads Python SDK が既にインストールされている場合は、このコマンドを実行して最新のビットを取得できます。

pip.exe install --upgrade msads

チュートリアル

Bing Ads Python SDK をインストールしたら、 GitHub からサンプルをダウンロードするか、または 「チュートリアル: Python のBing Ads API Web アプリケーション」または「チュートリアル: Bing Ads APIDesktop Application in Python」アプリケーションの アプリケーション チュートリアルのいずれかに従うことができます。

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'
)

サポートされているサービス名は、 CampaignManagementServiceBulkServiceReportingServiceCustomerManagementServiceCustomerBillingServiceAdInsightServiceです。

オブジェクトの作成

モデル クラスをopenapi_client.models.campaignから直接インポートし、キーワード (keyword)引数を使用してインスタンス化します。 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 を使用した認証」を参照してください。

エラー処理

サービス エラーは、openapi_client パッケージからApiExceptionとして発生します。 例外では、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 Ads API クライアント ライブラリ
Bing Ads API のコード例
Bing 広告 API Web サービス アドレス
サービス エラーと例外の処理
サンドボックス