Compartir a través de


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 y elespacio aislado de Bing Ads.

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, 4c0b021c-00c3-4508-838f-d3127e8167ff. 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 de la API de Bing Ads. Para obtener más información sobre el uso de Suds con Microsoft Advertising, consulte Uso de Suds.

El SDK de Python de 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 de Bing Ads por primera vez, ejecute lo siguiente desde el IDE o el símbolo del sistema de la línea de comandos.

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 de 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 de Bing Ads, puede descargar los ejemplos de GitHub o seguir uno de los tutoriales de aplicación de un tutorial: Aplicación web de api de Bing Ads en Python o Tutorial: Aplicación de escritorio de API de Bing Ads en una aplicación de Python .

Uso de Suds

El SDK de Python de Bing Ads usa el SDK de SOAP suds-jurko-0.6 para crear instancias de elementos de programación para bing Ads API, 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 api de Bing Ads.

Tenga en cuenta las siguientes reglas, sugerencias y sugerencias relacionadas con Suds en el SDK de Python de Bing Ads.

  • 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)
    
  • Cualquier elemento no primitivo debe especificarse para el cliente de 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 de cliente de api de Bing Ads
Ejemplos de código de api de Bing Ads
Direcciones del servicio web de la API de Bing Ads
Control de errores y excepciones del servicio
Espacio aislado