Introducción al uso de Python con la API de Bing Ads

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 una aplicación web o de escritorio .

Necesitarás credenciales de usuario con acceso a Microsoft Advertising, ya sea en producción o en 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, consulta Introducción a la API y elespacio aislado de Microsoft Advertising

Para autenticarse a través de OAuth, también debe registrar una aplicación y obtener el identificador de cliente correspondiente. También debe anotar el secreto de cliente y el URI de redireccionamiento si está desarrollando una aplicación web. Para obtener más información sobre el registro de 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 debes usar tu propio id. de aplicación (también conocido como id. de cliente), todos los clientes de Microsoft Advertising pueden usar el id. 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 admite Python 3.8 o superior. Debe instalar y ejecutar una de las versiones compatibles.

El SDK basado en REST depende de los siguientes paquetes, que se instalan automáticamente:

Instalar el SDK

Para instalar el SDK de Python de Bing Ads por primera vez, ejecute lo siguiente desde el IDE o desde el símbolo del sistema de línea de comandos.

pip.exe install msads

Para confirmar que el SDK de Python de Bing Ads está instalado, ejecute lo siguiente. Debería ver msads (<versión>) en la lista de resultados.

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 msads

Tutoriales

Una vez instalado el SDK de Python de Bing Ads, puede descargar los ejemplos desde GitHub o seguir uno de los tutoriales de la aplicación para obtener un tutorial: Aplicación web de la API de Bing Ads en Python o Tutorial: Aplicación de escritorio de la API de Bing Ads en la aplicación de Python.

Usar el SDK de REST

El SDK de Python de Bing Ads se comunica con la API REST de Microsoft Advertising mediante clases de cliente generadas por OpenAPI respaldadas por modelos de Pydantic . Usted interactúa con la API a través de una instancia de ServiceClient , que controla automáticamente los encabezados de autenticación, el enrutamiento de puntos de conexión y el envío de métodos.

Configuración de un ServiceClient

Cree un ServiceClient pasando el nombre del servicio, la versión de API, los datos de autorización y el entorno de destino.

from bingads.service_client import ServiceClient

campaign_service = ServiceClient(
    service='CampaignManagementService',
    version=13,
    authorization_data=authorization_data,
    environment=ENVIRONMENT,  # 'production' or 'sandbox'
)

Se admiten los siguientes nombres de servicio: CampaignManagementService, BulkService, ReportingService, CustomerBillingServiceCustomerManagementService, y AdInsightService.

Creación de objetos

Importa las clases de modelo directamente y crea instancias de ellas con argumentos de openapi_client.models.campaign palabras clave. No hay ArrayOf* tipos de envoltura: use listas de Python simples donde un campo acepte varios elementos.

from openapi_client.models.campaign import *

campaign = Campaign(
    name="Women's Shoes",
    daily_budget=50.0,
    budget_type=BudgetLimitType.DAILYBUDGETSTANDARD,
    time_zone='PacificTimeUSCanadaTijuana',
    languages=['All'],
)

Para tipos derivados como ExpandedTextAd, cree una instancia de la subclase concreta directamente, sin necesidad de llamadas de fábrica ni codificación especial. Los parámetros personalizados y otros objetos anidados se pueden establecer en línea a través del constructor.

expanded_text_ad = ExpandedTextAd(
    title_part1='Contoso',
    title_part2='Quick & Easy Setup',
    title_part3='Seamless Integration',
    text='Find New Customers & Increase Sales!',
    text_part2='Start Advertising on Contoso Today.',
    path1='seattle',
    path2='shoe sale',
    # With FinalUrls you can separate the tracking template, custom parameters,
    # and landing page URLs.
    final_urls=['https://www.contoso.com/womenshoesale'],
    # Final Mobile URLs can also be used if you want to direct the user to a
    # different page for mobile devices.
    final_mobile_urls=['https://mobile.contoso.com/womenshoesale'],
    # Set custom parameters that are specific to this ad.
    url_custom_parameters=CustomParameters(
        parameters=[
            CustomParameter(key='promoCode', value='PROMO' + str(index)),
            CustomParameter(key='season', value='summer'),
        ]
    ),
)

ads = [expanded_text_ad]

Operaciones del servicio de llamadas

Genere un objeto de solicitud y páselo al método correspondiente en ServiceClient. Los métodos usan snake_case nomenclatura.

add_request = AddCampaignsRequest(
    account_id=authorization_data.account_id,
    campaigns=[campaign],
)
response = campaign_service.add_campaigns(add_campaigns_request=add_request)
campaign_id = response.campaign_ids[0]

Autenticación

El SDK de REST utiliza el encabezado HTTP estándar Authorization: Bearer <token> . El flujo de OAuth (concesión de código de autorización, administración de tokens de actualización y almacenamiento de tokens) es idéntico al SDK de SOAP. Para obtener más información, consulte Autenticación con los SDK.

Control de errores

Los errores de servicio se generan a partir ApiException del openapi_client paquete. La excepción expone el código de estado HTTP y el cuerpo de la respuesta al error.

from openapi_client.exceptions import ApiException

try:
    response = campaign_service.GetCampaignsByAccountId(
        AccountId=authorization_data.account_id,
        CampaignType='Search'
    )
except ApiException as ex:
    print(f"HTTP status {ex.status}: {ex.body}")

Para obtener información sobre cómo analizar los errores por lotes devueltos en el cuerpo de la respuesta, consulte Handling Service Errors and Exceptions.

Consulta también

Bibliotecas cliente de la API de Bing Ads
Ejemplos de código de API de Bing Ads
Direcciones de servicios web de la API de Microsoft Advertising
Control de errores y excepciones de servicio
Espacio aislado