Partilhar via


Introdução à Utilização do Python com a API de Anúncios do Bing

Para começar a desenvolver aplicações da API de Anúncios do Bing com Python, pode começar com os exemplos fornecidos ou seguir uma das instruções da aplicação para uma aplicação Web ou de Ambiente de Trabalho .

Precisará de credenciais de utilizador com acesso ao Microsoft Advertising em produção ou sandbox. Para o ambiente de produção, precisará de um token de programador de produção. Todos os clientes do sandbox podem utilizar o token de programador de sandbox universal, ou seja, BBD37VB98. Para obter mais informações, veja Introdução à API de Anúncios do Bing e ao Sandbox.

Para autenticar através do OAuth, também tem de registar uma aplicação e obter o identificador de cliente correspondente. Também tem de tomar nota do segredo do cliente e redirecionar o URI se estiver a desenvolver uma aplicação Web. Para obter mais detalhes sobre como registar uma aplicação na produção e o fluxo de concessão de código de autorização, veja Authentication with OAuth and Authentication With the SDKs (Autenticação com OAuth e Autenticação com os SDKs). Apesar de, em produção, ter de utilizar o seu próprio ID de aplicação (também conhecido como ID de cliente), todos os clientes do Microsoft Advertising podem utilizar o ID de cliente "Tutorial Sample App" público no sandbox, ou seja, 4c0b021c-00c3-4508-838f-d3127e8167ff. Para obter mais informações, consulte Sandbox.

Dependências

O SDK Python de Anúncios do Bing utiliza a biblioteca suds-jurko-0.6 como proxy para todos os elementos de programação da API de Anúncios do Bing. Para obter mais informações sobre como utilizar Suds com o Microsoft Advertising, consulte Utilizar Suds.

O SDK Python de Anúncios do Bing suporta o Python 3.3 ou superior. Deve instalar e executar uma das versões suportadas.

Instalar o SDK

Para instalar o SDK Python do Bing Ads pela primeira vez, execute o seguinte a partir do IDE ou da linha de comandos.

pip.exe install bingads

Para confirmar que o SDK python do Bing Ads está instalado, execute o seguinte. Deverá ver bingads (<versão>) na lista de saída.

pip.exe list

Se já tiver o SDK Python do Bing Ads instalado, pode executar este comando para obter os bits mais recentes.

pip.exe install --upgrade bingads

Instruções

Assim que tiver o SDK Python do Bing Ads instalado, pode transferir os exemplos a partir do GitHub ou seguir uma das instruções da aplicação para uma Instruções: Aplicação Web da API de Anúncios do Bing em Python ou Instruções: Aplicação de Ambiente de Trabalho da API de Anúncios do Bing na aplicação Python .

Utilizar Suds

O SDK Python de Anúncios do Bing utiliza o SDK SOAP suds-jurko-0.6 para instanciar elementos de programação para a API de Anúncios do Bing, ou seja, operações de serviço, objetos de dados e conjuntos de valores. Irá transmitir objetos de fábrica do Suds através de uma classe ServiceClient, BulkServiceManager ou ReportingServiceManager . Uma vez que o Suds está incluído como uma dependência do SDK, pode utilizar o Suds diretamente para chamar qualquer uma das operações de serviço da API de Anúncios do Bing.

Tenha em atenção as seguintes regras, sugestões e sugestões relacionadas com Suds no SDK Python de Anúncios do Bing.

  • Uma das exceções mais comuns de que ouvimos falar é ERROR:suds.resolver:(ClassGoesHere) não encontrado. Normalmente, isto pode ser resolvido com o prefixo de espaço de nomes para o objeto Suds, por exemplo. ns3:ArrayOfstring.

    Sugestão

    Para detetar todos os objetos SOAP com prefixo de espaço de nomes que estão disponíveis para cada serviço, pode imprimir o cliente soap. Por exemplo, as seguintes declarações irão devolver Campanha, AdGroup, ExpandedTextAd e Palavra-chave, entre outras.

    campaign_service = ServiceClient(
        service='CampaignManagementService', 
        version = 13,
        authorization_data=authorization_data, 
        environment = ENVIRONMENT,
    )
    print campaign_service.soap_client
    
  • Para muitos objetos transmitidos para o serviço de gestão de campanhas através do Suds, pode criar objetos de dicionário. Do ponto de vista do desempenho, a abordagem do dicionário é mais rápida do que o 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 e NegativeKeywordList, a biblioteca Suds requer que utilize 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)
    
  • Todos os elementos não primitivos têm de ser especificados para o cliente Suds, por exemplo , EditorialStatus do tipo AdEditorialStatus, embora a API de Anúncios do Bing não necessite desses elementos.

  • As operações da API de Gestão de Campanhas exigem que, se especificar um não primitivo, este tem de ser um dos valores definidos pelo serviço, ou seja, não pode ser um elemento nulo. Uma vez que o Suds requer não primitivos e o Microsoft Advertising não aceita elementos nulos em vez de um valor de enumeração, tem de definir os não primitivos ou estes têm de ser definidos como Nenhum. Tenha também em atenção que, se o elemento estiver pronto apenas, tem de o definir como Nenhum. Por exemplo, defina expanded_text_ad.EditorialStatus=None.

Para chamar os métodos correspondentes de uma operação de serviço da API de Anúncios do Bing, pode utilizar uma instância da classe ServiceClient e transmitir o objeto de fábrica Suds. Para obter mais informações, veja Authentication With the SDKs (Autenticação com os SDKs).

See Also

Bibliotecas de Cliente da API de Anúncios do Bing
Exemplos de Código da API de Anúncios do Bing
Endereços do Serviço Web da API de Anúncios do Bing
Processamento de Erros e Exceções do Serviço
Sandbox