Formularios para clientes potenciales en anuncios

En este documento se describe cómo usar la API de marketing a fin de crear anuncios para generar clientes potenciales con la API Graph.

Para crear y publicar un anuncio para clientes potenciales, sigue los pasos a continuación:

  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 para crear un anuncio.
  6. Publicar el anuncio.

Antes de empezar

En esta guía se da por sentado que has leído la información general sobre la plataforma de Messenger e implementado los componentes necesarios para enviar y recibir mensajes y notificaciones.

Necesitarás lo siguiente:

Paso 1. Crear una campaña

A fin de crear una campaña publicitaria para los anuncios de generación de clientes potenciales, envía una solicitud POST al extremo /act_AD_ACCOUNT_ID/campaigns con los siguientes parámetros:

  • access_token establecido en el identificador de acceso a la página.
  • buying_type establecido en AUCTION.
  • name establecido en el nombre de la campaña.
  • objective establecido en OUTCOME_LEADS.
  • special_ad_categories establecido en NONE o en la categoría de anuncio especial .
  • status establecido en PAUSED.

Ejemplo de solicitud

Se ha aplicado formato para mejorar la legibilidad. Sustituye los valores en negrita y cursiva, como AD_ACCOUNT_ID, por tus 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 correctamente, la aplicación recibirá un objeto JSON con el identificador de la campaña. Este identificador se usará al crear un conjunto de anuncios en el siguiente paso.

{
  "id": "YOUR_CAMPAIGN_ID"
}

Consulta la referencia sobre 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 extremo act_ad_account_id/adsets, donde ad_account_id es el identificador de la cuenta publicitaria de Meta. La solicitud debe incluir lo siguiente:

  • access_token establecido en el identificador de acceso a la página.
  • bid_amount establecido en la cantidad máxima que quieres pagar.
  • billing_event establecido en IMPRESSIONS.
  • campaign_id establecido en el identificador de la campaña del paso 1.
  • daily_budget establecido en la cantidad que quieres gastarte al día.
  • name establecido en el nombre del conjunto de anuncios.
  • optimization_goal establecido en LEAD_GENERATION o QUALITY_LEAD.
  • destination_type establecido en ON_AD.
  • promoted_object establecido en el identificador de la página de Facebook de la empresa.
  • status establecido en PAUSED.

Nota: Si has configurado un origen de datos CRM y eliges QUALITY_LEAD como objetivo de optimización, puedes añadir el valor de pixel_id en el parámetro promoted_object para optimizar más la calidad. Ten en cuenta que no debes proporcionar ningún parámetro pixel_rule junto con el valor de pixel_id.

Ejemplo de solicitud

Se ha aplicado formato para mejorar la legibilidad. Sustituye los valores en negrita y cursiva, como AD_ACCOUNT_ID, por tus 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 realiza correctamente, la aplicación recibe la siguiente respuesta JSON con el identificador del conjunto de anuncios.

{
  "id": "YOUR_ADSET_ID"
}

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

Paso 3. Crear un formulario para clientes potenciales

Para crear un formulario, envía una solicitud POST al extremo /PAGE_ID/leadgen_forms con los siguientes parámetros:

  • access_token establecido en el identificador de acceso a la página.
  • name establecido en el nombre del formulario.
  • questions establecido en una matriz de objetos que defina el tipo de preguntas y el orden en el que van a aparecer en el formulario usando el parámetro key.
    • Una pregunta personalizada usando el parámetro label.
    • Una pregunta personalizada usando el parámetro options con un menú desplegable de respuestas.

Ejemplo de solicitud

Se ha aplicado formato para mejorar la legibilidad. Sustituye los valores en negrita y 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 para conversaciones de Messenger

Los formularios que quieras usar en un anuncio en una conversación de Messenger deben contener los siguientes elementos:

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

    Si el formulario tiene un elemento questions.type con un valor diferente a los indicados anteriormente, no será válido.

  • El parámetro block_display_for_non_targeted_viewer debe establecerse en false. Esto marca el formulario como Abierto para compartir.

Ejemplo de solicitud de un formulario para clientes potenciales en Messenger válido

Se ha aplicado formato para mejorar la legibilidad. Sustituye los valores en negrita y 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 estándar que se muestran en la sección [Crear un formulario para clientes potenciales]{#create-a-lead-form}, puedes añadir otros tipos de preguntas más especializadas para los siguientes casos de uso:

  • Programación de cita: una pregunta de programación de cita representa un selector de fecha y hora con una selección de horas limitada y un mensaje de confirmación situado bajo la pregunta.
  • Documento de identificación nacional u oficial: una pregunta sobre el documento de identificación nacional representa una pregunta basada en el país de la persona y valida el formato del documento de identificación introducido.
  • Localizador de negocios: una pregunta de localizador de negocios representa un selector de localizador de negocios basado en la entrada de código postal de una persona.

Programación de cita

Una pregunta de programación de cita representa un selector de fecha y hora con una selección de horas limitada y un mensaje de confirmación situado bajo la pregunta.

Para añadir una pregunta de programación de cita, añade un objeto de pregunta con el parámetro type establecido en DATE_TIME. Si quieres, también puedes añadir un mensaje de confirmación en el parámetro inline_context que se representará directamente bajo el campo de pregunta para proporcionar más contexto en caso de ser necesario.

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

Documento de identificación nacional

Una pregunta sobre el documento de identificación nacional representa una pregunta basada en el país de la persona y valida el formato del documento de identificación introducido. Esta pregunta puede representarse 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 añadir una pregunta sobre el documento de identificación nacional, añade un objeto de pregunta con el parámetro type establecido en el tipo de país de la persona.

Limitaciones

  • Solo puedes solicitar un documento de identificación nacional en cada formulario concreto y solo puedes dirigirte a personas en su país correspondiente. Por ejemplo, si solicitas el DNI de Perú, tu audiencia objetivo debe limitarse a Perú. Solo se aprueban los anuncios que cumplen estos criterios.
  • La validación comprueba que el formato sea válido; no verifica que el documento de identificación pertenezca a una persona real.
...
           "questions": "[
               ...
               {"type": "ID_AR_DNI"
               },
...

Localizador de negocios

Una pregunta de localizador de negocios representa un selector de localizador de negocios basado en la entrada de código postal de una persona.

Para poder utilizar este tipo de pregunta, necesitarás configurar una estructura de páginas de tiendas. Descubre cómo hacerlo en Configurar una estructura de páginas de tiendas: Servicio de ayuda de Meta para empresas

Para añadir una pregunta de localizador de negocios, añade un objeto de pregunta con el parámetro type establecido en STORE_LOOKUP y el parámetro context_provider_type establecido en LOCATION_MANAGER.

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

Configuración avanzada de formularios

Para obtener clientes potenciales de mayor calidad, añade una o más de las siguientes opciones de configuración del formulario:

Añadir la opción de seguimiento del rendimiento

Para ayudarte a hacer un seguimiento del origen de los clientes potenciales, añade al formulario el campo tracking_parameters establecido en una lista de pares de parámetros de clave y valor sobre los que quieres hacer el seguimiento. Estos parámetros no se muestran en el anuncio, pero permiten a Meta proporcionarte metadatos sobre los clientes potenciales generados a partir de un formulario.

Ejemplo de solicitud

Se ha aplicado formato para mejorar la legibilidad. Sustituye los valores en negrita y cursiva por tus valores.
...
           "name": "YOUR_LEADADS_FORM_NAME",
           "tracking_parameters": {"your_tracking_parameter_name":"your_tracking_parameter_value"},
           "questions": "[
...

Añadir la opción de configuración de mayor grado de intención

De forma predeterminada, los anuncios para clientes potenciales se optimizan para el volumen de clientes potenciales. Sin embargo, puedes crear formularios que generen clientes potenciales con mayor grado de intención. Estos tipos de clientes potenciales pueden ser para personas que puedan estar interesadas en un producto o servicio específicos, como reservar una prueba de conducción en un concesionario. Esta opción de configuración del formulario añade un paso al proceso de envío del formulario en el cual la persona revisa y confirma sus respuestas antes de enviar el formulario.

Para añadir este proceso de confirmación al formulario, incluye el parámetro is_optimized_for_quality establecido en true al crear el formulario.

Ejemplo de solicitud

Se ha aplicado formato para mejorar la legibilidad. Sustituye los valores en negrita y cursiva por tus valores.
...
           "name": "YOUR_LEADADS_FORM_NAME",
           "is_optimized_for_quality": "true",
           "questions": "[
...

Filtrar clientes potenciales orgánicos

Para filtrar los clientes potenciales orgánicos, añade el parámetro block_display_for_non_targeted_viewer establecido en true al crear el formulario.

Ejemplo de solicitud

Se ha aplicado formato para mejorar la legibilidad. Sustituye los valores en negrita y 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 realiza correctamente, la aplicación recibirá una respuesta JSON con el identificador del formulario que se deberá usar al crear el anuncio.

{
  "id": "leadgen_form_id",
}

Paso 4. Crear el contenido del anuncio

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

  • access_token establecido en el identificador de acceso a la página.
  • Un elemento object_story_spec que incluya un objeto link_data con los siguientes parámetros:
    • call_to_action establecido en un objeto que contenga type y value establecidos en el identificador del formulario para clientes potenciales.
    • description establecido en la descripción del contenido.
    • image_hash establecido en el hash de una imagen para el contenido del anuncio.
    • message establecido en el texto del contenido del anuncio.
  • page_id establecido en el identificador de tu página de Facebook.

Nota: Al crear el parámetro link_data, el valor asociado al campo link solo puede ser https//fb.me/.

El parámetro link_data.call_to_action debe establecerse en uno de los siguientes valores:

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

Ejemplo de solicitud

Se ha aplicado formato para mejorar la legibilidad. Sustituye los valores en negrita y cursiva, como AD_ACCOUNT_ID, por tus 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 de secuencia con el mismo elemento object_story_spec, pero con un campo lead_gen_form_id adicional definido en el parámetro child_attachments.

Solo puedes especificar el mismo valor de <FORM_ID> para todos los archivos 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 vídeo

También puedes usar un vídeo en el contenido del anuncio para clientes potenciales en lugar de una foto. En primer lugar, sube el vídeo a tu biblioteca de vídeos de anuncios y, luego, utilízalo 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 realiza correctamente, la aplicación recibe la siguiente respuesta JSON con el identificador del contenido del anuncio.

{
  "id": "YOUR_AD_CREATIVE_ID"
}
      

Para crear el anuncio, tienes que asociar el contenido del anuncio y el conjunto de anuncios. Para crear el anuncio, envía una solicitud POST al extremo /act_AD_ACCOUNT_ID/ads. La solicitud debe incluir lo siguiente:

  • access_token establecido en el identificador de acceso a la página.
  • adset_id (del paso 2).
  • creative_id (del paso 4).
  • Nombre.
  • Estado.

Ejemplo de solicitud de un anuncio con contenido

Se ha aplicado formato para mejorar la legibilidad. Sustituye los valores en negrita y cursiva, como AD_ACCOUNT_ID, por tus 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 realiza correctamente, la aplicación recibe la siguiente respuesta JSON con el identificador del anuncio.

{
  "id": "YOUR_AD_ID"
}

Paso 6. Publicar el anuncio

Verifica que el anuncio existe 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 para la campaña y el anuncio.

Puedes publicar el anuncio desde el Administrador de anuncios o mediante la API. Para publicar el anuncio mediante la API, repite el paso 4 con el parámetro status establecido en ACTIVE.

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

Administración de formularios

Obtén una lista de los formularios y de las preguntas de un formulario determinado, y archiva formularios antiguos.

Obtener una lista de formularios

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

  • access_token establecido en el identificador de acceso a la página.
  • fields (opcional) establecido en una lista separada por comas de los campos para obtener información específica, como el nombre o el identificador del formulario.

Ejemplo de solicitud

Se ha aplicado formato para mejorar la legibilidad. Sustituye los valores en negrita y 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 correctamente, la aplicación recibirá una respuesta JSON con la lista de formularios. Puedes utilizar un identificador de formulario para obtener las preguntas de ese formulario o para archivarlo.

Obtener una lista de los formularios válidos para el uso en Messenger

Solo los formularios que cumplan los requerimientos específicos serán válidos para enviarse en una conversación de Messenger.

Para obtener una lista de los formularios para clientes potenciales válidos, envía una solicitud GET al extremo /page_id/leadgen_forms con los siguientes parámetros:

  • access_token establecido en el identificador de acceso a la página.
  • fields establecido en is_eligible_for_in_thread_forms.

Ejemplo de solicitud

Se ha aplicado formato para mejorar la legibilidad. Sustituye los valores en negrita y 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 correctamente, la aplicación recibirá una respuesta JSON con la lista de los identificadores de los formularios válidos.

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

Obtener una lista de preguntas

Para obtener una lista de preguntas específicas de un formulario para clientes potenciales, envía una solicitud GET al extremo /page_id/leadgen_form_id con los parámetros siguientes:

  • access_token establecido en el identificador de acceso a la página.
  • fields establecido en questions.

Ejemplo de solicitud

Se ha aplicado formato para mejorar la legibilidad. Sustituye los valores en negrita y 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 correctamente, la aplicación recibirá una respuesta JSON con la lista de preguntas.

Archivar un formulario

Dado que no se admite la eliminación de formularios para clientes potenciales, solo es posible archivarlos. Una vez archivado un formulario:

  • No aparecerá (de manera predeterminada) en la biblioteca de formularios.
  • No puedes utilizar un formulario archivado en un anuncio. Si intentas hacerlo, se producirá un error en la API.
  • Los formularios archivados no estarán disponibles durante la creación de anuncios en CF o PE.

Para archivar un formulario para clientes potenciales concreto, envía una solicitud POST al extremo /page_id/leadgen_form_id con los siguientes parámetros:

  • access_token establecido en el identificador de acceso a la página.
  • status establecido en ARCHIVED.

Ejemplo de solicitud

Se ha aplicado formato para mejorar la legibilidad. Sustituye los valores en negrita y 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 correctamente, la aplicación recibirá una respuesta JSON con un objeto con el parámetro success establecido en true.

Para reactivar un formulario archivado, envía una solicitud con el parámetro status establecido en ACTIVE.