Intégration de contenus publicitaires FBE

Facebook Business Extension (FBE) permet à vos utilisateurs et utilisatrices d’importer facilement des éléments de contenu publicitaire dans la famille d’applications Meta en se connectant à un Business Manager existant ou nouveau. En utilisant le Business Manager renvoyé à l’issue de ce processus, les partenaires peuvent importer des éléments de contenu publicitaire sur Facebook au nom de leurs client·es.

Ce document présente les principales conditions requises pour le processus de Contenu publicitaire FBE, ainsi que les étapes nécessaires à sa réalisation. Veuillez consulter le guide Facebook Business Extension pour obtenir des détails spécifiques sur les intégrations en général.

Exemple : Processus d’intégration de la plateforme partenaire (Business Login)

Avant de commencer

  1. Inscrivez-vous en tant que développeur·se Facebook pour accéder à nos outils destinés aux équipes de développement et créer des applications Facebook.

  2. Si vous ne l’avez pas déjà fait, créez une application Meta.

  3. Votre application Meta doit appartenir à un Business Manager qui est une entreprise vérifiée. Obtenez plus d’informations sur la procédure de vérification de votre entreprise.

  4. Créez une app test qui vous permettra de réaliser tous vos nouveaux développements et vos tests. Assurez-vous d’affecter un Business Manager différent à votre app test.

  5. Autorisations/Fonctionnalités privées :

  • manage_business_extension : permet d’accéder à Facebook Business Extension. Une fois que cette fonctionnalité est accordée à votre application, le FBE Developer Panel est disponible sous Produits.

  • Business_creative_asset_management : permet d’accéder aux API de gestion des éléments de contenu publicitaire. Une fois que cette fonctionnalité vous a été accordée, vous pouvez accéder aux autorisations suivantes :

    • business_creative_insights : permet d’accéder aux insights sur les éléments de contenu publicitaire professionnel.

    • business_creative_management : permet à votre application de créer, modifier et partager de nouveaux dossiers et d’y importer des éléments dans le contexte de votre propre entreprise.

    • business_creative_insights_share (en cours de développement) : autorisation facultative utilisée dans le processus de partage de dossiers. Si l’utilisateur·ice l’autorise, votre application pourra partager le dossier de contenu publicitaire avec d’autres entreprises et leur permettre de consulter les insights sur les éléments de contenu publicitaire.

Une fois le Contrôle app terminé

Générez un token d’accès partenaire :

  • Générez un token d’accès d’utilisateur système admin sous votre Business Manager en suivant ces instructions.

  • Assurez-vous que les autorisations business_creative_insights, business_creative_management et business_management sont sélectionnées pour ce token à l'étape « champs d’action disponibles ».

Implémenter le bouton « Envoyer ma conception à Facebook »

Ce bouton permet d’envoyer un élément à la bibliothèque Facebook Media de l’utilisateur·ice à partir de votre application. Au cours de ce processus, votre application devra permettre à l'utilisateur·ice de sélectionner ou de créer un dossier vers lequel envoyer l’élément.

Nous recommandons deux approches pour y parvenir :

1. (Au minimum) L'utilisateur·ice ne peut que choisir ou créer un dossier de premier niveau. Dans le contexte d’entreprise autorisée, interrogez tous les dossiers de premier niveau auxquels l'utilisateur·ice a accès. Demandez à l'utilisateur·ice de choisir un dossier de premier niveau existant ou d'en créer un nouveau. Les utilisateurs et utilisatrices peuvent soit spécifier le nom du dossier, soit utiliser le nom de dossier par défaut <YourBusinessName>_<UserBusinessName>_<UserName>. Importez les éléments dans le dossier de premier niveau sélectionné ou nouveau. Cette approche nécessite un travail minimal au niveau de l'UI, et les détails de l'API figurent à l’Étape 3 ci-dessous.

2. (Facultatif) L'utilisateur·ice a le contrôle total de la navigation dans les dossiers et sous-dossiers. Dans le contexte d’entreprise autorisée, interrogez tous les dossiers de premier niveau auxquels l'utilisateur·ice a accès, et demandez à ce dernier ou cette dernière de choisir un dossier de premier niveau existant ou d'en créer un nouveau. Pour un nouveau dossier, vous pouvez demander à l'utilisateur·ice de nommer le dossier ou d’utiliser le nom par défaut <YourBusinessName>_<UserBusinessName>_<UserName>. Sous le dossier de premier niveau sélectionné, l'utilisateur·ice a la possibilité d’accéder à un sous-dossier existant, de créer un nouveau sous-dossier ou d’importer des éléments. Avec cette option, vous devrez implémenter la navigation par dossier dans votre UI. Des instructions sur l’intégration de l’API sont disponibles dans l’Étape 3 et l’Étape 4 ci-dessous.

Les étapes spécifiques requises pour implémenter ce processus sont les suivantes :

  1. Implémenter Facebook Business Extension
  2. Obtenir le contexte d’entreprise
  3. Sélectionner ou créer un dossier de premier niveau
  4. Sélectionner ou créer un sous-dossier
  5. Importer des images/vidéos
  6. Demander le partage de dossier avec vous (facultatif)
  7. Afficher les insights sur les images/vidéos (facultatif)

1. Implémenter Facebook Business Extension

Lorsque l'utilisateur·ice envoie un élément de contenu publicitaire à Facebook pour la première fois, vous devez demander à Facebook Business Extension de lui demander de s'authentifier et d'accorder à votre application les autorisations nécessaires et l'accès aux éléments, sous la forme de tokens d'accès, afin qu’il ou elle puisse accéder à ses données sur Facebook. Consultez Facebook Business Extension : premiers pas pour implémenter Facebook Business Extension dans votre application. Suivez le guide Applications d’entreprise pour rendre votre application compatible avec les applications d’entreprise.

Pour exécuter le processus de Contenu publicitaire :

  • Indiquez channel : CREATIVE et business_vertical : CREATIVE sous setup.
  • Utilisez les autorisations business_creative_management et business_creative_insights.
    • Obligatoire pour interroger les ID d’entreprise, créer des dossiers et importer des éléments de contenu publicitaire dans le dossier.
  • (Facultatif) Utilisez l’autorisation business_creative_insights_share.
    • Permet à l’utilisateur ou l’utilisatrice de partager avec vous le dossier avec l’autorisation pour la tâche VIEW_INSIGHTS.

En utilisant le token d'accès de l'utilisateur·ice renvoyé par cette invite, vous pouvez effectuer des appels d'API au nom de cet·te utilisateur·ice.

Configurations requises

Extras

ChampTypeDescription

setup

configuration

Obligatoire

Paramètres de configuration Facebook du vendeur, tels que son identifiant unique (external_business_id) ou la devise de son catalogue (currency). Voir Détails sur l’objet de configuration.

business_config

business_config

Obligatoire

Objet de configuration utilisé par Facebook Business Extension pour configurer le flux de travail de Facebook Business Extension. Voir Détails sur l’objet business_config.

repeat

booléen

Obligatoire

Définir cette valeur sur false.

Setup

Utilisez cet objet pour définir les paramètres de présence Facebook de l’utilisateur ou l’utilisatrice final·e.

ChampDescription

external_business_id
Type : chaîne

Obligatoire.
ID d’entreprise unique pour représenter votre entreprise cliente. Nous l’utilisons en tant qu’identifiant unique. Par exemple, si l’entreprise du vendeur s’appelle « Fubar », « fubar-123 » pourrait être son external_business_id.

timezone
Type : chaîne

Obligatoire.
Fuseau horaire dans lequel l’entreprise se trouve. Voir les valeurs de fuseau horaire possibles.

currency
Type : chaîne

Obligatoire.
Code ISO à trois lettres de la devise par défaut utilisée par les articles du catalogue de l’entreprise. Consultez la liste des codes de devise pris en charge.

business_vertical
Type : énumération

Obligatoire.
Secteur associé à l’entreprise.
Valeurs :CREATIVE

channel
Type : énumération

Obligatoire.
Permet à l’entreprise partenaire d’exprimer ses intentions à l’égard de l’utilisateur·ice concernant les fonctionnalités qui nécessitent des étapes ou des contraintes supplémentaires. Valeur : CREATIVE

  • CREATIVE : processus qui permet aux utilisateur·ices de créer des contenus publicitaires sur des plateformes partenaires et de les partager avec le Business Manager de l’utilisateur·ice.

business_manager_id
Type : chaîne

Facultatif.
ID Business Manager existant qu’un·e partenaire peut fournir comme présélection pour l’utilisateur·ice dans le processus de configuration.

Configuration d’entreprise

Utilisez cet objet pour configurer les paramètres de l’entreprise d’un utilisateur ou d’une utilisatrice final·e. Il comprend les CTA, la carte de services, etc. Chaque champ comprend un « type » lié aux tableaux respectifs ci-dessous.

ChampDescription

business
Type : FBEBusinessPropertiesConfigData

Obligatoire.
Information pour l’entreprise de l’utilisateur ou l’utilisatrice final·e.

FBEBusinessPropertiesConfigData

Utilisez cet objet pour configurer le nom de l’entreprise.

ChampDescription

name
Type : chaîne

Obligatoire.
Nom de l’entreprise.

2. Obtenir le contexte d’entreprise

Une fois que l'utilisateur·ice aura terminé le processus d’intégration FBE ci-dessus, vous recevrez l'ID du Business Manager et le token d'accès de l'utilisateur·ice via l’API FBE Installation, ou une notification Webhook.

3. Sélectionner ou créer un dossier de premier niveau

Les utilisateur·ices peuvent importer des éléments dans le dossier de premier niveau ou créer des sous-dossiers sous ce dossier.

Tout d'abord, vérifiez les dossiers de premier niveau auxquels l'utilisateur·ice a accès pour la tâche CREATE_CONTENT, en effectuant une demande au point de terminaison <business_id>/creative_folders (en cours de développement).

Obtenir le dossier de premier niveau de l'entreprise de l'utilisateur·ice

Requête

curl -X GET \
    -F 'access_token={user-access-token}' \
https://graph.facebook.com/<API_VERSION>/<user_business_id>/creative_folders?filtering=[{field:"permitted_tasks", operator: "EQUAL", value:"create_content"}]

Réponse

{
 "id": "<folder_id>"
}

Demandez à l’utilisateur·ice de choisir un dossier de premier niveau existant ou d’en créer un nouveau dans le contexte de son Business Manager. Pour un nouveau dossier de premier niveau, vous pouvez demander à l'utilisateur·ice de nommer le dossier ou d’utiliser le <YourBusinessName>_<UserBusinessName>_<UserName> par défaut. Si l'utilisateur·ice partage le dossier avec vous, il ou elle sera visible à la fois pour votre entreprise et pour celle de l'utilisateur·ice dans la bibliothèque d’éléments Facebook.

Remarque : le nom d'entreprise de l'utilisateur·ice peut être obtenu en envoyant une demande GET au point de terminaison {business-id}{business-id} est l'ID d'entreprise de l'utilisateur·ice.

Obtenir la demande d’informations de l’entreprise de l’utilisateur·ice

Requête

curl -X GET \
    -F 'access_token={user-access-token}' \
    https://graph.facebook.com/<API_VERSION>/<BUSINESS_ID>

Réponse

{
 "id": {business-id}
 "name": {user-business-name}
}

Créer la demande d’un dossier de premier niveau

Requête

curl -X POST \
    -F "name={folder_name}"
    -F "description={description}"
    -F 'access_token={user-access-token}' \
    https://graph.facebook.com/<API_VERSION>/<BUSINESS_ID>/creative_folders

Réponse

{
 "id": {top-level-folder-id}
}

4. Sélectionner ou créer un sous-dossier

Si vous souhaitez prendre en charge le processus de navigation complet par dossier, demandez à l'utilisateur·ice de choisir un sous-dossier existant ou d'en créer un nouveau sous le dossier de premier niveau à l'aide des demandes suivantes :

Obtenir le sous-dossier

  • Nécessite l’autorisation business_creative_management

Requête

curl -X GET \
    -F 'access_token={user-access-token}' \
    https://graph.facebook.com/<API_VERSION>/<parent_folder_id>/subfolders?fields=name

Réponse

{
 "data": [
   {
     "name": "<subfolder_name>",
     "id": "<subfolder_id>"
   }
 ]
}

Créer le sous-dossier

  • Nécessite l’autorisation business_creative_management

Requête

curl -X POST \
    -F "name={folder_name}"
    -F "description={description}"
    -F "parent_folder_id={parent-folder-id}"
    -F 'access_token={user-access-token}' \
 https://graph.facebook.com/<API_VERSION>/<BUSINESS_ID>/creative_folders

Réponse

{
    "id": {sub-folder-id}
}

Vous pouvez supprimer le dossier et le sous-dossier en envoyant une requête DELETE au point de terminaison <folder_id> ou <subfolder_id>.

5. Importer des images et des vidéos dans le sous-dossier

Importez les éléments de contenu publicitaire de l'utilisateur·ice dans le sous-dossier.

  • Nécessite l’autorisation business_creative_management

Importer des images

Requête

curl -X POST \
    -F 'bytes={image-content-in-bytes-format}' \
    -F 'name={image-name}' \
    -F 'access_token={user-access-token}' \
    -F 'creative_folder_id={subfolder-id}' \
    https://graph.facebook.com/{version}/{business-id}/images

Réponse

{
    "images":{
         "{image-name}":{
             "id":"{business-creative-image-id}",
             "hash":"{hash}",
             "url":"{image-url}"
         }
    }
}

Importer des vidéos

Importez une vidéo en une seule fois si elle fait moins de quelques mégaoctets. Sinon, chargez-la par segments (consultez la section suivante ci-dessous). Effectuez votre appel d’API pour l’importation de la vidéo à graph-video.facebook.com au lieu de graph.facebook.com.

Exemple : envoyez un POST à {business-id}/video en indiquant le nom de votre vidéo, la source et l'ID du sous-dossier.

Requête

curl -X POST \
    -F 'name={video-name}' \
    -F 'source='&#064;&#123;video-path&#125;'' \
    -F 'access_token={user-access-token}' \
    -F 'creative_folder_id={subfolder-id}' \
    https://graph-video.facebook.com/{version}/{business-id}/videos

Réponse

{
  "success": true,
  "business_video_id": "<business_video_id>"
}

Importer des vidéos par segments

Pour les vidéos plus volumineuses, envoyez une demande de démarrage, une ou plusieurs demandes de transfert et une demande de fin.

Pour effectuer une demande de démarrage et créer une session d’importation de vidéo, envoyez une demande POST à /{business-id}/videos, définissez le champ upload_phase sur démarrage, et spécifiez file_size en octets

Requête

curl -X POST \
 -F 'title={video-name}' \
 -F 'creative_folder_id={subfolder-id}' \
 -F 'access_token={user-access-token}' \
 -F 'upload_phase=start' \
 -F 'file_size={video_file_size_in_bytes}' \
 https://graph-video.facebook.com/<API_VERSION>/<BUSINESS_ID>/videos

Réponse

{
    "upload_session_id": "{session-id}",
    "video_id": "{video-id}",
    "start_offset": "0",
    "end_offset": "52428800"
}

Pour importer [0, 52428800] à partir de votre vidéo, découpez le fichier en segments en fonction des décalages de début et de fin, puis envoyez ces segments avec les demandes de transfert. Nous vous envoyons de nouveaux décalages pour chaque segment ; utilisez ces nouveaux décalages pour importer chaque segment.

Exemple : envoyer votre premier segment

Requête

curl -X POST \
    -F 'title={video-name}' \
    -F 'access_token={user-access-token}' \
    -F 'creative_folder_id={subfolder-id}' \
    -F 'upload_phase=transfer' \
    -F 'upload_session_id={session-id}' \
    -F 'start_offset=0' \
    -F 'video_file_chunk=@{binary-chunk-filename}' \
    https://graph-video.facebook.com/<API_VERSION>/<BUSINESS_ID>/videos

Réponse

En cas de réussite, nous répondons par les décalages de votre prochain segment.

{
  "start_offset": "52428800", //Start byte position of the next file chunk
  "end_offset": "104857601" //End byte position of the next file chunk
}

Coupez et importez le deuxième segment avec la plage [52428800, 104857601] depuis votre fichier et envoyez-le :

Requête

curl -X POST \
    -F 'title={video-name}' \
    -F 'access_token={user-access-token}' \
    -F 'creative_folder_id={subfolder-id}' \
    -F 'upload_phase=transfer' \
    -F 'start_offset=52428801' \
    -F 'upload_session_id={your-upload-sesson-id}' \
    -F 'video_file_chunk={binary-chunk-filename}' \
    https://graph-video.facebook.com/<API_VERSION>/<BUSINESS_ID>/videos

Réponse

Envoyez tous les segments supplémentaires jusqu’à ce que start_offset soit égal à end_offset :

{
 "start_offset": "152043520",
 "end_offset": "152043520"
}

La réponse ci-dessus signifie que vous avez importé le fichier dans son intégralité. Vous devez maintenant publier cette vidéo et terminer la session d’importation.

Requête

curl -X POST \
    -F 'title={video-name}' \
    -F 'access_token={user-access-token}' \
    -F 'creative_folder_id={business-creative-folder-id}' \
    -F 'upload_phase=finish' \
    -F 'upload_session_id={session-id}' \
    https://graph-video.facebook.com/<API_VERSION>/<BUSINESS_ID>/videos

Si vous obtenez des erreurs lors d’une importation, vous pouvez réessayer d’importer le segment concerné. En général, les erreurs sont dues à des problèmes de réponse. Recommencez votre importation pour le segment ayant échoué. Pour en savoir plus sur les erreurs, consultez :

Votre application doit informer l'utilisateur·ice que l’importation a réussi et présenter un lien profond vers ce contenu publicitaire derrière un call-to-action « Voir le contenu publicitaire dans ma bibliothèque d’éléments Facebook ». Le lien profond du dossier ou de l’élément est :

https://business.facebook.com/asset_library/business_creatives/?object_id={asset_id or folder id} (en cours de développement)

Ce lien renvoie l'utilisateur·ice vers la page de sélection de l’entreprise si l'utilisateur·ice a plusieurs Business Managers. Afin de lever toute ambiguïté quant à l’entreprise, vous pouvez fournir le contexte de l’entreprise dans l'URL comme suit :

https://business.facebook.com/asset_library/business_creatives/?object_id={asset_id or folder id}&business_id={client_business_id}

Vous pouvez également obtenir l’URL du lien profond en envoyant une requête GET au point de terminaison :

curl -X GET \
    /<folder_id or asset_id>
        ?fields=['media_library_url']
        &access_token=<user_access_token>

Le lien permet à l’utilisateur·ice d’accéder au dossier ou à l’élément directement sous la bibliothèque d’éléments Facebook.

6. Demande de partage du dossier avec vous (facultatif)

Vous pouvez demander que le dossier de premier niveau soit partagé avec vous si vous souhaitez gérer le dossier ou consulter les insights relatifs aux éléments. Envoyez une demande POST à : {business-creative-folder-id}/agencies et affectez permitted_tasks à CREATE_CONTENT.

Remarque : vous pouvez également affecter la tâche autorisée VIEW_INSIGHTS si l'utilisateur·ice accorde business_creative_insights_share à votre application (en cours de développement).

Partager le dossier

  • Nécessite l’autorisation business_creative_management

Requête

curl -X POST \
    -F 'permitted_tasks=['CREATE_CONTENT','VIEW_INSIGHTS']' \
    -F 'business={partner-business-id} ' \
    -F 'access_token={user-access-token}' https://graph.facebook.com/<API_VERSION>/<BUSINESS_CREATIVE_FOLDER_ID>/agencies

La réponse est de l’un des deux types suivants, selon le rôle de l’utilisateur·ice dans l’organisation de son entreprise :

1) Si le token du client représente un admin de l’entreprise :

L'API établira un accord de partenariat entre l'entreprise de l’utilisateur·ice et l'entreprise du client ou de la cliente.

Réponse

S’il existe un accord de partenariat établi entre l’entreprise de l’utilisateur·ice et votre entreprise (l’entreprise de l’utilisateur·ice a partagé un dossier avec vous, et vous avez accepté une demande de partage auparavant) :

{ 
    "success": true
}

Si vous n’avez pas encore accepté de demande de partage de la part de l’entreprise de l’utilisateur·ice :

{
    "success": true,
    "share_status": "In Progress"
}

Dans ce scénario, votre entreprise devra accepter la demande de partage avant de pouvoir accéder à toutes les fonctionnalités activées par le partage (affichage, création, etc.).

Pour répertorier tous les accords de partenariat en attente d'approbation, envoyez une demande à {business-id}/received_sharing_agreements en utilisant votre token d'accès partenaire et définissez request_status sur IN_PROGRESS. Pour effectuer cette action, vous devez disposer des autorisations business_creative_management et business_management.

Répertorier tous les accords de partenariat

Requête

curl -i -X GET https://graph.facebook.com/<API_VERSION>/<PARTNER_BUSINESS_ID>/received_sharing_agreements
    ?request_status=IN_PROGRESS
    &access_token={partner-access-token}"

Vous pouvez accepter une demande de partage en envoyant un POST à business_sharing_agreement_request_id et définir request_status sur APPROVE. L’action n’est nécessaire que lors du premier partage d’un dossier avec votre entreprise. Pour effectuer cette action, vous devez disposer de l’autorisation business_management :

Accepter les accords de partenariat

Requête

curl -X POST \
    -F 'request_status=APPROVE' \
    -F 'access_token={partner-access-token}' \
https://graph.facebook.com/<API_VERSION>/<BUSINESS_SHARING_AGREEMENT_REQUEST_ID>

Réponse

{ 
    "success": true
}

Vous pouvez également approuver les demandes de partage en attente dans l’UI de Business Manager. Pour consulter les demandes en attente dans Business Manager, accédez à Paramètres > Demandes > Demandes reçues, où vous pouvez voir plus d'informations sur la demande.


2) Si le token du client représente un·e employé·e de l’entreprise :

L'API déclenche un workflow de notification destiné à envoyer un e-mail de notification aux admins de l'entreprise afin qu'ils approuvent la demande.

Réponse

{
   "success": true,
   "share_status": "Pending"
}

En réponse à cet état, votre application doit informer l’utilisateur·ice des faits suivants :

  • une demande d'approbation de la demande de partage a été envoyée par e-mail à l'admin de l'entreprise
  • un autre e-mail a été envoyé à l'utilisateur·ice au sujet de la demande

Pour répertorier tous les accords en attente qui ont été initiés dans l'entreprise de l'utilisateur·ice, envoyez une demande à {business-id}/attempted_sharing_agreements et définissez request_status sur IN_PROGRESS, définissez requesting_business_id sur l'ID du Business Manager de l'utilisateur·ice. Pour exécuter cette action, vous devez disposer des autorisations business_creative_management et business_management.

Répertorier tous les accords de partage de dossiers en attente

Requête

curl -i -X GET \ https://graph.facebook.com/<API_VERSION>/<PARTNER_BUSINESS_ID>/attempted_sharing_agreements
    ?request_status=IN_PROGRESS
    &requesting_business_id=<user_business_id>
    &access_token={partner-access-token}

Répertorier tous les accords de partage de dossiers en attente avec l’ID de la demande

Sinon, si vous disposez de l'ID de la demande, vous pouvez obtenir directement le statut en envoyant une demande à {request_id}.

  • Nécessite l’autorisation business_creative_management

Requête

curl -i -X GET  \
    https://graph.facebook.com/<API_VERSION>/<REQUEST_ID>?fields=status

Lorsqu’un admin de l’entreprise approuve la demande, le statut passe à APPROVE, et le dossier est partagé à nouveau avec votre Business Manager si l’entreprise de l’utilisateur·ice et votre entreprise ont établi une relation d’accord de partage (l’entreprise de l’utilisateur·ice a partagé un dossier avec vous, et vous avez accepté une demande de partage auparavant). Sinon, le share_status est mis à jour sur IN_PROGRESS. Vous pouvez répertorier tous les accords de partenariat avec le statut IN_PROGRESS et les accepter via l'API ou dans l’UI du Business Manager.

7. Afficher les insights sur les images/vidéos (facultatif)

Lorsque l'utilisateur·ice partage un dossier avec l'autorisation de la tâche VIEW_INSIGHTS, vous pouvez lire les insights des images et vidéos d'entreprise sous le dossier partagé en envoyant une demande GET au point de terminaison <business_asset_id>/insights.

Insights relatifs aux éléments de contenu publicitaire

  • Nécessitent les autorisations business_creative_management et business_creative_insights.

Requête

curl -i -X GET  \
https://graph.facebook.com/<API_VERSION>/<BUSINESS_ASSET_ID>/insights
    ?breakdowns=["age","gender"]
    &fields=impressions,inline_link_clicks,age,gender,date_start,
    &time_range={"since":"2019-08-01","until":"2019-08-22"}
    &access_token={partner-access-token}"

Réponse

{
 "data": [
   {
     "impressions": 99,
     "inline_link_clicks": 1,
     "age": "18-24",
     "gender": "female",
     "date_start": "2019-08-01",
     "date_end": "2019-08-22"    },
   {
     "impressions": 198,
     "inline_link_clicks": 2,
     "age": "18-24",
     "gender": "male",
     "date_start": "2019-08-01",
     "date_end": "2019-08-22"    },
   {
     "impressions": 464,
     "inline_link_clicks": 2,
     "age": "25-34",
     "gender": "female",
     "date_start": "2019-08-01",
     "date_end": "2019-08-22"    },
 ]
}

La répartition peut être effectuée par :

  • gender
  • age
  • country
  • publisher_platform
  • platform_position
  • device_platform
  • ad_id
  • objective
  • optimization_goal
  • time_range (nécessite une date au format « AAAA-MM-JJ », ce qui implique un début à minuit de ce jour-là.)

Gérer un dossier partagé en utilisant directement un token de partenaire

Pour les partenaires de services géré·es, vous pouvez gérer le dossier de premier niveau à l'aide d'un token d'accès partenaire s’il a été partagé avec les tâches autorisées appropriées qui vous sont accordées :

  • L’autorisation de tâche CREATE_CONTENT sur le dossier, ce qui permet à votre application de créer des sous-dossiers et d’importer des images et des vidéos dans le dossier.
  • (Facultatif pour les utilisateur·ices) L’autorisation de tâche VIEW_INSIGHTS, que votre application peut utiliser pour voir les performances de tous les éléments de contenu publicitaire stockés dans ce dossier.

1. Vérifier l'autorisation du dossier parent

Appelez le point de terminaison <business_id>/creative_folders pour obtenir tous les dossiers parents qui sont partagés avec vous sous l'entreprise de l'utilisateur·ice.

  • Nécessite l’autorisation business_creative_management

Obtenir les dossiers de l'entreprise de l'utilisateur

Requête

curl -X GET \
     -F 'access_token={partner-access-token}' \  https://graph.facebook.com/<API_VERSION>/<partner_business_id>/creative_folders?filtering=[{field:"owner_business_id", operator:"EQUAL", value:"user_business_id"}]

Réponse

{ 
    "data": [
       { 
            "id": "<shared_folder_id>" 
       }
    ]
}

Obtenir les tâches autorisées dont vous disposez sur le dossier

Requête

curl -X GET \
 -F 'access_token={partner-access-token}' \
 https://graph.facebook.com/<API_VERSION>/<folder_id>/agencies

Réponse

{
 "data": [
   {
     "id": "<partner_business_id>",
     "name": "<partner business name>",
     "permitted_tasks": [
       "VIEW_INSIGHTS",
       "VIEW_CONTENT",
       "CREATE_CONTENT",
       "MANAGE_CONTENT",
       "MANAGE_PERMISSIONS"]
   }
 ],
}
  • L’autorisation de tâche CREATE_CONTENT est nécessaire pour importer des images et des vidéos dans un dossier partagé.
  • L’autorisation de tâche VIEW_INSIGHTS est nécessaire pour interroger les insights relatifs aux contenus publicitaires des images ou vidéos sous un dossier partagé

2. Créer un sous-dossier sous le dossier parent

Avec l'autorisation de tâche CREATE_CONTENT sur le dossier parent, vous pouvez créer un sous-dossier dans un dossier partagé.

  • Nécessite l’autorisation business_creative_management

Créer le sous-dossier

Requête

curl -X POST \
    -F "name={folder_name}"
    -F "description={description}"
    -F "parent_folder_id={parent-folder-id}"
    -F 'access_token={partner-access-token}' \
 https://graph.facebook.com/<API_VERSION>/<BUSINESS_ID>/creative_folders

Réponse

{
 "id": {subfolder-id}
}

3. Importer des images et des vidéos dans le sous-dossier

Suivez les mêmes étapes que celles indiquées dans l’Étape 5. Importer des images et des vidéos dans un sous-dossier à l’aide d’un token de partenaire.

Suivi de l’ID d’élément Facebook de l'image/la vidéo

Lorsque votre application importe une image ou une vidéo dans la bibliothèque d’éléments Facebook, l'API de Facebook renvoie un ID pour cet élément.

Afin d’assurer la continuité, votre application devra suivre l'ID de l’élément en fonction du projet/de l’espace de travail qui a produit cette image/vidéo dans votre application.

Cela permettra de rationaliser les prochains cas d'utilisation « modification » et « mise à jour » pris en charge, par exemple :

  • Un utilisateur ou une utilisatrice de votre application qui décide de continuer à modifier un élément après sa publication sur Facebook et son utilisation dans une publicité. L'utilisateur·ice sera invité·e à utiliser des processus rationalisés de « mise à jour » ou de « test par répartition » si votre application envoie l'ID de l’élément d’origine lors de l’importation d’une version mise à jour de l'image/la vidéo.
  • Dans le panneau Insights relatifs aux publicités Facebook, un utilisateur ou une utilisatrice a la possibilité de « modifier » son contenu publicitaire, notamment l'image/la vidéo qui renverra l'utilisateur·ice vers votre application, en indiquant l'ID de l’élément. Votre application sera alors en mesure d'ouvrir le projet ayant créé cet élément, permettant ainsi à l'utilisateur·ice de reprendre là où il ou elle s'était arrêté·e.

Fournir une URL de lien profond à Élément et créer des actions de publicité et de publication

URL du lien profond de l’élément

  • Interroger le champ media_library_url de l’élément image/vidéo importé

Requête

curl -X GET \
    -F 'access_token={partner-access-token}' \
https://graph.facebook.com/<API_VERSION>/<asset_id>?fields=media_library_url

URL de lien profond pour la création d’une publicité ou d’une publication de Page

  • Ajoutez &action=CREATE_AD ou &action=CREATE_POST à la fin du lien profond de l'étape précédente.

Exemple :

https://business.facebook.com/asset_library/business_creatives/?object_id=2838437832929622&action=CREATE_AD

Étapes suivantes