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 Bing Ads et du bac à sable.

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 deviez utiliser votre propre ID d’application (également nommé ID client), tous les clients Microsoft Advertising peuvent utiliser l’ID client public « Tutorial Sample App » dans le bac à sable, c’est-à-dire 4c0b021c-00c3-4508-838f-d3127e8167ff. Pour plus d’informations, consultez Bac à sable.

Dépendances

Le Kit de développement logiciel (SDK) Python Bing Ads utilise la bibliothèque suds-jurko-0.6 comme proxy pour tous les éléments de programmation de l’API Bing Ads. Pour plus d’informations sur l’utilisation de Suds avec Microsoft Advertising, consultez Utilisation de Suds.

Le Kit de développement logiciel (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 l’invite de ligne de commande.

pip.exe install bingads

Pour vérifier que le Kit de développement logiciel (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 le Kit de développement logiciel (SDK) Python Bing Ads est déjà installé, vous pouvez exécuter cette commande pour obtenir les derniers bits.

pip.exe install --upgrade bingads

Procédures pas à pas

Une fois que vous avez installé le Kit de développement logiciel (SDK) Python Bing Ads, 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 Python .

Utilisation de Suds

Le Kit de développement logiciel (SDK) Python Bing Ads utilise le SDK SOAP suds-jurko-0.6 pour instancier les éléments de programmation de 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 du service 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:ArrayOfstringpar 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 de l’API Bing Ads
Exemples de code de l’API Bing Ads
Adresses du service web de l’API Bing Ads
Gestion des erreurs et des exceptions de service
Bac à sable