Prise en main de Python avec l’API Bing Ads
Pour commencer à développer des applications API Bing Ads avec Python, vous pouvez commencer avec les exemples fournis ou suivre l’une des procédures pas à pas pour une application web ou de bureau .
Vous aurez besoin d’informations d’identification utilisateur ayant accès à Microsoft Advertising en production ou en bac à sable. Pour l’environnement de production, vous aurez besoin d’un jeton de développeur de production. Tous les clients de bac à sable peuvent utiliser le jeton de développeur de bac à sable universel, c’est-à-dire BBD37VB98. Pour plus d’informations, consultez Prise en main de l’API et du bac à sable Bing Ads.
Pour vous authentifier via OAuth, vous devez également inscrire une application et obtenir l’identificateur client correspondant. Vous devez également prendre note de la clé secrète client et de l’URI de redirection si vous développez une application web. Pour plus d’informations sur l’inscription d’une application en production et sur le flux d’octroi du code d’autorisation, consultez Authentification avec OAuth et Authentification avec les KITS de développement logiciel (SDK). Bien qu’en production, vous devez utiliser votre propre ID d’application (également nommé ID client), tous les clients Microsoft Advertising peuvent utiliser l’ID client public « Exemple d’application tutoriel » dans le bac à sable, c’est-à-dire 00001111-aaaa-2222-bbbb-3333cccc4444. Pour plus d’informations, consultez Bac à sable.
Dépendances
Le sdk Python Bing Ads utilise la bibliothèque suds-jurko-0.6 comme proxy pour tous les éléments de programmation d’API Bing Ads. Pour plus d’informations sur l’utilisation de Suds avec Microsoft Advertising, consultez Utilisation de Suds.
Le sdk Python Bing Ads prend en charge Python 3.3 ou version ultérieure. Vous devez installer et exécuter l’une des versions prises en charge.
Installer le kit de développement logiciel (SDK)
Pour installer le kit de développement logiciel (SDK) Python Bing Ads pour la première fois, exécutez la commande suivante à partir de votre IDE ou de votre invite de ligne de commande.
pip.exe install bingads
Pour vérifier que le sdk Python Bing Ads est installé, exécutez la commande suivante. Vous devez voir bingads (<version>) dans la liste de sortie.
pip.exe list
Si vous avez déjà installé le kit de développement logiciel (SDK) Python Bing Ads, vous pouvez exécuter cette commande pour obtenir les derniers bits.
pip.exe install --upgrade bingads
Procédures pas à pas
Une fois le sdk Python Bing Ads installé, vous pouvez télécharger les exemples à partir de GitHub ou suivre l’une des procédures pas à pas pour une procédure pas à pas : application web API Bing Ads dans Python ou Procédure pas à pas : application de bureau API Bing Ads dans une application Python .
Utilisation de Suds
Le sdk Python Bing Ads utilise le SDK SOAP suds-jurko-0.6 pour instancier des éléments de programmation pour l’API Bing Ads, c’est-à-dire les opérations de service, les objets de données et les jeux de valeurs. Vous transmettez des objets de fabrique Suds via une classe ServiceClient, BulkServiceManager ou ReportingServiceManager . Étant donné que Suds est inclus en tant que dépendance sdk, vous pouvez utiliser Suds directement pour appeler l’une des opérations de service d’API Bing Ads.
Gardez à l’esprit les règles, suggestions et conseils suivants relatifs à Suds dans le kit de développement logiciel (SDK) Python Bing Ads.
L’une des exceptions les plus courantes dont nous entendons parler est ERROR :suds.resolver :(ClassGoesHere) introuvable. En règle générale, ce problème peut être résolu à l’aide du préfixe d’espace de noms pour l’objet Suds,
ns3:ArrayOfstring
par exemple .Conseil
Pour découvrir tous les objets SOAP avec le préfixe d’espace de noms disponibles pour chaque service, vous pouvez imprimer le client soap. Par exemple, les instructions suivantes retournent Campaign, AdGroup, ExpandedTextAd et Keyword, entre autres.
campaign_service = ServiceClient( service='CampaignManagementService', version = 13, authorization_data=authorization_data, environment = ENVIRONMENT, ) print campaign_service.soap_client
Pour de nombreux objets passés au service de gestion des campagnes via Suds, vous pouvez créer des objets de dictionnaire. Du point de vue des performances, l’approche du dictionnaire est plus rapide que l’autre méthode 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' }, ] }
Pour les types dérivés tels que ExpandedTextAd, NegativeKeyword et NegativeKeywordList, la bibliothèque Suds nécessite que vous utilisiez 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)
Tous les éléments non primitifs doivent être spécifiés pour le client Suds, par exemple EditorialStatus de type AdEditorialStatus, même si l’API Bing Ads ne nécessite pas de tels éléments.
Les opérations de l’API Gestion des campagnes nécessitent que si vous spécifiez des valeurs non primitives, il doit s’agir de l’une des valeurs définies par le service, c’est-à-dire qu’il ne peut pas s’agir d’un élément nul. Étant donné que Suds nécessite des non-primitives et que Microsoft Advertising n’accepte pas les éléments nil à la place d’une valeur enum, vous devez définir les non-primitives ou ils doivent être définis sur None. Notez également que si l’élément est prêt uniquement, vous devez le définir sur Aucun. Par exemple, définissez
expanded_text_ad.EditorialStatus=None
.
Pour appeler les méthodes correspondantes d’une opération de service d’API Bing Ads, vous pouvez utiliser un instance de la classe ServiceClient et passer l’objet de fabrique Suds. Pour plus d’informations, consultez Authentification avec les Kits de développement logiciel (SDK).
Voir aussi
Bibliothèques clientes d’API Bing Ads
Exemples de code d’API Bing Ads
Adresses du service web de l’API Bing Ads
Gestion des erreurs et des exceptions de service
Bac à sable