Ce guide suppose que vous avez préparé un catalogue contenant vos offres de voyage, que vous avez configuré les évènements de voyage requis sur votre site web ou dans votre application mobile et que vous avez associé votre catalogue à vos sources d’évènements.
À partir du 20 septembre 2018, les versions ultérieures à la version 3.0 de l’API Marketing ne prendront plus en charge le subtype
pour les audiences personnalisées des sites web et des applications, les audiences personnalisées des interactions et les audiences de la conversion de données hors ligne. La seule exception sera que le subtype
continuera à être pris en charge pour les audiences personnalisées des interactions pour les vidéos.
Créez une audience intéressée par les voyages en deux étapes :
En plus d’associer vos sources d’évènements à votre catalogue, vous devez créer un groupe de sources d’évènements. Les groupes de sources d’évènements permettent d’alimenter les audiences.
use FacebookAds\Object\EventSourceGroup;
use FacebookAds\Object\Fields\EventSourceGroupFields;
$event_source_group = new EventSourceGroup(null, <BUSINESS_ID>);
$event_source_group->setData(array(
EventSourceGroupFields::NAME => 'My Travel Company Events',
EventSourceGroupFields::EVENT_SOURCES => array(
<PIXEL_ID>,
<APP_ID>,
),
));
$event_source_group->create();
from facebookads.adobjects.eventsourcegroup import EventSourceGroup
event_source_group = EventSourceGroup(parent_id=<BUSINESS_ID>)
event_source_group[EventSourceGroup.Field.name] = 'My Travel Company Events'
event_source_group[EventSourceGroup.Field.event_sources] = [
<PIXEL_ID>,
<APP_ID>,
]
event_source_group.remote_create()
curl \
-F 'name=My Travel Company Events' \
-F 'event_sources=["<PIXEL_ID>","<APP_ID>"]' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/<BUSINESS_ID>/event_source_groups
Vous devez ensuite partager le groupe de sources d’évènements entre tous les comptes publicitaires qui souhaitent créer des audiences sur cette base. Pour cela, vous devez à nouveau effectuer un appel HTTP POST
:
use FacebookAds\Object\EventSourceGroup;
$event_source_group = new EventSourceGroup(<EVENT_SOURCE_GROUP_ID>);
// ad account id without 'act_'
$event_source_group->createSharedAccount(array(), array(
'accounts' => array(
'<ACCOUNT_ID_WITHOUT_ACT>',
),
));
from facebookads.adobjects.eventsourcegroup import EventSourceGroup
event_source_group = EventSourceGroup(<EVENT_SOURCE_GROUP_ID>)
# ad account id without 'act_'
response = event_source_group.create_shared_account(
params={
'accounts': ['<ACCOUNT_ID_WITHOUT_ACT>'],
},
)
print(response)
curl \
-F 'accounts=["<ACCOUNT_ID_WITHOUT_ACT>"]' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/<EVENT_SOURCE_GROUP_ID>/shared_accounts
À ce stade, vous devez avoir configuré votre signal utilisateur (pixel ou app events) et l’avoir associé à un groupe de sources d’évènements et à votre ou vos catalogues de voyages.
Pour cibler les gens qui ont manifesté une intention de voyager explicite, vous devez créer une audience dynamique intéressée par les voyages, composée des personnes auxquelles vous souhaitez montrer la publicité. Vous pouvez inclure et exclure des personnes en fonction de leurs signaux d’intention de voyager. Vous pouvez aussi appliquer d’autres filtres basés sur des règles en plus des évènements, notamment grâce aux audiences personnalisées de site web. Le champ flight_set_id
est requis pour une audience dynamique intéressée par les vols. Pour les audiences intéressées par des hôtels et des destinations, il n’est pas nécessaire de spécifier un hotel_set_id
ou un destination_set_id
.
Pour configurer une nouvelle audience pour les voyages, effectuez une demande HTTP POST
à /act_<AD_ACCOUNT_ID>/customaudiences
.
Nom et type du champ | Description |
---|---|
Type : | Obligatoire. L’objectif de l’audience. Doit être défini sur |
Type : | Obligatoire. Précisez le type de signal qui doit être utilisé pour créer cette audience. Doit être défini sur |
Type : | Ensemble JSON de paires "event_sources": [ { "type": "pixel", "id": "562030684179932" }, { "type": "app", "id": "562030684179934" } ] Obligatoire si vous ne renseignez pas |
Type : | Précisez le groupe de sources d’évènements dont les évènements appuieront l’audience. Obligatoire si vous ne renseignez pas |
Type : | Obligatoire. Un ensemble d’objets JSON répertoriant chaque signal d’intention qui rendrait un compte de l’Espace Comptes admissible pour cette audience. Consultez le tableau Paramètres de l’objet inclusion ci-dessous. |
Type : | Description supplémentaire de l’audience. |
Type : | Un ensemble d’objets JSON répertoriant chaque signal d’intention qui exclurait un compte de l’Espace Comptes éligible de cette audience. Consultez le tableau Paramètres de l’objet exclusion ci-dessous. |
Type : | Une règle d’audience classique à appliquer au flux d’évènements avant le traitement des |
Nom du champ et type | Description |
---|---|
Type : | Obligatoire. Le nom d’évènement d’un signal que vous voulez prendre en compte pour l’inclusion. Exemple : |
Type : | Obligatoire. La durée minimum/maximum depuis que l’évènement a été reçu pour qu’il soit pris en compte à des fins d’inclusion. La fenêtre de rétention doit être d’au moins quatre heures. Consultez le tableau Paramètres de l’objet retention ci-dessous. Exemple : |
Type : | La fenêtre de réservation correspond au temps en seconde entre la date d’arrivée de l’utilisateur et le moment présent. Vous précisez une plage et seules les personnes dont la fenêtre de réservation entre dans cette plage sont incluses. Les fenêtres de réservation négatives sont également prises en charge, ce qui vous permet d’inclure les personnes dont la date d’arrivée est passée. Consultez le tableau Paramètres de l’objet booking_window ci-dessous. Exemples :
|
Type : opérateurs | Le nombre de déclenchements de l’évènement. Vous pouvez utiliser des opérateurs d’égalité et de comparaison numérique dans ce cas. Exemples : |
Nom du champ et type | Description |
---|---|
Type : | Obligatoire. La durée maximum (en secondes) depuis que l’évènement a été reçu. Exemple : |
Type : | La durée minimum (en secondes) depuis que l’évènement a été reçu. Exemple : |
Nom du champ et type | Description |
---|---|
Type : | Obligatoire. La durée minimum (en secondes) entre la date actuelle et la date d’arrivée souhaitée de l’utilisateur. Exemple : |
Type : | Obligatoire. La durée maximum (en secondes) entre la date actuelle et la date d’arrivée souhaitée. Exemple : |
Nom du champ et type | Description |
---|---|
Type : | Obligatoire. Le nom d’évènement d’un signal que vous voulez prendre en compte pour l’exclusion. Exemple : |
Type : | Obligatoire. La durée minimum/maximum depuis que l’évènement a été reçu pour qu’il soit pris en compte à des fins d’exclusion. La fenêtre de rétention doit être d’au moins 4 heures. Consultez le tableau Paramètres de l’objet retention ci-dessous. Exemple : |
Comme avec le paramètre classique, chaque paramètre peut être utilisé avec l’un des opérateursJSON
standard.
Nom du champ et type | Description |
---|---|
Type : | Fait correspondre ces évènements uniquement quand au moins un Uniquement pour les audiences intéressées par les voyages dont le paramètre Exemple : |
Type : | Fait correspondre ces évènements uniquement quand au moins un Uniquement pour les audiences intéressées par les voyages dont le paramètre Exemple : |
Type : | Obligatoire pour les publicités de vols Fait correspondre ces évènements uniquement quand l’itinéraire ( Uniquement pour les audiences intéressées par les voyages dont le paramètre Exemple : |
Type : | Nombre de nuitées pendant le séjour. Exemple : |
Type : | Nombre de weekends entre la date de début et la date de fin. Exemple : |
Type : | Nombre total de voyageur·euses.
Exemple : |
Champs de date :
Publicités pour des destinations
Type : | Utilisez les champs de date appropriés en fonction du Exemple : |
Type : | Le voyage comprend une date précise. Exemple : |
Voyageur·euses seul·es qui ont fait des recherches à au moins trois reprises au cours des cinq derniers jours, mais qui n’ont pas encore réservé :
use FacebookAds\Object\CustomAudience;
use FacebookAds\Object\Fields\CustomAudienceFields;
use FacebookAds\Object\Values\CustomAudienceSubtypeValues;
use FacebookAds\Object\Values\CustomAudienceClaimObjectiveValues;
use FacebookAds\Object\Values\CustomAudienceContentTypeValues;
$custom_audience = new CustomAudience(null, 'act_<AD_ACCOUNT_ID>');
$custom_audience->setData(array(
CustomAudienceFields::NAME => 'Travel Audience',
CustomAudienceFields::SUBTYPE => CustomAudienceSubtypeValues::CLAIM,
CustomAudienceFields::CLAIM_OBJECTIVE =>
CustomAudienceClaimObjectiveValues::TRAVEL,
CustomAudienceFields::CONTENT_TYPE => CustomAudienceContentTypeValues::HOTEL,
CustomAudienceFields::EVENT_SOURCE_GROUP => <EVENT_SOURCE_GROUP_ID>,
CustomAudienceFields::RULE => array(
'num_travelers' => array('eq' => 1),
),
'inclusions' => array(
array(
'event' => 'Search',
'count' => array('gt' => 3),
'retention' => array('min_seconds'=> 0, 'max_seconds'=> 432000),
),
),
'exclusions' => array(
array(
'event' => 'Purchase',
'retention' => array('min_seconds'=> 0, 'max_seconds'=> 172800),
),
),
));
$custom_audience->create();
from facebookads.adobjects.customaudience import CustomAudience
audience = CustomAudience(parent_id='act_<AD_ACCOUNT_ID>')
audience[CustomAudience.Field.name] = 'Travel Audience'
audience[CustomAudience.Field.subtype] = CustomAudience.Subtype.claim
audience[CustomAudience.Field.claim_objective] = \
CustomAudience.ClaimObjective.travel
audience[CustomAudience.Field.content_type] = CustomAudience.ContentType.hotel
audience[CustomAudience.Field.event_source_group] = <EVENT_SOURCE_GROUP_ID>
audience[CustomAudience.Field.rule] = {
'num_travelers': {'eq': 1},
}
audience['inclusions'] = [
{
'event': 'Search',
'count': {'gt': 3},
'retention': {'min_seconds': 0, 'max_seconds': 432000},
},
]
audience['exclusions'] = [
{
'event': 'Purchase',
'retention': {'min_seconds': 0, 'max_seconds': 432000},
},
]
audience.remote_create()
curl \
-F 'name=Travel Audience' \
-F 'subtype=CLAIM' \
-F 'claim_objective=TRAVEL' \
-F 'content_type=HOTEL' \
-F 'event_source_group=<EVENT_SOURCE_GROUP_ID>' \
-F 'rule={"num_travelers":{"eq":1}}' \
-F 'inclusions=[
{
"event": "Search",
"count": {"gt":3},
"retention": {"min_seconds":0,"max_seconds":432000}
}
]' \
-F 'exclusions=[{"event":"Purchase","retention":{"min_seconds":0,"max_seconds":172800}}]' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/customaudiences
Personnes qui ont affiché un hôtel d’un ensemble d’hôtels ou y ont commencé une réservation au cours des deux derniers jours, mais qui n’ont jamais finalisé leur réservation :
use FacebookAds\Object\CustomAudience;
use FacebookAds\Object\Fields\CustomAudienceFields;
use FacebookAds\Object\Values\CustomAudienceSubtypeValues;
use FacebookAds\Object\Values\CustomAudienceClaimObjectiveValues;
use FacebookAds\Object\Values\CustomAudienceContentTypeValues;
$custom_audience = new CustomAudience(null, 'act_<AD_ACCOUNT_ID>');
$custom_audience->setData(array(
CustomAudienceFields::NAME => 'Travel Audience',
CustomAudienceFields::SUBTYPE => CustomAudienceSubtypeValues::CLAIM,
CustomAudienceFields::CLAIM_OBJECTIVE =>
CustomAudienceClaimObjectiveValues::TRAVEL,
CustomAudienceFields::CONTENT_TYPE => CustomAudienceContentTypeValues::HOTEL,
CustomAudienceFields::EVENT_SOURCE_GROUP => <EVENT_SOURCE_GROUP_ID>,
CustomAudienceFields::RULE => array(
'hotel_set_id' => array('eq' => <HOTEL_SET_ID>),
),
'inclusions' => array(
array(
'event' => 'ViewContent',
'retention' => array('min_seconds'=> 0, 'max_seconds'=> 172800),
),
array(
'event' => 'InitiateCheckout',
'retention' => array('min_seconds'=> 0, 'max_seconds'=> 172800),
),
),
'exclusions' => array(
array(
'event' => 'Purchase',
'retention' => array('min_seconds'=> 0, 'max_seconds'=> 172800),
),
),
));
$custom_audience->create();
from facebookads.adobjects.customaudience import CustomAudience
audience = CustomAudience(parent_id='act_<AD_ACCOUNT_ID>')
audience[CustomAudience.Field.name] = 'Travel Audience'
audience[CustomAudience.Field.subtype] = CustomAudience.Subtype.claim
audience[CustomAudience.Field.claim_objective] = \
CustomAudience.ClaimObjective.travel
audience[CustomAudience.Field.content_type] = CustomAudience.ContentType.hotel
audience[CustomAudience.Field.event_source_group] = <EVENT_SOURCE_GROUP_ID>
audience[CustomAudience.Field.rule] = {
'hotel_set_id': {'eq': <HOTEL_SET_ID>},
}
audience['inclusions'] = [
{
'event': 'ViewContent',
'retention': {'min_seconds': 0, 'max_seconds': 172800},
},
{
'event': 'InitiateCheckout',
'retention': {'min_seconds': 0, 'max_seconds': 172800},
},
]
audience['exclusions'] = [
{
'event': 'Purchase',
'retention': {'min_seconds': 0, 'max_seconds': 172800},
},
]
audience.remote_create()
curl \
-F 'name=Travel Audience' \
-F 'subtype=CLAIM' \
-F 'claim_objective=TRAVEL' \
-F 'content_type=HOTEL' \
-F 'event_source_group=<EVENT_SOURCE_GROUP_ID>' \
-F 'rule={"hotel_set_id":{"eq":"<HOTEL_SET_ID>"}}' \
-F 'inclusions=[
{"event":"ViewContent","retention":{"min_seconds":0,"max_seconds":172800}},
{
"event": "InitiateCheckout",
"retention": {"min_seconds":0,"max_seconds":172800}
}
]' \
-F 'exclusions=[{"event":"Purchase","retention":{"min_seconds":0,"max_seconds":172800}}]' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.10/act_<AD_ACCOUNT_ID>/customaudiences
Personnes qui ont initié un paiement ou acheté les billets d’avion au cours des cinq derniers jours et dont la fenêtre de réservation est comprise entre deux et sept jours :
use FacebookAds\Object\CustomAudience;
use FacebookAds\Object\Fields\CustomAudienceFields;
use FacebookAds\Object\Values\CustomAudienceSubtypeValues;
use FacebookAds\Object\Values\CustomAudienceClaimObjectiveValues;
use FacebookAds\Object\Values\CustomAudienceContentTypeValues;
$custom_audience = new CustomAudience(null, 'act_<AD_ACCOUNT_ID>');
$custom_audience->setData(array(
CustomAudienceFields::NAME => 'Travel Audience',
CustomAudienceFields::SUBTYPE => CustomAudienceSubtypeValues::CLAIM,
CustomAudienceFields::CLAIM_OBJECTIVE =>
CustomAudienceClaimObjectiveValues::TRAVEL,
CustomAudienceFields::CONTENT_TYPE => CustomAudienceContentTypeValues::FLIGHT,
CustomAudienceFields::EVENT_SOURCE_GROUP => <EVENT_SOURCE_GROUP_ID>,
'inclusions' => array(
array(
'event' => 'InitiateCheckout',
'retention' => array('min_seconds'=> 0, 'max_seconds'=> 432000),
'booking_window' => array('min_seconds'=> 172800, 'max_seconds'=> 604800),
),
array(
'event' => 'Purchase',
'retention' => array('min_seconds'=> 0, 'max_seconds'=> 432000),
'booking_window' => array('min_seconds'=> 172800, 'max_seconds'=> 604800),
),
),
));
$custom_audience->create();
from facebookads.adobjects.customaudience import CustomAudience
audience = CustomAudience(parent_id='act_<AD_ACCOUNT_ID>')
audience[CustomAudience.Field.name] = 'Travel Audience'
audience[CustomAudience.Field.subtype] = CustomAudience.Subtype.claim
audience[CustomAudience.Field.claim_objective] = \
CustomAudience.ClaimObjective.travel
audience[CustomAudience.Field.content_type] = CustomAudience.ContentType.flight
audience[CustomAudience.Field.event_source_group] = <EVENT_SOURCE_GROUP_ID>
audience['inclusions'] = [
{
"event": "InitiateCheckout",
"retention": {"min_seconds": 0, "max_seconds": 432000},
"booking_window": {"min_seconds": 172800, "max_seconds": 604800},
},
{
"event": "Purchase",
"retention": {"min_seconds": 0, "max_seconds": 432000},
"booking_window": {"min_seconds": 172800, "max_seconds": 604800},
},
]
audience.remote_create()
curl \
-F 'name=Travel Audience' \
-F 'subtype=CLAIM' \
-F 'claim_objective=TRAVEL' \
-F 'content_type=FLIGHT' \
-F 'event_source_group=<EVENT_SOURCE_GROUP_ID>' \
-F 'inclusions=[
{
"event": "InitiateCheckout",
"retention": {"min_seconds":0,"max_seconds":432000},
"booking_window": {"min_seconds":172800,"max_seconds":604800}
},
{
"event": "Purchase",
"retention": {"min_seconds":0,"max_seconds":432000},
"booking_window": {"min_seconds":172800,"max_seconds":604800}
}
]' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/customaudiences
Personnes qui ont fait une recherche d’hôtel à New York City plus de trois fois au cours des deux derniers jours, mais qui n’ont pas encore réservé :
use FacebookAds\Object\CustomAudience;
use FacebookAds\Object\Fields\CustomAudienceFields;
use FacebookAds\Object\Values\CustomAudienceSubtypeValues;
use FacebookAds\Object\Values\CustomAudienceClaimObjectiveValues;
use FacebookAds\Object\Values\CustomAudienceContentTypeValues;
$custom_audience = new CustomAudience(null, 'act_<AD_ACCOUNT_ID>');
$custom_audience->setData(array(
CustomAudienceFields::NAME => 'Travel Audience',
CustomAudienceFields::SUBTYPE => CustomAudienceSubtypeValues::CLAIM,
CustomAudienceFields::CLAIM_OBJECTIVE =>
CustomAudienceClaimObjectiveValues::TRAVEL,
CustomAudienceFields::CONTENT_TYPE => CustomAudienceContentTypeValues::HOTEL,
CustomAudienceFields::EVENT_SOURCE_GROUP => <EVENT_SOURCE_GROUP_ID>,
CustomAudienceFields::RULE => array(
'destination' => array('i_contains' => 'New York City'),
),
'inclusions' => array(
array(
'event' => 'Search',
'count' => array('gt' => 3),
'retention' => array('min_seconds'=> 0, 'max_seconds'=> 172800),
),
),
'exclusions' => array(
array(
'event' => 'Purchase',
'retention' => array('min_seconds'=> 0, 'max_seconds'=> 172800),
),
),
));
$custom_audience->create();
from facebookads.adobjects.customaudience import CustomAudience
audience = CustomAudience(parent_id='act_<AD_ACCOUNT_ID>')
audience[CustomAudience.Field.name] = 'Travel Audience'
audience[CustomAudience.Field.subtype] = CustomAudience.Subtype.claim
audience[CustomAudience.Field.claim_objective] = \
CustomAudience.ClaimObjective.travel
audience[CustomAudience.Field.content_type] = CustomAudience.ContentType.hotel
audience[CustomAudience.Field.event_source_group] = <EVENT_SOURCE_GROUP_ID>
audience[CustomAudience.Field.rule] = {
'destination': {'i_contains': 'New York City'},
}
audience['inclusions'] = [
{
'event': 'Search',
'count': {'gt': 3},
'retention': {'min_seconds': 0, 'max_seconds': 172800},
},
]
audience['exclusions'] = [
{
'event': 'Purchase',
'retention': {'min_seconds': 0, 'max_seconds': 172800},
},
]
audience.remote_create()
curl \
-F 'name=Travel Audience' \
-F 'subtype=CLAIM' \
-F 'claim_objective=TRAVEL' \
-F 'content_type=HOTEL' \
-F 'event_source_group=<EVENT_SOURCE_GROUP_ID>' \
-F 'rule={"destination":{"i_contains":"New York City"}}' \
-F 'inclusions=[
{
"event": "Search",
"count": {"gt":3},
"retention": {"min_seconds":0,"max_seconds":172800}
}
]' \
-F 'exclusions=[{"event":"Purchase","retention":{"min_seconds":0,"max_seconds":172800}}]' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/customaudiences
Personnes qui ont fait une recherche d’hôtel pour la période comprise entre checkin_date
et checkout_date
au cours des deux derniers jours, mais qui n’ont pas encore réservé :
use FacebookAds\Object\CustomAudience;
use FacebookAds\Object\Fields\CustomAudienceFields;
use FacebookAds\Object\Values\CustomAudienceSubtypeValues;
use FacebookAds\Object\Values\CustomAudienceClaimObjectiveValues;
use FacebookAds\Object\Values\CustomAudienceContentTypeValues;
$custom_audience = new CustomAudience(null, 'act_<AD_ACCOUNT_ID>');
$custom_audience->setData(array(
CustomAudienceFields::NAME => 'Travel Audience',
CustomAudienceFields::SUBTYPE => CustomAudienceSubtypeValues::CLAIM,
CustomAudienceFields::CLAIM_OBJECTIVE =>
CustomAudienceClaimObjectiveValues::TRAVEL,
CustomAudienceFields::CONTENT_TYPE => CustomAudienceContentTypeValues::HOTEL,
CustomAudienceFields::EVENT_SOURCE_GROUP => <EVENT_SOURCE_GROUP_ID>,
CustomAudienceFields::RULE => array(
'and' => array(
array(
'checkin_date' => array(
'gte' => (new \DateTime("+3 day"))->format('Y-m-d')
),
),
array(
'checkout_date' => array(
'lte' => (new \DateTime("+6 day"))->format('Y-m-d')
),
),
),
),
'inclusions' => array(
array(
'event' => 'Search',
'retention' => array('min_seconds'=> 0, 'max_seconds'=> 172800),
),
),
'exclusions' => array(
array(
'event' => 'Purchase',
'retention' => array('min_seconds'=> 0, 'max_seconds'=> 172800),
),
),
));
$custom_audience->create();
from facebookads.adobjects.customaudience import CustomAudience
import datetime
audience = CustomAudience(parent_id='act_<AD_ACCOUNT_ID>')
audience[CustomAudience.Field.name] = 'Travel Audience'
audience[CustomAudience.Field.subtype] = CustomAudience.Subtype.claim
audience[CustomAudience.Field.claim_objective] = \
CustomAudience.ClaimObjective.travel
audience[CustomAudience.Field.content_type] = CustomAudience.ContentType.hotel
audience[CustomAudience.Field.event_source_group] = <EVENT_SOURCE_GROUP_ID>
audience[CustomAudience.Field.rule] = {
'and': [
{
"checkin_date": {
"gte": str(datetime.date.today() + datetime.timedelta(days=3)),
},
},
{
"checkout_date": {
"gte": str(datetime.date.today() + datetime.timedelta(days=6)),
},
},
],
}
audience['inclusions'] = [
{
'event': 'Search',
'retention': {'min_seconds': 0, 'max_seconds': 172800},
},
]
audience['exclusions'] = [
{
'event': 'Purchase',
'retention': {'min_seconds': 0, 'max_seconds': 172800},
},
]
audience.remote_create()
curl \
-F 'name=Travel Audience' \
-F 'subtype=CLAIM' \
-F 'claim_objective=TRAVEL' \
-F 'content_type=HOTEL' \
-F 'event_source_group=<EVENT_SOURCE_GROUP_ID>' \
-F 'rule={
"and": [
{"checkin_date":{"gte":"2018-02-02"}},
{"checkout_date":{"lte":"2018-02-05"}}
]
}' \
-F 'inclusions=[{"event":"Search","retention":{"min_seconds":0,"max_seconds":172800}}]' \
-F 'exclusions=[{"event":"Purchase","retention":{"min_seconds":0,"max_seconds":172800}}]' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/customaudiences
Personnes qui ont fait une recherche de séjour à l’hôtel contenant une date précise (par exemple, Noël) au cours des deux derniers jours, mais qui n’ont pas encore réservé :
use FacebookAds\Object\CustomAudience;
use FacebookAds\Object\Fields\CustomAudienceFields;
use FacebookAds\Object\Values\CustomAudienceSubtypeValues;
use FacebookAds\Object\Values\CustomAudienceClaimObjectiveValues;
use FacebookAds\Object\Values\CustomAudienceContentTypeValues;
$custom_audience = new CustomAudience(null, 'act_<AD_ACCOUNT_ID>');
$custom_audience->setData(array(
CustomAudienceFields::NAME => 'Travel Audience',
CustomAudienceFields::SUBTYPE => CustomAudienceSubtypeValues::CLAIM,
CustomAudienceFields::CLAIM_OBJECTIVE =>
CustomAudienceClaimObjectiveValues::TRAVEL,
CustomAudienceFields::CONTENT_TYPE => CustomAudienceContentTypeValues::HOTEL,
CustomAudienceFields::EVENT_SOURCE_GROUP => <EVENT_SOURCE_GROUP_ID>,
CustomAudienceFields::RULE => array(
'itinerary_contains_date' => array(
'eq' => (new \DateTime())->setDate(Date('Y'), 12, 25)->format('Y-m-d')
),
),
'inclusions' => array(
array(
'event' => 'Search',
'retention' => array('min_seconds'=> 0, 'max_seconds'=> 172800),
),
),
'exclusions' => array(
array(
'event' => 'Purchase',
'retention' => array('min_seconds'=> 0, 'max_seconds'=> 172800),
),
),
));
$custom_audience->create();
from facebookads.adobjects.customaudience import CustomAudience
import datetime
audience = CustomAudience(parent_id='act_<AD_ACCOUNT_ID>')
audience[CustomAudience.Field.name] = 'Travel Audience'
audience[CustomAudience.Field.subtype] = CustomAudience.Subtype.claim
audience[CustomAudience.Field.claim_objective] = \
CustomAudience.ClaimObjective.travel
audience[CustomAudience.Field.content_type] = CustomAudience.ContentType.hotel
audience[CustomAudience.Field.event_source_group] = <EVENT_SOURCE_GROUP_ID>
audience[CustomAudience.Field.rule] = {
"itinerary_contains_date": {
"eq": str(datetime.date(datetime.date.today().year, 12, 25)),
},
}
audience['inclusions'] = [
{
'event': 'Search',
'retention': {'min_seconds': 0, 'max_seconds': 172800},
},
]
audience['exclusions'] = [
{
'event': 'Purchase',
'retention': {'min_seconds': 0, 'max_seconds': 172800},
},
]
audience.remote_create()
curl \
-F 'name=Travel Audience' \
-F 'subtype=CLAIM' \
-F 'claim_objective=TRAVEL' \
-F 'content_type=HOTEL' \
-F 'event_source_group=<EVENT_SOURCE_GROUP_ID>' \
-F 'rule={"itinerary_contains_date":{"eq":"2018-12-25"}}' \
-F 'inclusions=[{"event":"Search","retention":{"min_seconds":0,"max_seconds":172800}}]' \
-F 'exclusions=[{"event":"Purchase","retention":{"min_seconds":0,"max_seconds":172800}}]' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/customaudiences
Personnes qui créent une audience pour des vols allers :
curl \ -F 'name=Travel Audience' \ -F 'claim_objective=TRAVEL' \ -F 'content_type=FLIGHT' \ -F 'event_source_group=<EVENT_SOURCE_GROUP_ID>' \ -F 'rule={"and":[{"returning_departure_date":{"exists":false]}}' \ -F 'inclusions=[ { "event": "Search", "count": {"gt":3}, "retention": {"min_seconds":0,"max_seconds":432000} } ]' \ -F 'exclusions=[{"event":"Purchase","retention":{"min_seconds":0,"max_seconds":172800}}]' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/customaudiences
Une fois que vous avez créé votre ou vos audiences, elles peuvent ensuite être ajoutées aux caractéristiques de ciblage de votre campagne de publicités pour les voyages.