Formulaires prospect pour publicités à formulaire

Ce document explique comment utiliser l’API Marketing pour créer des publicités de génération de prospects avec l’API Graph.

Suivez ces étapes pour créer et publier une publicité à formulaire :

  1. Créer une campagne publicitaire
  2. Créer un ensemble de publicités qui associe vos publicités à votre campagne publicitaire
  3. Créer un formulaire prospect
  4. Créer un contenu publicitaire avec le formulaire prospect
  5. Associer la campagne au contenu publicitaire pour créer une publicité
  6. Publier la publicité

Avant de commencer

Dans ce guide, nous partons du principe que vous avez lu la présentation de la plateforme Messenger et implémenté les composants nécessaires pour envoyer et recevoir des messages et des notifications.

Vous aurez besoin des éléments suivants :

Étape 1. Créer une campagne

Pour créer une campagne publicitaire et l’utiliser pour vos publicités de génération de prospects, envoyez une requête POST au point de terminaison /act_AD_ACCOUNT_ID/campaigns avec les paramètres suivants :

  • access_token défini sur votre token d’accès de Page
  • buying_type défini sur AUCTION
  • name défini sur le nom de votre campagne
  • objective défini sur OUTCOME_LEADS
  • special_ad_categories défini sur NONE ou votre catégorie publicitaire spéciale
  • status défini sur PAUSED

Exemple de requête

Formaté pour plus de lisibilité. Remplacez les valeurs en gras et en italique, comme AD_ACCOUNT_ID, par vos propres valeurs.
curl -X POST "https://graph.facebook.com/v21.0/act_AD_ACCOUNT_ID/campaigns" \
     -H "Content-Type: application/json" \
     -d '{
           "access_token":"YOUR_PAGE_ACCESS_TOKEN",
           "buying_type":"AUCTION",
           "name":"YOUR_LEADADS_CAMPAIGN_NAME",
           "objective":"OUTCOME_LEADS",
           "special_ad_categories":["NONE"],
           "status":"PAUSED"
         }'

Si la demande aboutit, votre application reçoit un objet JSON contenant l’ID de votre campagne. Cet ID servira à la création d’un ensemble de publicités lors de la prochaine étape.

{
  "id": "YOUR_CAMPAIGN_ID"
}

Consultez la référence sur les campagnes publicitaires pour en savoir plus.

Étape 2. Créer un ensemble de publicités

Pour créer un ensemble de publicités, envoyez une requête POST au point de terminaison act_ad_account_id/adsetsad_account_id est l’ID de votre compte publicitaire Meta. Votre requête doit inclure :

  • access_token défini sur votre token d’accès de Page
  • bid_amount défini sur la somme maximale que vous souhaitez payer
  • billing_event défini sur IMPRESSIONS
  • campaign_id défini sur l’ID de votre campagne publicitaire obtenu à l’étape 1
  • daily_budget défini sur la somme que vous souhaitez dépenser chaque jour
  • name défini sur le nom de votre ensemble de publicités
  • optimization_goal défini sur LEAD_GENERATION ou QUALITY_LEAD
  • destination_type défini sur ON_AD
  • promoted_object défini sur l’ID de la Page Facebook de votre entreprise
  • status défini sur PAUSED

Remarque : Si vous avez configuré une source de données CRM et choisi QUALITY_LEAD comme objectif d’optimisation, vous pouvez ajouter le pixel_id au promoted_object pour une meilleure optimisation de la qualité. Notez que vous n’avez pas besoin de fournir une pixel_rule avec le pixel_id.

Exemple de requête

Formaté pour plus de lisibilité. Remplacez les valeurs en gras et en italique, comme AD_ACCOUNT_ID, par vos propres valeurs.
curl -X POST "https://graph.facebook.com/v21.0/act_AD_ACCOUNT_ID/adsets"
     -H "Content-Type: application/json" 
     -d '{
           "access_token":"YOUR_PAGE_ACCESS_TOKEN",
           "bid_amount":"YOUR_BID_AMOUNT",
           "billing_event":"IMPRESSIONS",
           "campaign_id":"YOUR_CAMPAIGN_ID",
           "daily_budget":"YOUR_DAILY_BUDGET",
           "name:"YOUR_LEADADS_ADSET_NAME",
           "optimization_goal":"LEAD_GENERATION",
           "destination_type":"ON_AD",
           "promoted_object":"YOUR_PAGE_ID",
           "status":"PAUSED"
         }'

Si la demande aboutit, votre application reçoit la réponse JSON suivante avec l’ID de l’ensemble de publicités.

{
  "id": "YOUR_ADSET_ID"
}

Consultez la référence sur les ensembles de publicités pour en savoir plus.

Étape 3. Créer un formulaire prospect

Pour créer un formulaire, envoyez une requête POST au point de terminaison /PAGE_ID/leadgen_forms avec les paramètres suivants :

  • access_token défini sur votre token d’accès de Page
  • name défini sur le nom de votre formulaire
  • questions défini sur un tableau d’objets définissant le type de questions et l’ordre dans lequel elles apparaîtront dans le formulaire à l’aide du paramètre key
    • une question personnalisée utilisant le paramètre label
    • une question personnalisée utilisant le paramètre options avec un menu déroulant contenant les réponses

Exemple de requête

Formaté pour plus de lisibilité. Remplacez les valeurs en gras et en italique par vos valeurs.
curl -X POST "https://graph.facebook.com/v21.0/PAGE_ID/leadgen_forms" \
     -H "Content-Type: application/json" \
     -d '{
           "access_token": "YOUR_PAGE_ACCESS_TOKEN",
           "name": "YOUR_LEADADS_FORM_NAME",
           "questions": "[
               {"type":"FULL_NAME", "key": "question1"},
               {"type":"EMAIL", "key": "question2"},
               {"type":"PHONE", "key": "question3"},
               {"type":"CUSTOM", "key": "question4" "label": "Do you like rainbows?"}
               {"type":"CUSTOM", "key": "question5" "label": "What is your favorite color?", 
                   "options": [
                       {value: "Red", key: "key1"},
                       {value: "Green", key: "key2"},
                       {value: "Blue", key: "key2"},
                   ]}
           ]"
         }'

Formulaires pour les conversations Messenger

Les formulaires que vous souhaitez utiliser dans une publicité affichée dans une conversation Messenger doivent contenir les éléments suivants :

  • Le paramètre questions.type ne peut être défini que sur l’une des valeurs suivantes :
    • CUSTOM
    • EMAIL
    • FIRST_NAME
    • FULL_NAME
    • LAST_NAME
    • PHONE

    Si une valeur autre que celles répertoriées ci-dessus est utilisée pour questions.type, le formulaire sera rejeté.

  • Le paramètre block_display_for_non_targeted_viewer doit être défini sur false. Cela indique que le formulaire fait l’objet d’un partage ouvert.

Exemple de requête éligible pour un formulaire prospect Messenger

Formaté pour plus de lisibilité. Remplacez les valeurs en gras et en italique par vos valeurs.
curl -X POST "https://graph.facebook.com/v21.0/PAGE_ID/leadgen_forms" \
     -H "Content-Type: application/json" \
     -d '{
           "access_token": "YOUR_PAGE_ACCESS_TOKEN"
           "block_display_for_non_targeted_viewer": "false"
           "name": "LeadAds Form for Messenger Conversation Name"
           "questions": "[
               {"type":"FULL_NAME", "key": "question1"},
               {"type":"EMAIL", "key": "question2"},
               {"type":"PHONE", "key": "question3"},
               {"type":"CUSTOM", "key": "question4" "label": "Do you like rainbows?"}
               {"type":"CUSTOM", "key": "question5" "label": "What is your favorite color?", 
                   "options": [
                       {value: "Red", key: "key1"},
                       {value: "Green", key: "key2"},
                       {value: "Blue", key: "key2"},
                   ]}
           ]"
         }'

Autres types de questions

Outre les types de questions standards présentés dans la [section Créer un formulaire prospect]{#create-a-lead-form}, vous pouvez ajouter des types de questions plus spécifiques pour les cas suivants :

  • Programmation d’un rendez-vous – Une question pour la programmation d’un rendez-vous affiche un sélecteur de date et heure avec une sélection horaire limitée et un message de confirmation sous la question.
  • Pièce d’identité nationale ou officielle – Une question sur la pièce d’identité nationale permet de valider le format de la pièce d’identité en fonction du pays de l’utilisateur·ice.
  • Carte des magasins – Vous pouvez créer une question afin d’afficher une carte des magasins selon le code postal saisi.

Programmation de rendez-vous

Une question pour la programmation d’un rendez-vous affiche un sélecteur de date et heure avec une sélection horaire limitée et un message de confirmation sous la question.

Pour inclure une question pour la programmation d’un rendez-vous, ajoutez un objet de question avec le paramètre type défini sur DATE_TIME. Vous pouvez également ajouter un message de confirmation dans le paramètre inline_context, qui s’affichera juste en dessous du champ réservé à la question pour donner plus de contexte, si nécessaire.

...
           "questions": "[
               ...
               {"type": "DATE_TIME", 
                "label": "Appointment time", 
                "inline_context": "We will verify and call you to confirm your appointment."
               },
...

Pièce d’identité nationale

Une question sur la pièce d’identité nationale permet de valider le format de la pièce d’identité en fonction du pays de l’utilisateur·ice. Vous pouvez ajouter cette question pour les pays suivants :

  • Argentine – {"type": "ID_AR_DNI"}
  • Brésil – ID_CPF
  • Chili – ID_CL_RUT
  • Colombie – ID_CO_CC
  • Équateur – ID_EC_CI
  • Pérou – ID_PE_DNI

Pour créer une question sur la pièce d’identité nationale, ajoutez un objet de question avec le paramètre type défini sur le type du pays de la personne.

Limites

  • Vous ne pouvez demander qu’un seul numéro d’identité nationale dans un formulaire donné, et vous pouvez uniquement cibler les personnes dans le pays correspondant. Par exemple, si vous demandez le DNI du Pérou, votre audience cible doit se limiter à ce pays. Seules les publicités qui correspondent à ce critère seront approuvées.
  • Le processus de validation contrôle la validité du format ; il ne vérifie pas que la pièce d’identité appartient à une personne réelle.
...
           "questions": "[
               ...
               {"type": "ID_AR_DNI"
               },
...

Carte des magasins

Vous pouvez créer une question afin d’afficher une carte des magasins selon le code postal saisi.

Pour ce faire, vous devrez configurer une structure de Pages de magasin. Découvrez comment dans Configurer une structure de Pages de magasin sur Facebook – Pages d’aide Meta Business

Pour inclure une question permettant l’affichage d’une carte des magasins, ajoutez un objet de question avec le paramètre type défini sur STORE_LOOKUP et le paramètre context_provider_type sur LOCATION_MANAGER.

...
           "questions": "[
               ...
               {"type": "STORE_LOOKUP", 
                "label": "Which store do you want to visit?", 
                "context_provider_type": "LOCATION_MANAGER"
               },
...

Paramètres de formulaire avancés

Pour obtenir des prospects de meilleure qualité, ajoutez un ou plusieurs des paramètres de formulaire suivants :

Ajouter le suivi des performances

Pour suivre la source de vos prospects, ajoutez à votre formulaire le champ tracking_parameters défini sur une liste des paramètres dont vous souhaitez effectuer le suivi. Ces paramètres sont chacun constitués d’une paire clé-valeur. Ils n’apparaissent pas dans votre publicité, mais permettent à Meta de vous fournir des métadonnées concernant les prospects générés à partir d’un formulaire.

Exemple de requête

Formaté pour plus de lisibilité. Remplacez les valeurs en gras et en italique par vos valeurs.
...
           "name": "YOUR_LEADADS_FORM_NAME",
           "tracking_parameters": {"your_tracking_parameter_name":"your_tracking_parameter_value"},
           "questions": "[
...

Ajouter le paramètre d’intention élevée

Par défaut, les publicités à formulaire sont optimisées en fonction du volume de prospects. Toutefois, vous pouvez créer des formulaires qui génèrent des prospects dont l’intention est plus élevée. Ce type de prospects regroupe des personnes qui peuvent être intéressées par un produit ou service spécifique, tel que l’essai d’un véhicule chez un concessionnaire. Ce paramètre ajoute une étape lors du remplissage du formulaire, qui consiste pour le prospect à vérifier et à confirmer les réponses avant d’envoyer le formulaire.

Pour ajouter cette étape de confirmation à votre formulaire, intégrez le paramètre is_optimized_for_quality défini sur true lors de la création du formulaire.

Exemple de requête

Formaté pour plus de lisibilité. Remplacez les valeurs en gras et en italique par vos valeurs.
...
           "name": "YOUR_LEADADS_FORM_NAME",
           "is_optimized_for_quality": "true",
           "questions": "[
...

Filtrer les prospects organiques

Pour filtrer les prospects organiques, intégrez le paramètre block_display_for_non_targeted_viewer défini sur true lors de la création du formulaire.

Exemple de requête

Formaté pour plus de lisibilité. Remplacez les valeurs en gras et en italique par vos valeurs.
...
           "name": "YOUR_LEADADS_FORM_NAME",
           "block_display_for_non_targeted_viewer": "true",
           "questions": "[
...

Exemple de réponse

Si la requête aboutit, votre application reçoit une réponse JSON contenant l’ID de votre formulaire, que vous utiliserez lors de la création de votre publicité.

{
  "id": "leadgen_form_id",
}

Étape 4. Créer un contenu publicitaire

Pour créer un contenu publicitaire avec une image et votre formulaire, envoyez une requête POST au point de terminaison /act_AD_ACCOUNT_ID/adcreatives avec les paramètres suivants :

  • access_token défini sur votre token d’accès de Page
  • object_story_spec, qui inclut un objet link_data avec les paramètres suivants :
    • call_to_action défini sur un objet contenant type et value avec l’ID de votre formulaire prospect comme valeur
    • description défini sur la description de votre contenu publicitaire
    • image_hash défini sur le hachage d’une image pour votre contenu publicitaire
    • message défini sur le texte de votre contenu publicitaire
  • page_id défini sur l’ID de votre Page Facebook

Remarque : lors de la création des link_data, la seule valeur qui peut être associée au champ link est https//fb.me/.

Le paramètre link_data.call_to_action doit être défini sur l’une des valeurs suivantes :

  • APPLY_NOW
  • DOWNLOAD
  • GET_QUOTE
  • LEARN_MORE
  • SIGN_UP
  • SUBSCRIBE

Exemple de requête

Formaté pour plus de lisibilité. Remplacez les valeurs en gras et en italique, comme AD_ACCOUNT_ID, par vos propres valeurs.
curl -X POST "https://graph.facebook.com/LATEST-API-VERSION/act_AD_ACCOUNT_ID/adcreatives" \
     -H "Content-Type: application/json" \
     -d '{
           "access_token":"YOUR_PAGE_ACCESS_TOKEN",
           "object_story_spec":{ 
             "link_data": { 
               "call_to_action": {
                 "type":"SIGN_UP",
                 "value":{
                   "lead_gen_form_id":"YOUR_FORM_ID"
                 }
               }, 
               "description": "YOUR_AD_CREATIVE_DESCRIPTION", 
               "image_hash": "YOUR_IMAGE_HASH", 
               "link": "http:\/\/fb.me\/", 
               "message": "YOUR_AD_CREATIVE_MESSAGE" 
             }, 
           "page_id": "YOUR_PAGE_ID" 
         }'
  

Vous pouvez créer une publicité à formulaire carrousel à l’aide de la même object_story_spec, mais avec un champ lead_gen_form_id supplémentaire défini dans le paramètre child_attachments.

Vous devez indiquer le même <FORM_ID> pour toutes les pièces jointes enfants.

curl \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "link_data": { 
      "message": "My description", 
      "link": "http:\/\/www.google.com", 
      "caption": "WWW.EXAMPLE.COM", 
      "child_attachments": [ 
        { 
          "link": "http:\/\/www.google.com", 
          "image_hash": "<IMAGE_HASH>", 
          "call_to_action": {"type":"SIGN_UP","value":{"lead_gen_form_id":"<FORM_ID>"}} 
        }, 
        { 
          "link": "http:\/\/www.google.com", 
          "image_hash": "<IMAGE_HASH>", 
          "call_to_action": {"type":"SIGN_UP","value":{"lead_gen_form_id":"<FORM_ID>"}} 
        }, 
        { 
          "link": "http:\/\/www.google.com", 
          "image_hash": "<IMAGE_HASH>", 
          "call_to_action": {"type":"SIGN_UP","value":{"lead_gen_form_id":"<FORM_ID>"}} 
        }, 
        { 
          "link": "http:\/\/www.google.com", 
          "image_hash": "<IMAGE_HASH>", 
          "call_to_action": {"type":"SIGN_UP","value":{"lead_gen_form_id":"<FORM_ID>"}} 
        } 
      ], 
      "multi_share_optimized": true, 
      "call_to_action": {"type":"SIGN_UP","value":{"lead_gen_form_id":"<FORM_ID>"}} 
    } 
  }' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/LATEST-API-VERSION/act_<AD_ACCOUNT_ID>/adcreatives

Avec une vidéo

Vous pouvez également utiliser une vidéo plutôt qu’une photo dans le contenu publicitaire d’une publicité à formulaire. Commencez par importer votre vidéo dans votre bibliothèque de vidéos publicitaires, puis utilisez-la dans le paramètre object_story_spec :

curl -X POST \
  -F 'object_story_spec={
       "page_id": "<PAGE_ID>",
       "video_data": {
         "link_description": "try it out",
         "image_url": "<IMAGE_URL>",
         "video_id": "<VIDEO_ID>",
         "call_to_action": {
           "type": "SIGN_UP",
           "value": {
             "link": "http://fb.me/",
             "lead_gen_form_id": "<FORM_ID>"
           }
         }
       }
     }' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/adcreatives

Exemple de réponse pour un contenu publicitaire

Si la requête aboutit, votre application reçoit la réponse JSON suivante avec l’ID du contenu publicitaire.

{
  "id": "YOUR_AD_CREATIVE_ID"
}
      

Pour créer la publicité, vous devez associer le contenu publicitaire et l’ensemble de publicités. Pour créer la publicité, envoyez une requête POST au point de terminaison /act_AD_ACCOUNT_ID/ads. Votre requête doit inclure :

  • access_token défini sur votre token d’accès de Page
  • adset_id (obtenu à l’étape 2)
  • creative_id (obtenu à l’étape 4)
  • nom
  • statut

Exemple de requête pour une publicité avec du contenu

Formaté pour plus de lisibilité. Remplacez les valeurs en gras et en italique, comme AD_ACCOUNT_ID, par vos propres valeurs.
curl -X POST "https://graph.facebook.com/v21.0/act_AD_ACCOUNT_ID/ads"
     -H "Content-Type: application/json" 
     -d '{
           "access_token"="YOUR_PAGE_ACCESS_TOKEN",
           "name":"YOUR_LEADADS_AD_NAME",
           "adset_id"="YOUR_AD_SET_ID",
           "creative"={ "creative_id": "YOUR_AD_CREATIVE_ID" },
           "status"="PAUSED"
         }'

Si la requête aboutit, votre application reçoit la réponse JSON suivante avec l’ID de la publicité.

{
  "id": "YOUR_AD_ID"
}

Étape 6. Publier votre publicité

Vérifiez que votre publicité existe bien dans le Gestionnaire de publicités. Cliquez sur le bouton Vérifier et publier dans le coin supérieur droit. Sélectionnez votre campagne, l’ensemble de publicités correspondant et la publicité.

Vous pouvez publier votre publicité à partir du Gestionnaire de publicités ou à l’aide de l’API. Pour la publier avec l’API, répétez l’Étape 4 avec le paramètre status défini sur ACTIVE.

En attendant la vérification par Meta, le statut passe à PENDING_REVIEW. Une fois la publicité approuvée, son statut devient ACTIVE et elle est diffusée.

Gestion des formulaires

Obtenez une liste de vos formulaires, récupérez les questions spécifiques des formulaires et archivez les anciens formulaires.

Obtenir la liste des formulaires

Pour obtenir la liste de vos formulaires de génération de prospects, envoyez une demande GET au point de terminaison /page_id/leadgen_forms avec les paramètres suivants :

  • access_token défini sur votre token d’accès de Page
  • fields (facultatif) défini sur une liste de champs séparés par des virgules pour obtenir des informations spécifiques comme le nom et l’ID du formulaire.

Exemple de requête

Formaté pour plus de lisibilité. Remplacez les valeurs en gras et en italique par vos valeurs.
curl -X GET "https://graph.facebook.com/v21.0/PAGE_ID/leadgen_forms
    ?fields=name,id
    &access_token": "YOUR_PAGE_ACCESS_TOKEN"

Si la demande aboutit, votre application reçoit une réponse JSON contenant la liste de vos formulaires. Vous pouvez utiliser un ID de formulaire pour obtenir les questions pour ce formulaire ou archiver le formulaire.

Obtenir la liste des formulaires éligibles pour Messenger

Seuls les formulaires contenant des éléments obligatoires spécifiques sont éligibles à un envoi dans une conversation Messenger.

Pour obtenir la liste de vos formulaires prospect éligibles, envoyez une requête GET au point de terminaison /page_id/leadgen_forms avec les paramètres suivants :

  • access_token défini sur votre token d’accès de Page
  • fields défini sur is_eligible_for_in_thread_forms

Exemple de requête

Formaté pour plus de lisibilité. Remplacez les valeurs en gras et en italique par vos valeurs.
curl -X GET "https://graph.facebook.com/v21.0/PAGE_ID/leadgen_forms
    ?fields=is_eligible_for_in_thread_forms
    &access_token": "YOUR_PAGE_ACCESS_TOKEN"

Si la demande aboutit, votre application reçoit une réponse JSON contenant la liste des ID des formulaires éligibles.

{
  "data": [
    {
      "id": "eligible_form_1_id"
    },
    {
      "id": "eligible_form_2_id"
    }
  ],
...
}

Obtenir la liste des questions

Pour obtenir la liste des questions d’un formulaire de génération de prospects spécifique, envoyez une demande GET au point de terminaison /page_id/leadgen_form_id avec les paramètres suivants :

  • access_token défini sur votre token d’accès de Page
  • fields défini sur questions

Exemple de requête

Formaté pour plus de lisibilité. Remplacez les valeurs en gras et en italique par vos valeurs.
curl -X GET "https://graph.facebook.com/v21.0/page_id/leadgen_form_id
    ?fields=questions
    &access_token=page_access_token"

Si la demande aboutit, votre application reçoit une réponse JSON contenant la liste des questions.

Archiver un formulaire

Vous ne pouvez archiver qu’un seul formulaire prospect puisque la suppression n’est pas prise en charge. Une fois le formulaire archivé :

  • Il n’apparaît plus (par défaut) dans la bibliothèque de formulaires.
  • Vous ne pouvez pas utiliser un formulaire archivé dans une publicité, car l’API génère une erreur si vous tentez de le faire.
  • Il ne sera pas disponible lors de la création de publicités dans CF ni PE.

Pour archiver un formulaire de génération de prospects spécifique, envoyez une demande POST au point de terminaison /page_id/leadgen_form_id avec les paramètres suivants :

  • access_token défini sur votre token d’accès de Page
  • status défini sur ARCHIVED

Exemple de requête

Formaté pour plus de lisibilité. Remplacez les valeurs en gras et en italique par vos valeurs.
curl -X GET "https://graph.facebook.com/v21.0/page_id/leadgen_form_id
    ?status=ARCHIVED
    &access_token=page_access_token"

Si la demande aboutit, votre application reçoit une réponse JSON contenant un objet avec success défini sur true.

Pour réactiver un formulaire archivé, envoyez une demande pour définir status sur ACTIVE.