Introdução à Utilização do Python com Bing Ads API
Para começar a desenvolver Bing Ads aplicações API 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 Bing Ads 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 público "Tutorial Sample App" no sandbox, ou seja, 00001111-aaaa-2222-bbbb-3333cccc4444. Para obter mais informações, consulte Sandbox.
Dependências
O SDK python Bing Ads utiliza a biblioteca suds-jurko-0.6 como proxy para todos os elementos de programação da API Bing Ads. Para obter mais informações sobre como utilizar Suds com o Microsoft Advertising, consulte Utilizar Suds.
O SDK python Bing Ads suporta o Python 3.3 ou superior. Deve instalar e executar uma das versões suportadas.
Instalar o SDK
Para instalar o Bing Ads SDK python pela primeira vez, execute o seguinte a partir do IDE ou da linha de comandos.
pip.exe install bingads
Para confirmar que o Bing Ads SDK python está instalado, execute o seguinte. Deverá ver bingads (<versão>) na lista de saída.
pip.exe list
Se já tiver o Bing Ads SDK python instalado, pode executar este comando para obter os bits mais recentes.
pip.exe install --upgrade bingads
Instruções
Assim que tiver o SDK python Bing Ads instalado, pode transferir os exemplos do GitHub ou seguir uma das instruções da aplicação para uma Aplicação Web de API de Bing Ads em Python ou Instruções: Bing Ads Aplicação de Ambiente de Trabalho da API na aplicação Python .
Utilizar Suds
O SDK python Bing Ads utiliza o SDK SOAP suds-jurko-0.6 para instanciar elementos de programação para a API Bing Ads, 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 do serviço de API Bing Ads.
Tenha em atenção as seguintes regras, sugestões e sugestões relacionadas com Suds no SDK python Bing Ads.
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 Bing Ads 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 Bing Ads, pode utilizar uma instância da classe ServiceClient e passar 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 Bing Ads
Exemplos de Código da API do Bing Ads
Endereços do Serviço Web da API Bing Ads
Processamento de Erros e Exceções do Serviço
Sandbox