Introducción al uso de Python con Bing Ads API
Para empezar a desarrollar aplicaciones de API de Bing Ads con Python, puede empezar con los ejemplos proporcionados o seguir uno de los tutoriales de aplicación para una aplicación web o de escritorio .
Necesitará credenciales de usuario con acceso a Microsoft Advertising en producción o espacio aislado. Para el entorno de producción, necesitará un token de desarrollador de producción. Todos los clientes de espacio aislado pueden usar el token de desarrollador de espacio aislado universal, es decir, BBD37VB98. Para obtener más información, consulte Introducción a la API de Bing Ads y el espacio aislado.
Para autenticarse a través de OAuth, también debe registrar una aplicación y obtener el identificador de cliente correspondiente. También debe tomar nota del secreto de cliente y el URI de redirección si está desarrollando una aplicación web. Para obtener más información sobre cómo registrar una aplicación en producción y el flujo de concesión de código de autorización, consulte Autenticación con OAuth y Autenticación con los SDK. Aunque en producción debe usar su propio identificador de aplicación (por ejemplo, el identificador de cliente), todos los clientes de Microsoft Advertising pueden usar el identificador de cliente público "Aplicación de ejemplo de tutorial" en el espacio aislado, es decir, 00001111-aaaa-2222-bbbb-3333cccc4444. Para obtener más información, consulte Espacio aislado.
Dependencias
El SDK de Python de Bing Ads usa la biblioteca suds-jurko-0.6 como proxy para todos los elementos de programación Bing Ads API. Para obtener más información sobre el uso de Suds con Microsoft Advertising, consulte Uso de Suds.
El SDK de Python Bing Ads admite Python 3.3 o posterior. Debe instalar y ejecutar una de las versiones admitidas.
Instalar el SDK
Para instalar el SDK de Python Bing Ads por primera vez, ejecute lo siguiente desde el IDE o desde el símbolo del sistema.
pip.exe install bingads
Para confirmar que el SDK de Python de Bing Ads está instalado, ejecute lo siguiente. Debería ver bingads (<versión>) en la lista de salida.
pip.exe list
Si ya tiene instalado el SDK de Python Bing Ads, puede ejecutar este comando para obtener los bits más recientes.
pip.exe install --upgrade bingads
Tutoriales
Una vez que tenga instalado el SDK de Python Bing Ads, puede descargar los ejemplos de GitHub o seguir uno de los tutoriales de aplicación de un tutorial: Bing Ads aplicación web de API en Python o Tutorial: Bing Ads aplicación de escritorio de API en la aplicación de Python .
Uso de Suds
El SDK de Python Bing Ads usa el SDK de SOAP suds-jurko-0.6 para crear instancias de elementos de programación para la API de Bing Ads, es decir, operaciones de servicio, objetos de datos y conjuntos de valores. Pasará objetos de fábrica de Suds a través de una clase ServiceClient, BulkServiceManager o ReportingServiceManager . Dado que Suds se incluye como una dependencia del SDK, puede usar Suds directamente para llamar a cualquiera de las operaciones del servicio de API de Bing Ads.
Tenga en cuenta las siguientes reglas, sugerencias y sugerencias relacionadas con Suds en Bing Ads SDK de Python.
Una de las excepciones más comunes que escuchamos es ERROR:suds.resolver:(ClassGoesHere) no encontrado. Normalmente, esto se puede resolver mediante el prefijo de espacio de nombres para el objeto Suds, por ejemplo,
ns3:ArrayOfstring
.Sugerencia
Para detectar todos los objetos SOAP con prefijo de espacio de nombres que están disponibles para cada servicio, puede imprimir el cliente soap. Por ejemplo, las siguientes instrucciones devolverán Campaign, AdGroup, ExpandedTextAd y Keyword, entre otros.
campaign_service = ServiceClient( service='CampaignManagementService', version = 13, authorization_data=authorization_data, environment = ENVIRONMENT, ) print campaign_service.soap_client
Para muchos objetos pasados al servicio de administración de campañas a través de Suds, puede crear objetos de diccionario. Desde una perspectiva de rendimiento, el enfoque del diccionario es más rápido que el método 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' }, ] }
Para tipos derivados como ExpandedTextAd, NegativeKeyword y NegativeKeywordList, la biblioteca Suds requiere que use 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)
Los elementos no primitivos deben especificarse para el cliente suds, por ejemplo , EditorialStatus de tipo AdEditorialStatus, aunque la API de Bing Ads no requiera dichos elementos.
Las operaciones de API de Campaign Management requieren que, si especifica un valor no primitivo, debe ser uno de los valores definidos por el servicio, es decir, no puede ser un elemento nil. Dado que Suds requiere elementos no primitivos y Microsoft Advertising no aceptará elementos nil en lugar de un valor de enumeración, debe establecer los no primitivos o deben establecerse en Ninguno. Tenga en cuenta también que si el elemento solo está listo, debe establecerlo en Ninguno. Por ejemplo, establezca
expanded_text_ad.EditorialStatus=None
.
Para llamar a los métodos correspondientes de una operación de servicio de API de Bing Ads, puede usar una instancia de la clase ServiceClient y pasar el objeto de fábrica Suds. Para obtener más información, consulte Autenticación con los SDK.
Consulta también
Bibliotecas cliente de API de Bing Ads
Ejemplos de código de API de Bing Ads
direcciones de servicio web de api de Bing Ads
Control de errores y excepciones del servicio
Espacio aislado