Erste Schritte mit Python mit der Bing Ads-API

Um mit der Entwicklung von Bing Ads-API-Anwendungen mit Python zu beginnen, können Sie mit den bereitgestellten Beispielen beginnen oder einer der Anwendungs-Walkthroughs für eine Web - oder Desktopanwendung folgen.

Sie benötigen Benutzeranmeldeinformationen mit Zugriff auf Microsoft Advertising, entweder in der Produktion oder in der Sandbox. Für die Produktionsumgebung benötigen Sie einen Produktionsentwicklertoken. Alle Sandbox-Clients können das universelle Sandbox-Entwicklertoken verwenden, d. h. BBD37VB98. Weitere Informationen finden Sie unter Erste Schritte mit der Bing Ads-API und -Sandbox.

Für die Authentifizierung über OAuth müssen Sie außerdem eine Anwendung registrieren und die entsprechende Client-ID abrufen. Außerdem müssen Sie den geheimen Clientschlüssel und den Umleitungs-URI notieren, wenn Sie eine Webanwendung entwickeln. Weitere Informationen zum Registrieren einer Anwendung in der Produktion und zum Autorisierungscode-Erteilungsfluss finden Sie unter Authentifizierung mit OAuth und Authentifizierung mit den SDKs. Obwohl Sie in der Produktion Ihre eigene Anwendungs-ID (auch als Client-ID bezeichnet) verwenden müssen, können alle Microsoft Advertising-Kunden die öffentliche Client-ID "Tutorial Sample App" in der Sandbox verwenden, d. h. 00001111-aaaa-2222-bbbb-3333cccc4444. Weitere Informationen finden Sie unter Sandbox.

Abhängigkeiten

Das Bing Ads Python SDK unterstützt Python 3.8 oder höher. Sie sollten eine der unterstützten Versionen installieren und ausführen.

Das REST-basierte SDK hängt von folgenden Paketen ab, die automatisch installiert werden:

Das SDK installieren

Um das Bing Ads Python SDK zum ersten Mal zu installieren, führen Sie den folgenden Befehl entweder über Ihre IDE oder die Befehlszeile aus.

pip.exe install msads

Führen Sie Folgendes aus, um zu bestätigen, dass das Bing Ads Python SDK installiert ist. In der Ausgabeliste sollte msads (<Version>) angezeigt werden.

pip.exe list

Wenn Sie das Bing Ads Python SDK bereits installiert haben, können Sie diesen Befehl ausführen, um die neuesten Bits abzurufen.

pip.exe install --upgrade msads

Vorgehensweisen

Sobald Sie das Bing Ads Python SDK installiert haben, können Sie entweder die Beispiele von GitHub herunterladen oder einer der Anwendungs-Walkthroughs folgen, um eine Exemplarische Vorgehensweise: Bing Ads API-Webanwendung in Python oder Exemplarische Vorgehensweise: Bing Ads API-Desktopanwendung in der Python-Anwendung zu erhalten.

Verwenden des REST SDK

Das Bing Ads Python SDK kommuniziert mit der Microsoft Advertising-REST-API über OpenAPI-generierte Clientklassen, die von Pydantic-Modellen unterstützt werden. Sie interagieren mit der API über eine ServiceClient-Instance, die Authentifizierungsheader, Endpunktrouting und Methodenverteilung automatisch verarbeitet.

ServiceClient einrichten

Erstellen Sie einen ServiceClient , indem Sie den Dienstnamen, die API-Version, die Autorisierungsdaten und die Zielumgebung übergeben.

from bingads.service_client import ServiceClient

campaign_service = ServiceClient(
    service='CampaignManagementService',
    version=13,
    authorization_data=authorization_data,
    environment=ENVIRONMENT,  # 'production' or 'sandbox'
)

Die folgenden Dienstnamen werden unterstützt: CampaignManagementService, BulkService, ReportingService, CustomerManagementServiceCustomerBillingService, und AdInsightService.

Erstellen von Objekten

Importieren Sie Modellklassen direkt aus openapi_client.models.campaign und instanziieren Sie diese mit Schlüsselwortargumenten (keyword). Es gibt keine ArrayOf* Wrappertypen – verwenden Sie einfache Python-Listen überall dort, wo ein Feld mehrere Elemente akzeptiert.

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

Instanziieren Sie für abgeleitete Typen wie ExpandedTextAd die konkrete Unterklasse direkt – es sind keine Factoryaufrufe oder spezielle Codierung erforderlich. Benutzerdefinierte Parameter und andere verschachtelte Objekte können über den Konstruktor inline festgelegt werden.

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]

Vorgänge des Anrufdiensts

Erstellen Sie ein Anforderungsobjekt, und übergeben Sie es an die entsprechende Methode auf dem ServiceClient. In den Methoden wird snake_case Benennung verwendet.

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]

Authentifizierung

Das REST SDK verwendet den standardmäßigen Authorization: Bearer <token> HTTP-Header. Der OAuth-Ablauf – Autorisierungscodeerteilung, Aktualisierung der Tokenbehandlung und Tokenspeicherung – ist identisch mit dem SOAP SDK. Weitere Informationen finden Sie unter Authentifizierung mit den SDKs.

Fehlerbehandlung

Dienstfehler werden ab ApiException dem openapi_client Paket ausgelöst. Die Ausnahme macht den HTTP-Status und den Fehlerantworttext verfügbar.

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}")

Informationen zum Analysieren von Batchfehlern, die im Antworttext zurückgegeben werden, finden Sie unter Behandeln von Dienstfehlern und Ausnahmen.

Siehe auch

Bing Ads API-Clientbibliotheken
Bing Ads API-Codebeispiele
Bing Ads API-Webdienstadressen
Behandeln von Dienstfehlern und Ausnahmen
Sandbox