Réserver une campagne
Cet exemple illustre comment créer et cibler une campagne (ou une réservation) et l'associer à une copie publicitaire. En combinaison avec le cas d'utilisation Importer du contenu à partir d'une URL (REST), il montre l'ensemble complet des opérations nécessaires pour ingérer du contenu, le planifier et le faire apparaître sur les systèmes de lecture ciblés. Voir aussi Campagnes.
Note : Les numéros d'identification que nous utilisons dans ces échantillons sont fournis à titre d'illustration. Ils ne sont pas valides. Assurez-vous d’utiliser vos propres numéros d’identification pour vos intégrations. De plus, dans nos exemples, nous utilisons le point de terminaison api-sandbox et le jeton HTTP.
Vous devrez utiliser les méthodes suivantes pour réserver une campagne (ou une réservation). Notez que vous aurez besoin des numéros d’identification des réponses comme valeurs pour les paramètres dans les étapes suivantes de la séquence.
Pour réserver une campagne (REST) :
- Créez une campagne/réservation. Utilisez la méthode POST /reservation/v22/add.
- En utilisant l'identifiant de votre nouvelle campagne/réservation comme parent, associez un critère à votre campagne. Utilisez la méthode POST /resource_criteria/v7/add.
-
Ensuite, ciblez la réservation sur des unités d’affichage spécifiques. Pour ce faire, utilisez l’identifiant de réservation et l’identifiant de critère de ressource pour créer un «skin_slot». Un «skin_slot» est un lien entre un emplacement de boucle et un cadre qui, à son tour, se trouve dans une partie de la journée. Utilisez la méthode POST /reservation/v22/add_skin_slots.
Note : En tant que tel, la requête ciblera toutes les unités d'affichage du domaine; cependant, en spécifiant des critères, des conteneurs et des opérateurs booléens, vous pouvez affiner le ciblage.
- Après avoir créé les skin_slots, ajoutez d'abord du contenu à la campagne/réservation en récupérant le default_schedule_id de la campagne/réservation que nous venons de créer. Utilisez la méthode GET /reservation/v22/many.
- Créez le bundle qui contiendra le contenu. Utilisez la méthode POST /bundle/v12/add.
- À l’aide d’un identifiant de contenu valide, associez un élément de contenu spécifique au bundle. Utilisez la méthode POST /bundle_content/v5/add.
- Faites la promotion de la campagne. Utilisez à la fois les méthodes PUT /reservation/v22/many et /reservation/v22.
Créez une campagne ou une réservation. Vous utiliserez la réponse de cette requête comme parent_id dans Étape 2 : Associer un critère à la campagne..
Requête
curl -X POST \
https://api-sandbox.broadsign.com:10889/rest/reservation/v22/add \
-H 'authorization: Bearer YourAPIKeyHere' \
-H 'cache-control: no-cache' \
-d '{
"domain_id": 123456789,
"name": "cURL Campaign reservation",
"container_id": 12345,
"duration_msec": 10000,
"start_date": "2017-10-28",
"end_date": "2017-12-18",
"start_time": "00:00:00",
"end_time": "23:59:59"
}'
Réponse
{
"reservation": [
{
"id": 987654321
}
]
}
Ensuite, nous allons associer un critère à la campagne.
En utilisant l'identifiant de votre nouvelle campagne/réservation (987654321 dans notre exemple) comme parent, associez un critère à votre campagne.
Requête
curl -X POST \
https://api-sandbox.broadsign.com:10889/rest/resource_criteria/v7/add \
-H 'authorization: Bearer YourAPIKeyHere' \
-H 'cache-control: no-cache' \
-d '{
"parent_id": 987654321,
"criteria_id": 23,
"type": 5,
"domain_id": 123456789
}'
Réponse
{
"resource_criteria": [
{
"id": 555
}
]
}
Ensuite, nous ciblerons la campagne/réservation sur des unités d’affichage spécifiques.
Ciblez la réservation sur des unités d'affichage spécifiques. Faites-le en utilisant l'identifiant de réservation et du resource_criteria pour créer un skin_slot. Un skin_slot est un lien entre un emplacement de boucle et un cadre qui, à son tour, se trouve dans une partie de la journée.
Nous utiliserons les réponses suivantes des étapes 1 et 2 :
- id : L'identifiant de la réservation. Dans notre exemple, il s'agit de : 987654321.
- du_or_criteria : Les critères de ressources. Dans notre exemple, il s'agit de 555.
Requête
curl -X POST \
https://api-sandbox.broadsign.com:10889/rest/reservation/v22/add_skin_slots \
-H 'authorization: Bearer YourAPIKeyHere' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '{
"domain_id": 123456789,
"id": 987654321,
"sub_elements": {
"du_or_criteria": [ { "id": 23 } ]
}
}'
Réponse
{
"reservation": [
{
"id": 987654321
}
]
}
Ensuite, nous prenons les mesures nécessaires pour ajouter du contenu à la réservation. Tout d’abord, nous allons récupérer le default_schedule_id de la réservation que nous venons de créer.
Utilisez l’identifiant de la réservation de l’étape 1. Dans notre exemple, il s'agit de : 987654321.
Requête
curl -X GET \
'https://localhost:10889/rest/reservation/v22/by_id?ids=987654321&domain_id=123456789' \
-H 'authorization: Bearer YourAPIKeyHere' \
-H 'cache-control: no-cache'
Réponse
La réponse nous donne l'identifiant du default_schedule_id : 1731. Nous l'utiliserons dans le paramètre parent_id de Étape 5 : Créer un bundle.
{
"not_modified_since": "2017-10-27T17:55:12Z",
"reservation": [
{
"active": true,
"auto_synchronize_bundles": false,
"bmb_host_id": 0,
"booking_state": 0,
"booking_state_calculated_on": "",
"container_id": 12345,
"creation_tm": "2017-10-27T17:13:20",
"creation_user_id": 2,
"day_of_week_mask": 127,
"default_attributes": "",
"default_bundle_weight": 0,
"default_category_id": 0,
"default_fullscreen": false,
"default_interactivity_timeout": 0,
"default_interactivity_trigger_id": 0,
"default_schedule_id": 1731,
"default_secondary_sep_category_ids": "",
"default_segment_category_id": 0,
"default_trigger_category_id": 0,
"domain_id": 123456789,
"duration_msec": 10000,
"end_date": "2017-12-18",
"end_time": "23:59:59",
"estimated_reps": 0,
"goal_amount": 0,
"goal_reached_on_tm": "",
"goal_unit": 0,
"has_goal": false,
"id": 987654321,
"media_package_id": 0,
"name": "cURL Campaign reservation",
"pacing_period": 0,
"pacing_target": 0,
"parent_id": 0,
"promoter_user_id": 0,
"promotion_time": "",
"reps_calculated_on": "",
"saturation": 1,
"start_date": "2017-10-28",
"start_time": "00:00:00",
"state": 0
}
]
}
Ensuite, nous allons créer le bundle pour contenir le contenu. Utilisez le default_schedule_id de la réponse à l’étape 4 dans le paramètre parent_id de la requête.
Requête
curl -X POST \
https://localhost:10889/rest/bundle/v12/add \
-H 'authorization: Bearer YourAPIKeyHere' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '{
"domain_id": 123456789,
"parent_id": 1731,
"name": "BroadSign_1280_720"
}'
Réponse
{
"bundle": [
{
"id": 1751
}
]
}
Ensuite, nous associerons un content_id spécifique au bundle. Assurez-vous que l'identifiant de contenu est valide. Utilisez le id de la réponse à l’étape 5 dans le paramètre parent_id de la requête.
Requête
curl -X POST \
https://localhost:10889/rest/bundle_content/v5/add \
-H 'authorization: Bearer YourAPIKeyHere' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '{
"content_id": 1727,
"domain_id": 123456789,
"parent_id": 1751
}'
Réponse
{
"bundle_content": [
{
"id": 1752
}
]
}
Enfin, nous ferons la promotion de la campagne. Tout d'abord, nous allons la lister puis nous la mettrons à jour.
Requête
curl -X GET \
'https://localhost:10889/rest/reservation/v22/by_id?ids=987654321&domain_id=123456789' \
-H 'authorization: Bearer YourAPIKeyHere' \
-H 'cache-control: no-cache'
Réponse
{
"not_modified_since": "2017-10-27T18:13:11Z",
"reservation": [
{
"active": true,
"auto_synchronize_bundles": false,
"bmb_host_id": 0,
"booking_state": 0,
"booking_state_calculated_on": "",
"container_id": 12345,
"creation_tm": "2017-10-27T17:13:20",
"creation_user_id": 2,
"day_of_week_mask": 127,
"default_attributes": "",
"default_bundle_weight": 0,
"default_category_id": 0,
"default_fullscreen": false,
"default_interactivity_timeout": 0,
"default_interactivity_trigger_id": 0,
"default_schedule_id": 1731,
"default_secondary_sep_category_ids": "",
"default_segment_category_id": 0,
"default_trigger_category_id": 0,
"domain_id": 123456789,
"duration_msec": 10000,
"end_date": "2017-12-18",
"end_time": "23:59:59",
"estimated_reps": 0,
"goal_amount": 0,
"goal_reached_on_tm": "",
"goal_unit": 0,
"has_goal": false,
"id": 987654321,
"media_package_id": 0,
"name": "cURL Campaign reservation",
"pacing_period": 0,
"pacing_target": 0,
"parent_id": 0,
"promoter_user_id": 0,
"promotion_time": "",
"reps_calculated_on": "",
"saturation": 1,
"start_date": "2017-10-28",
"start_time": "00:00:00",
"state": 0
}
]
}
Requête
curl -X PUT \
https://localhost:10889/rest/reservation/v22 \
-H 'authorization: Bearer YourAPIKeyHere' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '{
"active": true,
"auto_synchronize_bundles": false,
"bmb_host_id": 0,
"container_id": 12345,
"default_attributes": "",
"default_bundle_weight": 0,
"default_category_id": 0,
"default_fullscreen": false,
"default_interactivity_timeout": 0,
"default_interactivity_trigger_id": 0,
"default_secondary_sep_category_ids": "",
"default_segment_category_id": 0,
"default_trigger_category_id": 0,
"domain_id": 123456789,
"goal_amount": 0,
"goal_unit": 0,
"has_goal": false,
"id": 987654321,
"name": "cURL Campaign reservation",
"pacing_period": 0,
"pacing_target": 0,
"parent_id": 0,
"state": 1
}'
Réponse
{
""not_modified_since": "2017-10-27T18:13:11Z",
"reservation": [
{
"id": 987654321
}
]
}
