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.
Disponible pour Facebook sur ordinateur et mobile (Flux, Stories et Marketplace) et sur Instagram (Flux et Stories).
Pour créer des publicités de catalogue Advantage+ à cette fin, votre page doit utiliser la fonctionnalité Lieux Facebook.
objective
des campagnes doit être défini sur STORE_VISITS
.promoted_object
des campagnes doit être défini sur le <PARENT_PAGE_ID>
correspondant.promoted_object
et targeting
de l’ensemble de publicités doivent contenir le place_page_set_id
d’un <PAGE_SET_ID>
.optimization_goal
de l’ensemble de publicités doit être défini sur REACH
.billing_event
de l’ensemble de publicités doit être IMPRESSIONS
.PageSet
Facebook utilise PageSet
pour cibler les publicités et en tant qu’objet promu dans votre publicité.
Pour créer un PageSet
:
PageSet
avec la structure JSON d’emplacements.<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" } } }
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.
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/
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&latitude=29.173384&longitude=48.098807\" }, { \"method\": \"GET\", \"relative_url\": \"/<API_VERSION>/search?type=adradiussuggestion&latitude=29.303635&longitude=47.937725\" } ]" \ "https://graph.facebook.com"
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" } ]
Pageset
avec la structure JSON d’emplacementsLe 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.
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 rayonsLe 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
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
.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
.audience
pour metadata
, vous devez exécuter votre requête avec le point de terminaison asynchrone (ad_account_ID/ad_place_page_set_async
).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=<locations_json_structure.txt"
.
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.
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
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_locations
ouplace_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 PageSet
doit 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é.
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é :
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.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.Vous pouvez également ajouter dynamiquement des boutons d’appel à l’action (call-to-action, CTA) en fonction de l'emplacement de la personne :
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.Like Page
.Pour en savoir plus, voir Référence, Contenu publicitaire
Type de dynamic_ad_voice |
Type de call_to_action |
---|---|
|
|
|
|
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
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
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.
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.
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 :
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.
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.
Champ | Description |
---|---|
point_estimate int32 | The point prediction of the value |