Introduzione all'uso di Python con l'API Bing Ads

Per iniziare a sviluppare applicazioni API Bing Ads con Python, è possibile iniziare con gli esempi forniti o seguire una delle procedure dettagliate per un'applicazione Web o desktop .

Saranno necessarie credenziali utente con accesso a Microsoft Advertising in ambiente di produzione o sandbox. Per l'ambiente di produzione è necessario un token per sviluppatori di produzione. Tutti i client sandbox possono usare il token per sviluppatori sandbox universale, ad esempio BBD37VB98. Per altre informazioni, vedere Introduzione all'API Bing Ads e alla sandbox.

Per eseguire l'autenticazione tramite OAuth, è anche necessario registrare un'applicazione e ottenere l'identificatore client corrispondente. È anche necessario prendere nota del segreto client e dell'URI di reindirizzamento se si sviluppa un'applicazione Web. Per altre informazioni sulla registrazione di un'applicazione nell'ambiente di produzione e sul flusso di concessione del codice di autorizzazione, vedere Autenticazione con OAuth e Autenticazione con gli SDK. Anche se nell'ambiente di produzione è necessario usare il proprio ID applicazione (ovvero l'ID client), tutti i clienti di Microsoft Advertising possono usare l'ID client "Tutorial Sample App" pubblico nella sandbox, ad esempio 4c0b021c-00c3-4508-838f-d3127e8167ff. Per altre informazioni, vedere Sandbox.

Dipendenze

Bing Ads Python SDK usa la libreria suds-jurko-0.6 come proxy per tutti gli elementi di programmazione dell'API Bing Ads. Per altre informazioni sull'uso di Suds con Microsoft Advertising, vedere Uso di Suds.

Bing Ads Python SDK supporta Python 3.3 o versione successiva. È consigliabile installare ed eseguire una delle versioni supportate.

Installare l'SDK

Per installare Bing Ads Python SDK per la prima volta, eseguire quanto segue dall'IDE o dal prompt della riga di comando.

pip.exe install bingads

Per verificare che Sia installato Bing Ads Python SDK, eseguire quanto segue. Nell'elenco di output dovrebbero essere visualizzati bingads (<versione>).

pip.exe list

Se è già installato Bing Ads Python SDK, è possibile eseguire questo comando per ottenere i bit più recenti.

pip.exe install --upgrade bingads

Procedure dettagliate

Dopo aver installato Bing Ads Python SDK , è possibile scaricare gli esempi da GitHub o seguire una delle procedure dettagliate dell'applicazione per una procedura dettagliata: Applicazione Web api Bing Ads in Python o Procedura dettagliata: Applicazione desktop api Bing Ads nell'applicazione Python .

Uso di Suds

Bing Ads Python SDK usa suds-jurko-0.6 SOAP SDK per creare un'istanza di elementi di programmazione per l'API Bing Ads, ad esempio operazioni di servizio, oggetti dati e set di valori. Gli oggetti factory Suds verranno passati tramite una classe ServiceClient, BulkServiceManager o ReportingServiceManager . Poiché Suds è incluso come dipendenza SDK, è possibile usare Suds direttamente per chiamare una qualsiasi delle operazioni del servizio API Bing Ads.

Tenere presente le regole, i suggerimenti e i suggerimenti seguenti relativi a Suds in Bing Ads Python SDK.

  • Una delle eccezioni più comuni è ERROR:suds.resolver:(ClassGoesHere) non trovata. In genere questo problema può essere risolto usando il prefisso dello spazio dei nomi per l'oggetto Suds, ad esempio ns3:ArrayOfstring.

    Consiglio

    Per individuare tutti gli oggetti SOAP con prefisso dello spazio dei nomi disponibili per ogni servizio, è possibile stampare il client soap. Ad esempio, le istruzioni seguenti restituiscono Campaign, AdGroup, ExpandedTextAd e Keyword, tra le altre.

    campaign_service = ServiceClient(
        service='CampaignManagementService', 
        version = 13,
        authorization_data=authorization_data, 
        environment = ENVIRONMENT,
    )
    print campaign_service.soap_client
    
  • Per molti oggetti passati al servizio di gestione delle campagne tramite Suds è possibile creare oggetti dizionario. Dal punto di vista delle prestazioni, l'approccio del dizionario è più veloce del metodo alternativo 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'
                },
            ]
        }
    
  • Per i tipi derivati, ad esempio ExpandedTextAd, NegativeKeyword e NegativeKeywordList, la libreria Suds richiede l'uso di factory.create.

    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)
    
  • Tutti gli elementi non primitivi devono essere specificati per il client Suds, ad esempio EditorialStatus di tipo AdEditorialStatus, anche se l'API Bing Ads non richiede tali elementi.

  • Le operazioni dell'API gestione campagna richiedono che se si specifica un elemento non primitivo, deve essere uno dei valori definiti dal servizio, ovvero non può essere un elemento nil. Poiché Suds richiede non primitive e Microsoft Advertising non accetta elementi nil al posto di un valore di enumerazione, è necessario impostare le non primitive oppure impostare su Nessuna. Si noti inoltre che se l'elemento è pronto, è necessario impostarlo su Nessuno. Ad esempio, impostare expanded_text_ad.EditorialStatus=None.

Per chiamare i metodi corrispondenti di un'operazione del servizio API Bing Ads, è possibile usare un'istanza della classe ServiceClient e passare l'oggetto factory Suds. Per altre informazioni, vedere Autenticazione con gli SDK.

Vedere anche

Librerie client dell'API Bing Ads
Esempi di codice API Bing Ads
Indirizzi del servizio Web dell'API Bing Ads
Gestione di errori ed eccezioni del servizio
Sandbox