Objetivo de tráfico en el negocio

Para ayudar a tu negocio a responder frente al coronavirus (COVID-19), el objetivo de tráfico en el negocio presenta algunos cambios temporales. Más información.

El objetivo de tráfico en el negocio te permite crear campañas publicitarias de Facebook a fin de aumentar el tráfico peatonal y fomentar las ventas en tus establecimientos. Puedes elegir el objetivo de tráfico en el negocio para tu campaña si tienes un negocio con varias tiendas y has añadido sus ubicaciones en Facebook.

Puedes obtener más información en Objetivo de tráfico en el negocio, Servicio de ayuda para publicidad.

Ubicaciones

Disponible para dispositivos móviles y de escritorio con Facebook (sección de noticias, historias y Marketplace) y para Instagram (sección de noticias y Stories).

Optimización de la entrega

  • Optimización del alcance: disponible para todos los anunciantes con acceso a esta API. Se optimiza para el alcance único diario y muestra "Impressions" como métrica predeterminada en los informes del administrador de anuncios.

Crear anuncios de catálogo de Advantage+

Para crear anuncios de catálogo de Advantage+ para este objetivo, la página debe utilizar ubicaciones de Facebook.

Requisitos

  • Las campañas deben tener el elemento objective establecido en STORE_VISITS.
  • Las campañas deben tener el parámetro promoted_object establecido en el valor de <PARENT_PAGE_ID> correspondiente.
  • Los valores promoted_object y targeting del conjunto de anuncios deben incluir un identificador place_page_set_id de <PAGE_SET_ID>.
  • optimization_goal se debe definir en REACH.
  • El valor de billing_event del conjunto de anuncios debe ser IMPRESSIONS.

Paso 1. Crear un elemento PageSet

Facebook utiliza PageSet para dirigir los anuncios y lo usa como objeto promocionado del anuncio.

Para crear un elemento PageSet:

  1. Recopila ubicaciones del negocio, que son páginas de Facebook para cada ubicación del negocio y ubicaciones del negocio principal. Tu negocio principal se conoce como página principal.
  2. Crea una estructura JSON de ubicaciones para representar todas tus ubicaciones.
  3. Crea el elemento PageSet con la estructura JSON de ubicaciones.

Recopilar todas las ubicaciones del negocio

<PARENT_PAGE_ID> es el identificador de la página principal de todas las ubicaciones del negocio. Recupera todas las páginas y ubicaciones del negocio que pertenecen a una página principal y devuelve la longitud y la latitud de cada ubicación:

curl -X GET \
  -d 'fields="location{latitude,longitude},is_permanently_closed"' \
  -d 'limit=30000' \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v20.0/{page-id}/locations

Ejemplo de salida

{
    "data": [
        {
            "location": {
                "latitude": 29.173384,
                "longitude": 48.098807
            },
            "is_permanently_closed": false,
            "id": "1788030244802584"
        },
        {
            "location": {
                "latitude": 29.303635,
                "longitude": 47.937725
            },
            "is_permanently_closed": false,
            "id": "261533444245300"
        },
        {
            "location": {
                "latitude": 29.302303,
                "longitude": 47.933178
            },
            "is_permanently_closed": false,
            "id": "179435399132774"
        },
        {
            "location": {
                "latitude": 29.302591,
                "longitude": 47.931801
            },
            "is_permanently_closed": false,
            "id": "1790317704582144"
        }
    ],
    "paging": {
        "cursors": {
            "before": "MTc4ODAzMDI0NDgwMjU4NAZDZD",
            "after": "MTA4MTU4NjU5NjA5MDA4"
        }
    }
}

Crear una estructura JSON de ubicaciones

Realiza la iteración en cada entrada de los resultados devueltos y verifica que el negocio esté activo en todas las ubicaciones. Para hacerlo, consulta el campo is_permanently_closed.

Utiliza dos solicitudes GET para obtener el radio estimado y los parámetros radius y distance_unit. De manera alternativa, puedes hacer una llamada a la API por lotes para generar los valores siguientes.

Solicitudes individuales

Para hacer esta solicitud, utiliza los valores de latitud y longitud de cada página de la tienda de los resultados del código JSON que se devolvieron de la página principal. Esto devuelve el radio estimado para cada ubicación.

curl -X GET \
  -d 'type="adradiussuggestion"' \
  -d 'latitude=51.5152253' \
  -d 'longitude=-0.1423029' \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v20.0/search/

Solicitudes por lotes

También puedes agrupar por lotes varias solicitudes en una.

curl \
  -F "access_token=<ACCESS_TOKEN>" \
  -F "include_headers=false" \
  -F "batch=[
    {
      \"method\": \"GET\",
      \"relative_url\": \"/<API_VERSION>/search?type=adradiussuggestion&amp;latitude=29.173384&amp;longitude=48.098807\"
    },
    {
      \"method\": \"GET\",
      \"relative_url\": \"/<API_VERSION>/search?type=adradiussuggestion&amp;latitude=29.303635&amp;longitude=47.937725\"
    }
  ]" \
  "https://graph.facebook.com"
Estructura JSON de ubicaciones final

Utiliza los parámetros radius y distance_unit obtenidos en las llamadas anteriores junto con el valor de <CHILD_LOCATION_ID> de cada ubicación como page_id a fin de crear la estructura JSON de ubicaciones final.

[
    {
      "page_id": 1788030244802584,
      "radius": 1,
      "distance_unit": "mile"
    },
    {
      "page_id": 261533444245300,
      "radius": 1,
      "distance_unit": "mile"
    }
]

Crea el elemento Pageset con la estructura JSON de ubicaciones.

Actualmente, el extremo PageSet solo está disponible para los socios de la lista de autorizados. Ponte en contacto con tu representante de Facebook para obtener acceso a ella.

Ahora puedes crear un elemento PageSet con la información de la estructura JSON de ubicaciones.

El número máximo de ubicaciones que se puede utilizar en un elemento PageSet es de 10 000.

Solicitudes asíncronas

Puedes realizar una solicitud asíncrona para crear un elemento PageSet. Esto te permite crear un elemento PageSets de gran tamaño con más de 1000 ubicaciones sin experimentar tiempos de espera. Te recomendamos que utilices solicitudes asíncronas siempre que crees un elemento Pageset con más de 50 ubicaciones.

Solicitud

curl -X POST \
  -d 'name=test_2' \
  -d 'parent_page=ID_1' \
  -d 'pages=[{\'page_id':ID_2}]' \
  -d 'metadata={"audience":{"size":5000}}' \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/ad_place_page_sets_async/

Nota: Puedes utilizar /ad_place_page_sets para solicitudes síncronas. Sin embargo, si hay más de 50 ubicaciones, debes utilizar solicitudes asíncronas.

El formato para los parámetros es el mismo que se utiliza para las solicitudes síncronas.

En PageSet, puedes utilizar el campo metadata para especificar un radio fijo por ubicación para la entrega de anuncios o para llegar a un tamaño de audiencia concreto. Si seleccionas la última opción, Facebook calcula automáticamente un radio por ubicación para alcanzar ese número de cuentas del Centro de cuentas.

En este ejemplo, el campo metadata se establece en el tamaño de audience deseado (se describe a continuación). Consulta metadata para los radios. Esto devuelve un identificador de ad_place_page_set_async_request.

{
  "id": "405738580111111"
}      

Más tarde, puedes consultar ese identificador con el permiso ads_read para obtener el identificador de PageSet.

curl -i -X GET \
 "https://graph.facebook.com/<API_VERSION>/405738580111111?access_token=ACCESS_TOKEN"

Respuesta

{
  "id": "405738580111111", 
  "place_page_set": {
    "id": "555555791481678",
    "name": "test_2"
  },
  "progress": 1
}

En esta, progress es un valor de 0.0 a 1 y 1 significa que hemos completado la solicitud y creado un elemento PageSet.

Uso de metadata para radios

El campo metadata indica a Facebook que quieres utilizar un radio fijo para tus ubicaciones o que quieres que Facebook calcule automáticamente los radios por ubicación en función del tamaño de una audiencia concreta.

Ejemplo

Para especificar un radio fijo mediante una solicitud síncrona:

curl -X POST \
  -d 'name=test_2' \
  -d 'parent_page=238219010666666' \
  -d 'pages=[{\'page_id':405936056444444}]' \
  -d 'metadata={"fixed_radius":{"value":5,"distance_unit":"mile"}}' \
  -d 'access_token=ACCESS_TOKEN' \
  "https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/ad_place_page_sets/"

Esto significa que quieres que Facebook entregue tu anuncio a personas en un radio de 5 millas de todas las ubicaciones del elemento PageSet.

Respuesta

 {
  "id": "1618547271777777"
}

Nota: El campo metadata debe establecerse en fixed_radius o audience.

Si utilizas fixed_radius, debes proporcionar distance_unit y value:

{
  "fixed_radius": {
     "distance_unit": "<distance_unit>"
     "value": <distance>
  }
}

Si utilizas audience, debes proporcionar size, mientras que max_radius es opcional:

 {
  "audience": {
     "size": <audience size>
     "max_radius": { // optional
       "distance_unit": "<distance_unit>"
       "value": <distance>
     }
  }
}

Prácticas recomendadas para metadata

  • También debes proporcionar locations, aunque sin especificar ningún valor de radio. Como alternativa, si utilizas el parámetro locations y proporcionas radios, tampoco debes proporcionarlo para metadata.
  • distance_unit debe ser mile o kilometer, y value debe tener un valor entre 0.7 y 50 para mile, o entre 1 y 80 para kilometer.
  • El parámetro size en audience es la cantidad de cuentas del Centro de cuentas en el radio siempre que este tenga una longitud de entre 1 y 80 kilómetros. Si proporcionas un valor de max_radius, en el radio real, calculamos la variación entre 1 y max_radius.
  • Si especificas audience para metadata, debes hacer la solicitud con el extremo asíncrono (ad_account_ID/ad_place_page_set_async).

Solicitudes síncronas

Puedes utilizar solicitudes síncronas para crear un elemento PageSet.

curl -X POST \
  -d "name=My Grand Pageset" \
  -d "parent_page=<PARENT_PAGE_ID>" \
  -d "pages=<LOCATIONS_JSON_STRUCTURE>" \
  -d "access_token=<ACCESS_TOKEN>" \
 https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/ad_place_page_sets

Esto devuelve el identificador de PageSet que utilizarás más tarde.

{
  "id": <PAGE_SET_ID>
}

Si el número de páginas es demasiado grande para una llamada cURL, puedes crear un archivo de texto con la estructura JSON de ubicaciones y pasarlo al atributo pages con -F "pages=&lt;locations_json_structure.txt".

Paso 2: Crear una campaña

Crea una campaña publicitaria con el objetivo definido en STORE_VISITS y el identificador de página principal como objeto promocionado.

Consulta la referencia de la campaña publicitaria.

Paso 3: Crear un conjunto de anuncios

Crea un conjunto de anuncios que contenga el anuncio. Consulta la referencia sobre el conjunto de anuncios, las especificaciones de segmentación y las ubicaciones de la página.

En el momento de la entrega, Facebook invalida los anuncios dirigidos a ubicaciones situadas a más de 50 millas de distancia de la ubicación de la página más cercana, también conocida como página local.

curl \
  -F 'name=Store Visits Ad Set' \
  -F 'promoted_object={"place_page_set_id":"<PAGE_SET_ID>"}' \
  -F 'optimization_goal=STORE_VISITS' \
  -F 'billing_event=IMPRESSIONS' \
  -F 'is_autobid=true' \
  -F 'daily_budget=1000' \
  -F 'campaign_id=<CAMPAIGN_ID>' \
  -F "targeting={
    'place_page_set_ids': ['<PAGE_SET_ID>'],
    'device_platforms': ['mobile','desktop'],
    'facebook_positions': ['feed']
   }" \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/adsets

Segmentación geográfica

En las campañas de tráfico en el negocio, también puedes segmentar por geo_locations.

Nota: Para este objetivo, solo puedes utilizar geo_locationsoplace_page_set_ids en la segmentación del conjunto de anuncios.

Admitimos todos los tipos de segmentación geo_location en la segmentación y ubicación avanzadas, incluida la segmentación por países, ciudades y códigos postales. También puedes seleccionar location_types, como recent, home o travel_in.

Deberías proporcionar igualmente place_page_set_id en promoted_object. Este elemento PageSetdebe ser un conjunto de páginas sin ningún conjunto explícito de ubicaciones. Consulta cómo crear el conjunto de páginas con la estructura JSON de ubicaciones para crear este PageSet. Sin embargo, en este caso, no proporciones las páginas de parámetros.

En primer lugar, crea el elemento PageSet que proporcionarás más tarde en un objeto promocionado:

curl -X POST \
  -d "name=My geo targeting page set" \
  -d "parent_page=<PARENT_PAGE_ID>" \
  -d "access_token=<ACCESS_TOKEN>" \
  https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/ad_place_page_sets/

Nota: No es necesario proporcionar el parámetro pages como lo harías normalmente.

Luego, crea un conjunto de anuncios con el objetivo de tráfico en el negocio que segmente según geo_locations:

curl \
  -F 'name=Store Traffic Ad Set' \
  -F 'promoted_object={"place_page_set_id":"<PAGE_SET_ID>"}' \
  -F 'optimization_goal=STORE_VISITS' \
  -F 'billing_event=IMPRESSIONS' \
  -F 'is_autobid=true' \
  -F 'daily_budget=1000' \
  -F 'campaign_id=<CAMPAIGN_ID>' \
  -F "targeting={
    'geo_locations': {"countries":["US"],"location_types": ["home"]}, 
    'device_platforms': ['mobile','desktop'],
    'facebook_positions': ['feed']
  }" \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/adsets

Entregamos anuncios automáticamente para el establecimiento más cercano a la persona que visualiza el anuncio.

Paso 4: Proporcionar contenido del anuncio

Puedes insertar contenido dinámicamente en función de la ubicación de alguien. Personaliza el contenido mediante un conjunto de marcadores de posición de plantillas y Facebook sustituirá los marcadores de los anuncios en tiempo de ejecución con datos de la ubicación de página más cercana.

Marcadores de posición disponibles:

  • {{page.hours.today}}
  • {{page.location.city}}
  • {{page.location.region}}
  • {{page.location.postcode}}
  • {{page.location.street_address}}
  • {{page.name}}
  • {{page.phone_number}}

El campo dynamic_ad_voice te permite controlar la voz del anuncio:

  • Si dynamic_ad_voice se define como DYNAMIC, el nombre de la página y la foto del perfil de la publicación del anuncio procederán de la ubicación de la página más cercana.
  • Si dynamic_ad_voice se define como STORY_OWNER, el nombre de la página y la foto del perfil de la publicación del anuncio procederán de la ubicación de la página principal.

Llamada a la acción

También puedes añadir dinámicamente botones de llamada a la acción (CTA) basados en la ubicación de alguien:

  • Si utilizas GET_DIRECTIONS o CALL_NOW, el campo value de llamada a la acción no es necesario. Los usuarios se dirigirán automáticamente a la ubicación más cercana o se les solicitará que llamen al número de teléfono de dicha ubicación.
  • MESSAGE_PAGE solo se permite si dynamic_ad_voice se define como STORY_OWNER. Los mensajes se entregarán en la página principal.
  • Campo opcional. Si no se especifica para los anuncios individuales, mostramos el botón Like Page.

Para obtener información detallada, consulta la referencia sobre el contenido del anuncio

Tipo dynamic_ad_voice Tipo call_to_action

DYNAMIC

CALL_NOW


GET_DIRECTIONS

STORY_OWNER

CALL_NOW


GET_DIRECTIONS


LEARN_MORE


MESSAGE_PAGE


ORDER_NOW


SHOP_NOW

Ejemplos

Proporciona contenido del anuncio con una ciudad y un nombre de la página dinámica:

curl \
  -F 'dynamic_ad_voice=DYNAMIC' \
  -F 'object_story_spec={ 
    "page_id": "<PARENT_PAGE_ID>", 
    "template_data": { 
      "description": "Ad Description", 
      "link": "<URL>", 
      "message": "Ad Message for {{page.location.city}}", 
      "name": "{{page.name}}", 
      "picture": "<IMAGE_URL>" 
    } 
  }' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/adcreatives

Contenido del anuncio que incluye una imagen con mapa

Para usar una imagen con mapa, añade una estructura place_data como datos adjuntos en el campo child_attachments del contenido del anuncio.

En este ejemplo, el mapa con un enlace de localizador de tienda de Facebook es el segundo elemento de la matriz child_attachments. Debes proporcionar un elemento como mínimo, además de la imagen con mapa.

curl \
  -F 'dynamic_ad_voice=DYNAMIC' \
  -F 'object_story_spec={ 
    "page_id": "<PARENT_PAGE_ID>", 
    "template_data": { 
      "description": "Ad Description", 
      "link": "<URL>", 
      "message": "Ad Message for {{page.location.city}}", 
      "name": "{{page.name}}", 
      "child_attachments":[
        {
          "description": "Come visit us!",
          "link": "http://yourweburl.com",
          "name": "{{page.location.street_address}} - {{page.location.city}}",
          "call_to_action": {
            "type":"GET_DIRECTIONS"
          },
        },
        {
          "link": "https://fb.com/store_locator",
          "name": "Check out our stores.",
          "place_data": {
            "type":"DYNAMIC"
          },
        }
      ]
    } 
  }' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/adcreatives

Localizador de tienda, destino del enlace

Al crear un anuncio, si estableces link en "https://fb.com/store_locator", el anuncio se muestra con el localizador de la tienda como destino del enlace.

Paso 5: Crear un anuncio

Crea un anuncio como se indica a continuación:

curl \
  -F 'name=My Ad' \
  -F 'adset_id=<AD_SET_ID>' \
  -F 'creative={"creative_id":"<CREATIVE_ID>"}' \
  -F 'status=PAUSED' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/ads

Para crear anuncios para el tráfico en el negocio, la página y la cuenta publicitaria deben aprobarse para la medición de las visitas en el negocio. En caso contrario, se muestra un error similar a Reach estimate isn't available because 'store_visits' isn't a valid action type.

Medición de las visitas en el negocio

Las visitas en el negocio son una métrica estimada basada en datos de los usuarios con los servicios de ubicación activados. En última instancia, ofrece la medición y optimización de las visitas en el negocio para el objetivo de tráfico en el negocio. Las mediciones de visitas en el negocio solo están disponibles para campañas con el objetivo de tráfico en el negocio.

Las visitas en el negocio se basan en los clics y las visualizaciones de los anuncios con el objetivo de tráfico en el negocio. Se trata del número estimado de visitas a las tiendas de un anunciante por parte de cuentas del Centro de cuentas que han visto los anuncios de cada tienda o han hecho clic en ellos. Puedes configurar el intervalo de atribución y personalizarlo según los clics o las visitas del último día, los últimos 7 días o los últimos 28 días. La atribución predeterminada de la cuenta publicitaria se aplica siempre que no se personalice la configuración. Consulta API de insights, Intervalo de atribución.

Las funciones están relacionadas con los informes para los elementos siguientes:

  • Visitas en el negocio: número de visitas estimadas a la tienda como resultado de los anuncios.
  • Coste por visita en el negocio: el coste medio de cada visita estimada a las tiendas como resultado de los anuncios.

Con el administrador de anuncios

Consulta las columnas bajo ENGAGEMENT: ACTIONS. Estas columnas se muestran en la interfaz de informes para las visitas en el negocio y el coste por visita en el negocio.

Nota: Los datos de visitas en el negocio solo están disponibles para los establecimientos que el equipo de Facebook confirma que se pueden medir para una campaña.

Con la API de insights

Puedes obtener datos sobre las visitas en el negocio de la API de insights. Proporcionamos estos campos adicionales en las llamadas de insights generales: cost_per_store_visit_action y store_visit_actions. Consulta la referencia sobre insights.

Parámetros

CampoDescripción
point_estimate
int32

The point prediction of the value