Objectif de trafic en point de vente

Pour aider votre entreprise à gérer la pandémie de coronavirus (COVID-19), nous avons apporté quelques modifications temporaires à l’objectif de trafic en point de vente. En savoir plus.

L’objectif de trafic en point de vente vous permet de créer des campagnes publicitaires Facebook afin d’augmenter la fréquentation de vos boutiques physiques et d’en dynamiser les ventes. Vous pouvez opter pour l’objectif de trafic en point de vente pour votre campagne si votre entreprise possède plusieurs magasins et que vous avez ajouté leurs emplacements à Facebook.

En savoir plus sur l’objectif de trafic en point de vente, Pages d’aide pour les publicités.

Placements

Disponible pour Facebook sur ordinateur et mobile (Flux, Stories et Marketplace) et sur Instagram (Flux et Stories).

Optimisation de la diffusion

  • Optimisation de la couverture : disponible pour tous les annonceurs qui ont accès à cette API. Cette option optimise la couverture unique quotidienne et affiche les impressions comme indicateur par défaut dans les rapports du Gestionnaire de publicités.

Créer des publicités de catalogue Advantage+

Pour créer des publicités de catalogue Advantage+ à cette fin, votre page doit utiliser la fonctionnalité Lieux Facebook.

Conditions requises

  • Le paramètre objective des campagnes doit être défini sur STORE_VISITS.
  • Le paramètre promoted_object des campagnes doit être défini sur le <PARENT_PAGE_ID> correspondant.
  • Les paramètres promoted_object et targeting de l’ensemble de publicités doivent contenir le place_page_set_id d’un <PAGE_SET_ID>.
  • Le paramètre optimization_goal de l’ensemble de publicités doit être défini sur REACH.
  • Le paramètre billing_event de l’ensemble de publicités doit être IMPRESSIONS.

Étape 1 : créer un PageSet

Facebook utilise PageSet pour cibler les publicités et en tant qu’objet promu dans votre publicité.

Pour créer un PageSet :

  1. Collectez les emplacements de magasin, qui sont les pages Facebook des différents magasins et de votre lieu d’activité principale. Votre lieu d’activité principale est associé à une page principale.
  2. Créez une structure JSON d’emplacements pour représenter tous vos emplacements.
  3. Créez le PageSet avec la structure JSON d’emplacements.

Recueillir tous les emplacements de magasin

<PARENT_PAGE_ID> est l’ID de la page principale de tous vos emplacements de magasins. Il récupère toutes les pages et tous les emplacements de magasins pour une page principale et renvoie la longitude et la latitude de chaque emplacement :

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

Exemple de résultat

{
    "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"
        }
    }
}

Créer une structure JSON d’emplacements

Reproduisez cette opération pour chaque entrée dans les résultats renvoyés et assurez-vous que chaque emplacement est en activité en vérifiant le champ is_permanently_closed.

Établissez une estimation du rayon à l’aide de requêtes GET pour obtenir les paramètres radius et distance_unit. Vous pouvez également effectuer un appel d’API par lot pour générer les valeurs ci-dessous.

Requêtes individuelles

Vous devez effectuer cette requête en utilisant la latitude et la longitude de chaque page de magasin indiquées dans les résultats JSON renvoyés par la page principale. Cette opération renvoie le rayon estimé pour chaque emplacement.

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/

Requêtes par lot

Vous pouvez également regrouper plusieurs requêtes en une seule.

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"
Structure JSON d’emplacements finale

Utilisez les paramètres radius et distance_unit obtenus à l’aide des appels précédents, avec le <CHILD_LOCATION_ID> de chaque emplacement comme page_id pour créer la structure JSON d’emplacements finale.

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

Créer le Pageset avec la structure JSON d’emplacements

Le point de terminaison PageSet n’est actuellement disponible que pour les partenaires de la liste des partenaires autorisés. Contactez votre représentant Facebook pour obtenir l’accès.

Vous pouvez maintenant créer un PageSet avec les informations contenues dans votre structure JSON d’emplacements.

Un même PageSet peut contenir jusqu’à 10 000 emplacements.

Requêtes asynchrones

Vous pouvez exécuter une demande asynchrone pour créer votre PageSet. Cela vous permet de créer de grands PageSets avec plus de 1 000 emplacements sans délai d’expiration. Nous vous recommandons d'utiliser des requêtes asynchrones chaque fois que vous créez un Pageset avec plus de 50 emplacements.

Requête

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/

Remarque : vous pouvez utiliser /ad_place_page_sets pour les requêtes synchrones ; cependant, vous devriez utiliser des requêtes asynchrones lorsqu’il y a plus de 50 emplacements.

Le format des paramètres est le même que celui que vous utilisez pour les requêtes synchrones.

Dans votre PageSet, le champ metadata permet d’utiliser un rayon fixe par emplacement pour la diffusion de vos annonces, ou pour atteindre une certaine taille d’audience. Si vous sélectionnez ce dernier, Facebook calcule automatiquement un rayon par lieu pour atteindre ce nombre de comptes de l’Espace comptes.

Dans cet exemple, le champ metadata est défini sur une taille d’audience souhaitée (décrite ci-dessous). Voir metadata pour les rayons. Cela renvoie un ID ad_place_page_set_async_request.

{
  "id": "405738580111111"
}      

Plus tard, vous pourrez interroger cet ID avec l’autorisation ads_read pour obtenir l’ID PageSet.

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

Réponse

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

Ici, progress peut être compris entre 0.0 et 1, et 1 signifie que nous avons fini de traiter votre requête et créé un PageSet.

metadata pour les rayons

Le champ metadata indique à Facebook que vous souhaitez utiliser un rayon fixe pour vos emplacements ou que vous voulez que Facebook calcule automatiquement les rayons par emplacement en fonction d’une taille d’audience donnée.

Exemple

Pour spécifier un rayon fixe dans une requête synchrone :

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/"

Cela signifie que vous voulez que Facebook diffuse votre publicité aux personnes situées dans un rayon de 8 km de tous les emplacements de votre PageSet.

Réponse

 {
  "id": "1618547271777777"
}

Remarque : le champ metadata doit être défini sur fixed_radius ou audience.

Si vous utilisez fixed_radius, vous devez indiquer distance_unit et value :

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

Si vous utilisez audience, vous devez indiquer size, mais max_radius est facultatif :

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

Recommandations pour metadata

  • Vous devez également indiquer locations ; cependant, n’y spécifiez pas de rayon. Autrement, si vous utilisez le paramètre locations et indiquez des rayons, vous ne devez pas indiquer de rayon pour les metadata.
  • distance_unit doit être mile ou kilometer, et value doit être compris entre 0.7 et 50 pour mile, ou 1 et 80 pour kilometer.
  • Le paramètre size dans audience est le nombre de comptes de l’Espace comptes se trouvant dans le rayon, pour autant que le rayon soit compris entre 1 et 80 kilomètres de longueur. Si vous indiquez max_radius, le rayon réel que nous calculons varie entre 1 et max_radius.
  • Si vous spécifiez audience pour metadata, vous devez exécuter votre requête avec le point de terminaison asynchrone (ad_account_ID/ad_place_page_set_async).

Requêtes asynchrones

Vous pouvez toujours utiliser des requêtes synchrones pour créer un 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

Cela renvoie un ID de PageSet que vous utiliserez ultérieurement.

{
  "id": <PAGE_SET_ID>
}

Si le nombre de pages est trop important pour un appel cURL, vous pouvez créer un fichier texte avec la structure JSON d’emplacements et le passer à l’attribut pages avec l’indicateur -F "pages=&lt;locations_json_structure.txt".

Étape 2 : créer une campagne

Créez une campagne avec un objectif défini sur STORE_VISITS et votre ID de page principale comme objet promu.

Voir Campagne publicitaire, Référence.

Étape 3 : créer un ensemble de publicités

Créez un ensemble de publicités qui contiendra votre publicité. Voir Référence, Ensemble de publicités, Référence, Caractéristiques de ciblage et Référence, Emplacements des pages.

Au moment de la livraison, Facebook invalide toute publicité ciblant des emplacements situés à plus de 80 km de l’emplacement de la page la plus proche, appelée page locale.

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

Ciblage géographique

Vous pouvez également cibler les campagnes de trafic en point de vente par geo_locations.

Remarque : pour cet objectif, vous ne pouvez utiliser que geo_locationsouplace_page_set_ids dans le ciblage de l’ensemble de publicités.

Nous prenons en charge tous les types de ciblage geo_location dans Ciblage avancé et placement, y compris le ciblage par pays, villes et codes postaux. Vous pouvez également sélectionner des location_types, tels que recent, home ou travel_in.

Vous devez toujours indiquer le place_page_set_id dans le promoted_object. Ce PageSetdoit correspondre à un ensemble de pages sans ensemble d’emplacements explicite. Voir Création du PageSet avec la structure JSON d’emplacements pour créer ce PageSet. Toutefois, dans ce cas, ne passez pas le paramètre pages.

Créez d’abord un PageSet que vous indiquerez ultérieurement dans un objet promu :

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/

Remarque : il n’est pas nécessaire d’indiquer le paramètre pages comme vous le faites normalement.

Vous pouvez créer un ensemble de publicités avec l’objectif de trafic en point de vente, qui cible des 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

Nous diffusons automatiquement des publicités pour le magasin le plus proche de la personne qui consulte votre publicité.

Étape 4 : fournir un contenu publicitaire

Vous pouvez insérer dynamiquement des contenus publicitaires en fonction de l'emplacement d'une personne. Personnalisez votre contenu publicitaire à l'aide d'un ensemble de modèles d'espaces réservés, et Facebook remplace les espaces réservés dans vos publicités au moment de leur exécution par des données provenant de l'emplacement de la page la plus proche.

Espaces réservés disponibles :

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

Le champ dynamic_ad_voice vous permet de contrôler la voix de votre publicité :

  • Si dynamic_ad_voice est défini sur DYNAMIC : le nom de la page et la photo de profil dans votre message publicitaire proviennent de l'emplacement de la page la plus proche.
  • Si dynamic_ad_voice est défini sur STORY_OWNER : le nom de la page et la photo de profil dans votre message publicitaire proviennent de l'emplacement de la page principale.

Call-To-Action

Vous pouvez également ajouter dynamiquement des boutons d’appel à l’action (call-to-action, CTA) en fonction de l'emplacement de la personne :

  • Lorsque vous utilisez GET_DIRECTIONS ou CALL_NOW, le champ value du CTA n'est pas nécessaire. Les utilisateurs seront automatiquement dirigés vers l’emplacement le plus proche ou invités à appeler le numéro de téléphone de l’emplacement le plus proche.
  • MESSAGE_PAGE n'est autorisé que si dynamic_ad_voice est défini sur STORY_OWNER. Les messages seront transmis à la page principale.
  • Champ facultatif. Si ce champ n'est pas spécifié pour les publicités individuelles, nous affichons un bouton Like Page.

Pour en savoir plus, voir Référence, Contenu publicitaire

Type de dynamic_ad_voice Type de call_to_action

DYNAMIC

CALL_NOW


GET_DIRECTIONS

STORY_OWNER

CALL_NOW


GET_DIRECTIONS


LEARN_MORE


MESSAGE_PAGE


ORDER_NOW


SHOP_NOW

Exemples

Fournissez un contenu publicitaire en utilisant le nom de la page dynamique et la ville :

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

Contenu publicitaire avec module de carte

Pour utiliser une carte, ajoutez une structure place_data en pièce jointe dans le champ child_attachments de votre contenu publicitaire.

Dans cet exemple, la carte, avec un lien Facebook vers les emplacements de magasin, est le deuxième élément du tableau child_attachments. Vous devez fournir au moins un élément en plus de la carte.

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

Emplacements de magasin, Destination du lien

Lorsque vous créez une publicité, si vous définissez link sur "https://fb.com/store_locator", la publicité apparaît avec les emplacements de magasin comme destination du lien.

Étape 5 : créer une publicité

Créez une publicité comme suit :

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

Afin de créer des publicités pour le trafic en point de vente, votre page et votre compte publicitaire doivent être approuvés pour la mesure des visites en point de vente. Sinon, une erreur similaire à Reach estimate isn't available because 'store_visits' isn't a valid action type s'affiche.

Mesure des visites en point de vente

Les visites en point de vente sont une mesure estimée basée sur les données des utilisateurs et utilisatrices dont les services de localisation sont activés. Il s’agit au final d’une mesure et d’une optimisation des visites en point de vente pour l’objectif de trafic en point de vente. La mesure des visites en point de vente n'est disponible que pour les campagnes ayant pour objectif le trafic en point de vente.

Les visites en point de vente sont basées sur les clics et les vues des publicités en utilisant l’objectif de trafic en point de vente. Il s’agit d'une estimation du nombre de visites dans les points de vente d’un annonceur par des comptes de l’Espace Comptes qui ont vu ou cliqué sur les publicités de chaque point de vente. Vous pouvez configurer la fenêtre d’attribution ; vous pouvez choisir de la personnaliser en fonction des clics ou des vues sur 1, 7 ou 28 jours. L'attribution par défaut du compte publicitaire s'applique, sauf si vous personnalisez la configuration. Voir API Insights, Fenêtre d’attribution.

Ces fonctionnalités concernent la déclaration des éléments suivants :

  • Visites en point de vente : nombre de visites estimées dans votre point de vente suite à la diffusion de vos publicités.
  • Coût par visite en point de vente : coût moyen de chaque visite estimée dans vos points de vente suite à la diffusion de vos publicités.

Avec le Gestionnaire de publicités

Voir les colonnes sous ENGAGEMENT: ACTIONS. Ces colonnes apparaissent dans l'interface de rapport pour Visites en point de vente et Coût par visite en point de vente.

Remarque : les données relatives aux visites en point de vente ne sont disponibles que pour les points de vente que l'équipe Facebook confirme comme étant mesurables pour une campagne.

Avec l’API Insights

Vous pouvez obtenir des données sur les visites en point de vente en provenance de l'API Insights. Nous fournissons ces champs supplémentaires dans les appels Insights généraux : cost_per_store_visit_action et store_visit_actions. Voir Insights, Référence.

Paramètres

ChampDescription
point_estimate
int32

The point prediction of the value