Freigeben über


Erste Schritte bei der Verwendung von Python mit Bing Ads-API

Um mit der Entwicklung Bing Ads API-Anwendungen mit Python zu beginnen, können Sie mit den bereitgestellten Beispielen beginnen oder eine der exemplarischen Vorgehensweisen für eine Web - oder Desktopanwendung befolgen.

Sie benötigen Benutzeranmeldeinformationen mit Zugriff auf Microsoft Advertising entweder in der Produktion oder sandbox. Für die Produktionsumgebung benötigen Sie ein Produktionsentwicklertoken. Alle Sandboxclients 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 auch eine Anwendung registrieren und den entsprechenden Clientbezeichner abrufen. Sie müssen auch 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-Genehmigungsflow finden Sie unter Authentifizierung mit OAuth und Authentifizierung mit den SDKs. Obwohl Sie in der Produktion Ihre eigene Anwendungs-ID (als Client-ID bezeichnet) verwenden müssen, können alle Microsoft Advertising-Kunden die öffentliche Client-ID "Tutorial-Beispiel-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 verwendet die suds-jurko-0.6-Bibliothek als Proxy für alle Bing Ads API-Programmierelemente. Weitere Informationen zur Verwendung von Suds mit Microsoft Advertising finden Sie unter Verwenden von Suds.

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

Das SDK installieren

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

pip.exe install bingads

Führen Sie Folgendes aus, um zu bestätigen, dass das Bing Ads Python SDK installiert ist. Bingads (<Version>) sollten in der Ausgabeliste 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 bingads

Vorgehensweisen

Nachdem Sie das Bing Ads Python SDK installiert haben, können Sie entweder die Beispiele von GitHub herunterladen oder eine der exemplarischen Vorgehensweisen der Anwendung für eine exemplarische Vorgehensweise befolgen: Bing Ads API-Webanwendung in Python oder Exemplarische Vorgehensweise: Bing Ads API-Desktopanwendung in Python-Anwendung .

Verwenden von Suds

Das Bing Ads Python SDK verwendet das suds-jurko-0.6 SOAP SDK, um Programmierelemente für die Bing Ads-API zu instanziieren, d. h. Dienstvorgänge, Datenobjekte und Wertsätze. Sie übergeben Suds-Factoryobjekte entweder über eine ServiceClient-, BulkServiceManager- oder ReportingServiceManager-Klasse . Da Suds als SDK-Abhängigkeit enthalten ist, können Sie Suds direkt verwenden, um alle vorgänge des Bing Ads API-Diensts aufzurufen.

Beachten Sie die folgenden Regeln, Vorschläge und Tipps im Zusammenhang mit Suds im Bing Ads Python SDK.

  • Eine der häufigsten Ausnahmen, die wir hören, ist ERROR:suds.resolver:(ClassGoesHere) nicht gefunden. In der Regel kann dies mithilfe des Namespacepräfixes für das Suds-Objekt aufgelöst werden, z. B. ns3:ArrayOfstring.

    Tipp

    Um alle SOAP-Objekte mit Namespacepräfix zu ermitteln, die für jeden Dienst verfügbar sind, können Sie den Soap-Client drucken. Die folgenden Anweisungen geben unter anderem Campaign, AdGroup, ExpandedTextAd und Keyword zurück.

    campaign_service = ServiceClient(
        service='CampaignManagementService', 
        version = 13,
        authorization_data=authorization_data, 
        environment = ENVIRONMENT,
    )
    print campaign_service.soap_client
    
  • Für viele Objekte, die über Suds an den Kampagnenverwaltungsdienst übergeben werden, können Sie Wörterbuchobjekte erstellen. Aus Leistungssicht ist der Wörterbuchansatz schneller als die alternative methode service.factory.create .

    ad_groups = {
        'AdGroup':
            [
                {
                    'Name': "Women's Shoe Sale",
                    'AdDistribution': 'Search',
                    'EndDate': {
                        'Day': '31',
                        'Month': '12',
                        'Year': strftime("%Y", gmtime())
                    },
                    'CpcBid': {
                        'Amount': 0.09
                    },
                    'Language': 'English'
                },
            ]
        }
    
  • Für abgeleitete Typen wie ExpandedTextAd, NegativeKeyword und NegativeKeywordList erfordert die Suds-Bibliothek, dass Sie factory.create verwenden.

    ads = campaign_service.factory.create('ArrayOfAd')
    expanded_text_ad=campaign_service.factory.create('ExpandedTextAd')
    expanded_text_ad.TitlePart1='Contoso'
    expanded_text_ad.TitlePart2='Quick & Easy Setup'
    expanded_text_ad.TitlePart3='Seemless Integration'
    expanded_text_ad.Text='Find New Customers & Increase Sales!'
    expanded_text_ad.TextPart2='Start Advertising on Contoso Today.'
    expanded_text_ad.Path1='seattle'
    expanded_text_ad.Path2='shoe sale'
    expanded_text_ad.Type='ExpandedText'
    expanded_text_ad.Status=None
    expanded_text_ad.EditorialStatus=None
    
    # With FinalUrls you can separate the tracking template, custom parameters, and 
    # landing page URLs.
    final_urls=campaign_service.factory.create('ns3:ArrayOfstring')
    final_urls.string.append('https://www.contoso.com/womenshoesale')
    expanded_text_ad.FinalUrls=final_urls
    
    # Final Mobile URLs can also be used if you want to direct the user to a different page 
    # for mobile devices.
    final_mobile_urls=campaign_service.factory.create('ns3:ArrayOfstring')
    final_mobile_urls.string.append('https://mobile.contoso.com/womenshoesale')
    expanded_text_ad.FinalMobileUrls=final_mobile_urls
    
    # Set custom parameters that are specific to this ad.
    url_custom_parameters=campaign_service.factory.create('CustomParameters')
    parameters=campaign_service.factory.create('ArrayOfCustomParameter')
    custom_parameter1=campaign_service.factory.create('CustomParameter')
    custom_parameter1.Key='promoCode'
    custom_parameter1.Value='PROMO' + str(index)
    parameters.CustomParameter.append(custom_parameter1)
    custom_parameter2=campaign_service.factory.create('CustomParameter')
    custom_parameter2.Key='season'
    custom_parameter2.Value='summer'
    parameters.CustomParameter.append(custom_parameter2)
    url_custom_parameters.Parameters=parameters
    expanded_text_ad.UrlCustomParameters=url_custom_parameters
    
    ads.Ad.append(expanded_text_ad)
    
  • Alle nicht primitiven Elemente müssen für den Suds-Client angegeben werden, z. B. EditorialStatus vom Typ AdEditorialStatus, auch wenn die Bing Ads-API solche Elemente nicht erfordert.

  • Kampagnenverwaltungs-API-Vorgänge erfordern, dass es sich bei der Angabe eines nicht primitiven Elements um einen der vom Dienst definierten Werte handeln muss, d. h. es darf kein Nullelement sein. Da Suds Nicht-Grundtypen erfordert und Microsoft Advertising anstelle eines Enumerationswerts keine null Elemente akzeptiert, müssen Sie entweder die Nichtprimitive festlegen oder sie müssen auf Keine festgelegt werden. Wenn das Element nur bereit ist, müssen Sie es auf Keine festlegen. Legen Sie beispielsweise fest expanded_text_ad.EditorialStatus=None.

Um die entsprechenden Methoden eines Bing Ads API-Dienstvorgangs aufzurufen, können Sie eine instance der ServiceClient-Klasse verwenden und das Suds-Factoryobjekt übergeben. Weitere Informationen finden Sie unter Authentifizierung mit den SDKs.

Siehe auch

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