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 dell'applicazione 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 00001111-aaaa-2222-bbbb-3333cccc444444. Per altre informazioni, vedere Sandbox.
Dipendenze
Il Bing Ads Python SDK usa la libreria suds-jurko-0.6 come proxy per tutti gli elementi di programmazione API Bing Ads. Per altre informazioni sull'uso di Suds con Microsoft Advertising, vedere Uso di Suds.
Il Bing Ads Python SDK supporta Python 3.3 o versione successiva. È consigliabile installare ed eseguire una delle versioni supportate.
Installare l'SDK
Per installare il 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 il Bing Ads Python SDK sia installato, eseguire quanto segue. Nell'elenco di output dovrebbero essere visualizzati bingads (<versione>).
pip.exe list
Se è già installato il Bing Ads Python SDK, è possibile eseguire questo comando per ottenere i bit più recenti.
pip.exe install --upgrade bingads
Procedure dettagliate
Dopo aver installato il Bing Ads Python SDK , è possibile scaricare gli esempi da GitHub o seguire una delle procedure dettagliate dell'applicazione per una procedura dettagliata: Bing Ads'applicazione Web API in Python o Procedura dettagliata: Bing Ads applicazione desktop API in un'applicazione Python.
Uso di Suds
Il 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 del 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 API Bing Ads
Gestione di errori ed eccezioni del servizio
Sandbox