Formularios y anuncios para clientes potenciales

En este documento, se describe cómo usar la API de marketing para crear anuncios con el objetivo de generar clientes potenciales mediante la API Graph.

Para crear y publicar un anuncio para clientes potenciales, es necesario seguir estos pasos:

  1. Crear una campaña publicitaria
  2. Crear un conjunto de anuncios que vincule los anuncios con la campaña publicitaria
  3. Crear un formulario para clientes potenciales
  4. Crear el contenido del anuncio con el formulario para clientes potenciales
  5. Asociar la campaña y el contenido del anuncio para crear un anuncio
  6. Publicar el anuncio

Antes de empezar

En esta guía, se asume que leíste el Resumen de la plataforma de Messenger y que implementaste los componentes necesarios para enviar y recibir mensajes y notificaciones.

Necesitarás lo siguiente:

Paso 1. Crear una campaña

Si quieres crear una campaña publicitaria para tus anuncios de generación de clientes potenciales, envía una solicitud POST al punto de conexión /act_AD_ACCOUNT_ID/campaigns con los siguientes parámetros:

  • access_token configurado con el token de acceso a la página
  • buying_type configurado en AUCTION
  • name configurado con el nombre de la campaña
  • objective configurado en OUTCOME_LEADS
  • special_ad_categories configurado en NONE o con la categoría especial de anuncios
  • status configurado como PAUSED

Ejemplo de solicitud

El formato se modificó para facilitar la lectura. Reemplaza los valores en negrita y en cursiva, como AD_ACCOUNT_ID, por tus propios valores.
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 operación se realiza con éxito, la app recibirá un objeto JSON, que contiene el identificador de la campaña. Este identificador se usará cuando se cree un conjunto de anuncios en el siguiente paso.

{
  "id": "YOUR_CAMPAIGN_ID"
}

Consulta la referencia de las campañas publicitarias para obtener más información.

Paso 2. Crear un conjunto de anuncios

Para crear un conjunto de anuncios, envía una solicitud POST al punto de conexión act_ad_account_id/adsets, donde ad_account_id es el identificador de tu cuenta publicitaria de Meta. En la solicitud, debes incluir los siguientes parámetros:

  • access_token configurado con el token de acceso a la página
  • bid_amount configurado en el monto máximo que deseas pagar
  • billing_event configurado en IMPRESSIONS
  • campaign_id configurado con el identificador de la campaña publicitaria del paso 1
  • daily_budget configurado con el monto que deseas gastar por día
  • name configurado en el nombre del conjunto de anuncios
  • optimization_goal configurado en LEAD_GENERATION o QUALITY_LEAD
  • destination_type configurado en ON_AD
  • promoted_object configurado con el identificador de la página de Facebook de tu negocio
  • status configurado en PAUSED

Nota: Si configuraste un origen de datos de CRM y eliges QUALITY_LEAD como objetivo de optimización, puedes agregar el pixel_id al promoted_object para seguir optimizando la calidad. Ten en cuenta que no necesitas proporcionar una pixel_rule junto con el pixel_id.

Ejemplo de solicitud

El formato se modificó para facilitar la lectura. Reemplaza los valores en negrita y en cursiva, como AD_ACCOUNT_ID, por tus propios valores.
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 operación se procesa correctamente, tu app recibirá la siguiente respuesta JSON con el identificador del conjunto de anuncios.

{
  "id": "YOUR_ADSET_ID"
}

Consulta la referencia de los conjuntos de anuncios para obtener más información.

Paso 3. Crear un formulario para clientes potenciales

Si deseas crear un formulario, envía una solicitud POST al punto de conexión /PAGE_ID/leadgen_forms con los siguientes parámetros:

  • access_token configurado con el token de acceso a la página
  • name configurado en el nombre del formulario
  • questions configurado en una matriz de objetos que definen el tipo de preguntas y el orden en el que aparecerán en el formulario con el parámetro key
    • una pregunta personalizada con el parámetro label
    • una pregunta personalizada con el parámetro options con un menú desplegable de respuestas

Ejemplo de solicitud

El formato se modificó para facilitar la lectura. Reemplaza los valores en negrita y en cursiva por tus valores.
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"},
                   ]}
           ]"
         }'

Formularios de conversaciones de Messenger

Los formularios que desees usar en un anuncio en una conversación de Messenger deben contener lo siguiente:

  • El parámetro questions.type solo puede configurarse en alguno de los siguientes valores:
    • CUSTOM
    • EMAIL
    • FIRST_NAME
    • FULL_NAME
    • LAST_NAME
    • PHONE

    Si el formulario tiene un questions.type configurado en un valor distinto de los anteriores, no será apto.

  • Es necesario que el parámetro block_display_for_non_targeted_viewer esté configurado en false. De esta manera, el formulario se marca como Contenido compartido abierto.

Ejemplo de solicitud de formularios aptos para clientes potenciales de Messenger

El formato se modificó para facilitar la lectura. Reemplaza los valores en negrita y en cursiva por tus valores.
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"},
                   ]}
           ]"
         }'

Tipos de preguntas adicionales

Además de los tipos de preguntas típicos que se muestran en la [sección Crear un formulario para clientes potenciales]{#create-a-lead-form}, puedes agregar tipos de preguntas más especializados en los siguientes casos de uso:

  • Programación de citas: una pregunta de programación de cita muestra un selector de fecha y hora con una selección de horas limitada y un mensaje de confirmación debajo de las preguntas.
  • Documentos de identificación oficiales o nacionales: la pregunta referida a los documentos de identificación nacionales se formula en función del país en que vive una persona y valida el formato del documento de identificación ingresado.
  • Localizador de tiendas: una pregunta referida a la localización de tiendas muestra un selector de localización de tiendas según el código postal que haya introducido una persona.

Programación de citas

Una pregunta de programación de citas muestra un selector de fecha y hora con una selección de horas limitada y un mensaje de confirmación debajo de la pregunta.

Para agregar una pregunta de programación de citas, agrega un objeto de pregunta con el parámetro type configurado en DATE_TIME. También puedes agregar un mensaje de confirmación en el parámetro inline_context, que se mostrará directamente debajo del campo de pregunta y brindará más contexto, si es necesario.

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

Identificación nacional

Una pregunta referida al documento de identificación nacional muestra una pregunta en función del país en el que vive una persona y valida el formato del documento de identificación ingresado. La pregunta puede hacerse para los siguientes países:

  • Argentina: {"type": "ID_AR_DNI"}
  • Brasil: ID_CPF
  • Chile: ID_CL_RUT
  • Colombia: ID_CO_CC
  • Ecuador: ID_EC_CI
  • Perú: ID_PE_DNI

Para agregar una pregunta de identificación nacional, agrega un objeto de pregunta con el parámetro type configurado en el tipo de país de la persona.

Limitaciones

  • Puedes pedir una sola identificación nacional en cualquier formato y solo puedes dirigirte a personas en sus países correspondientes. Por ejemplo, si pides el DNI de Perú, tu público objetivo debe estar limitado a Perú. Solo se aprueban los anuncios que cumplen con este criterio.
  • La validación comprueba que el formato sea válido; no verifica si el documento de identificación le pertenece a una persona real.
...
           "questions": "[
               ...
               {"type": "ID_AR_DNI"
               },
...

Localizador de tiendas

Una pregunta referida a la localización de tiendas muestra un selector de localización de tiendas según el código postal que haya introducido la persona.

Deberás configurar una estructura de páginas de la tienda para usar esta pregunta. Obtén información sobre cómo hacerlo en Configurar la estructura de páginas de una tienda en Facebook – Servicio de ayuda de Meta para empresas

Para agregar una pregunta de localización de tiendas, agrega un objeto de pregunta con el parámetro type configurado en STORE_LOOKUP y el parámetro context_provider_type en LOCATION_MANAGER.

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

Configuración de formulario avanzada

Obtén clientes potenciales de mayor calidad agregando una o más de las siguientes opciones de configuración del formulario:

Agregar seguimiento del rendimiento

Agrega el campo tracking_parameters en el formulario, que te ayudará a hacer el seguimiento del origen de los clientes potenciales, y configura allí una lista de pares clave-valor de parámetros de los que deseas hacer seguimiento. Estos parámetros no aparecen en tu anuncio, pero permiten que Meta te proporcione metadatos sobre los clientes potenciales generados a partir de un formulario.

Ejemplo de solicitud

El formato se modificó para facilitar la lectura. Reemplaza los valores en negrita y en cursiva por tus valores.
...
           "name": "YOUR_LEADADS_FORM_NAME",
           "tracking_parameters": {"your_tracking_parameter_name":"your_tracking_parameter_value"},
           "questions": "[
...

Agregar configuración del tipo "Mayor grado de intención"

De forma predeterminada, los anuncios para clientes potenciales se optimizan en función del volumen de clientes potenciales. Sin embargo, puedes crear formularios que permiten obtener clientes potenciales con mayor grado de intención. Estos tipos de clientes potenciales pueden dirigirse a personas que puedan estar interesadas en un producto o servicio específico, como reservar una prueba de manejo en un concesionario. Esta configuración del formulario agrega un paso al proceso de envío del formulario cuando una persona revisa y confirma las respuestas antes enviarlo.

Con el fin de sumar este proceso de confirmación al formulario, agrega el parámetro is_optimized_for_quality configurado en true cuando crees el formulario.

Ejemplo de solicitud

El formato se modificó para facilitar la lectura. Reemplaza los valores en negrita y en cursiva por tus valores.
...
           "name": "YOUR_LEADADS_FORM_NAME",
           "is_optimized_for_quality": "true",
           "questions": "[
...

Filtrar clientes potenciales orgánicos

Para filtrar clientes potenciales orgánicos, agrega el parámetro block_display_for_non_targeted_viewer a true cuando crees el formulario.

Ejemplo de solicitud

El formato se modificó para facilitar la lectura. Reemplaza los valores en negrita y en cursiva por tus valores.
...
           "name": "YOUR_LEADADS_FORM_NAME",
           "block_display_for_non_targeted_viewer": "true",
           "questions": "[
...

Ejemplo de respuesta

Si la operación se procesa correctamente, la app recibirá una respuesta JSON que contiene el identificador del formulario que se usará cuando se cree el anuncio.

{
  "id": "leadgen_form_id",
}

Paso 4. Crear contenido para un anuncio

Para crear el contenido del anuncio con una imagen y tu formulario, envía una solicitud POST al punto de conexión /act_AD_ACCOUNT_ID/adcreatives con los siguientes parámetros:

  • access_token configurado con el token de acceso a la página
  • object_story_spec, que incluye un objeto link_data con los siguientes parámetros:
    • call_to_action configurado en un objeto que contenga type, y value configurado en el identificador del formulario de clientes potenciales
    • description configurado en la descripción del contenido
    • image_hash configurado en el resumen croptográfico (hash) de la imagen del contenido del anuncio
    • message configurado en el texto del contenido del anuncio
  • page_id configurado en el identificador de la página de Facebook

Nota: Al crear link_data, el valor asociado con el campo link solo puede ser https//fb.me/.

El parámetro link_data.call_to_action debe configurarse en alguno de los siguientes valores:

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

Ejemplo de solicitud

El formato se modificó para facilitar la lectura. Reemplaza los valores en negrita y en cursiva, como AD_ACCOUNT_ID, por tus propios valores.
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" 
         }'
  

Puedes crear un anuncio para clientes potenciales por secuencia usando la misma object_story_spec, pero con un campo lead_gen_form_id adicional definido en el parámetro child_attachments.

Solo podrás especificar el mismo <FORM_ID> para todos los adjuntos secundarios.

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

Con un video

También puedes usar un video en el contenido del anuncio para clientes potenciales en lugar de una foto. Primero, sube el video a tu biblioteca de videos para anuncios y, luego, úsalo en el parámetro 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

Ejemplo de respuesta de contenido del anuncio

Si la operación se procesa correctamente, tu app recibirá la siguiente respuesta JSON con el identificador del contenido del anuncio.

{
  "id": "YOUR_AD_CREATIVE_ID"
}
      

Para crear el anuncio, debes asociar el contenido del anuncio y el conjunto de anuncios. Para crear el anuncio, envía una solicitud POST al punto de conexión /act_AD_ACCOUNT_ID/ads. En la solicitud, debes incluir los siguientes parámetros:

  • access_token configurado con el token de acceso a la página
  • adset_id (del paso 2)
  • creative_id (del paso 4)
  • Nombre
  • Estado

Ejemplo de solicitud de anuncio con contenido

El formato se modificó para facilitar la lectura. Reemplaza los valores en negrita y en cursiva, como AD_ACCOUNT_ID, por tus propios valores.
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 operación se procesa correctamente, tu app recibirá la siguiente respuesta JSON con el identificador del anuncio.

{
  "id": "YOUR_AD_ID"
}

Paso 6. Publicar el anuncio

Verifica que el anuncio esté en el administrador de anuncios. Haz clic en el botón Revisar y publicar, en la esquina superior derecha. Selecciona la campaña, el conjunto de anuncios de la campaña y el anuncio.

Puedes publicar el anuncio desde el administrador de anuncios o mediante la API. Para publicarlo mediante la API, repite el paso 4 con el parámetro status configurado como ACTIVE.

Meta revisará el anuncio y el estado será PENDING_REVIEW. Una vez aprobado, el estado será ACTIVE y se entregará el anuncio.

Desde la administración

Obtener una lista de los formularios y las preguntas del formulario específicas, y archivar formularios antiguos.

Obtener una lista de formularios

Para obtener una lista de tus formularios de generación de clientes potenciales, envía una solicitud GET al punto de conexión /page_id/leadgen_forms con los siguientes parámetros:

  • access_token configurado con el token de acceso a la página
  • fields (opcional) configurado en una lista de campos separados por coma para obtener información específica, como el nombre y el identificador del formulario

Ejemplo de solicitud

El formato se modificó para facilitar la lectura. Reemplaza los valores en negrita y en cursiva por tus valores.
curl -X GET "https://graph.facebook.com/v21.0/PAGE_ID/leadgen_forms
    ?fields=name,id
    &access_token": "YOUR_PAGE_ACCESS_TOKEN"

Si la operación se realiza con éxito, la app recibirá una respuesta JSON con una lista de tus formularios. Puedes usar un identificador de formulario para obtener las preguntas para ese formulario o para archivar el formulario.

Obtener una lista de los formularios elegibles para Messenger

Solo algunos formularios que contienen requisitos específicos son aptos para enviarse en una conversación de Messenger.

Para obtener una lista de los formularios para clientes potenciales elegibles, envía una solicitud GET al punto de conexión /page_id/leadgen_forms con los siguientes parámetros:

  • access_token configurado con el token de acceso a la página
  • fields configurado en is_eligible_for_in_thread_forms

Ejemplo de solicitud

El formato se modificó para facilitar la lectura. Reemplaza los valores en negrita y en cursiva por tus valores.
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 operación se realiza con éxito, la app recibirá una respuesta JSON con una lista de identificadores de los formularios elegibles.

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

Obtener una lista de preguntas

Si deseas obtener una lista de preguntas para un formulario de generación de clientes potenciales específico, envía una solicitud GET al punto de conexión /page_id/leadgen_form_id con los siguientes parámetros:

  • access_token configurado con el token de acceso a la página
  • fields configurado en questions

Ejemplo de solicitud

El formato se modificó para facilitar la lectura. Reemplaza los valores en negrita y en cursiva por tus valores.
curl -X GET "https://graph.facebook.com/v21.0/page_id/leadgen_form_id
    ?fields=questions
    &access_token=page_access_token"

Si la operación se realiza con éxito, la app recibirá una respuesta JSON con una lista de preguntas.

Archivar un formulario

Los formularios para clientes potenciales solo pueden archivarse. La eliminación no se admite. Una vez que archivas un formulario:

  • El formulario no aparecerá (de forma predeterminada) en la biblioteca de formularios.
  • No es posible usar un formulario archivado en un anuncio. Si intentas hacerlo, puedes generar un error a través de la API.
  • Los formularios archivados no estarán disponibles durante la creación de anuncios para CF o PE.

Para archivar un formulario de generación de clientes potenciales específico, envía una solicitud POST al punto de conexión /page_id/leadgen_form_id con los siguientes parámetros:

  • access_token configurado con el token de acceso a la página
  • status configurado en ARCHIVED

Ejemplo de solicitud

El formato se modificó para facilitar la lectura. Reemplaza los valores en negrita y en cursiva por tus valores.
curl -X GET "https://graph.facebook.com/v21.0/page_id/leadgen_form_id
    ?status=ARCHIVED
    &access_token=page_access_token"

Si la operación se realiza con éxito, la app recibirá una respuesta JSON con un objeto donde success será true.

Un formulario archivado se puede volver a activar enviando una solicitud con status configurado como ACTIVE.