L'estensione Facebook Business (FBE) consente ai tuoi utenti di caricare facilmente le risorse creative nel gruppo di app di Meta collegandosi con un Business Manager nuovo o esistente. Utilizzando il Business Manager restituito dopo il completamento di questo flusso, i partner possono caricare le risorse creative su Facebook per conto dei propri clienti:
Questo documento illustra i prerequisiti principali per il flusso delle creatività FBE insieme ai passaggi necessari per completare la procedura. Fai riferimento alla guida all'estensione Facebook Business per dettagli specifici sulle integrazioni complessive.
Esempio: flusso di registrazione dalla piattaforma partner (Business Login)
Registrati come sviluppatore di Facebook per accedere agli strumenti per gli sviluppatori e creare app di Facebook.
Se non l'hai ancora fatto, crea un'app di Meta.
La tua app di Meta deve essere di proprietà di un Business Manager con azienda verificata. Ulteriori informazioni su come verificare l'azienda.
Crea un'app test e usala per tutte le nuove operazioni di sviluppo e test. Assicurati di assegnare un altro Business Manager alla tua app test.
Funzionalità/Autorizzazioni private:
manage_business_extension
: accesso all'estensione Facebook Business. Dopo aver emesso questa funzionalità nella tua app, puoi trovare il Panel per sviluppatori FBE in Prodotti.
Business_creative_asset_management
: accesso alle API di gestione delle risorse correlate alle creatività. Con questa funzionalità, puoi avere accesso alle seguenti autorizzazioni:
business_creative_insights
: consente di accedere agli insight delle risorse delle creatività di Business Manager.
business_creative_management
: consente alla tua app di creare, modificare e condividere nuove cartelle e caricare risorse in queste ultime nel contesto della tua entità aziendale.
business_creative_insights_share
(in fase di sviluppo): un'autorizzazione facoltativa utilizzata nel flusso di condivisione delle cartelle. Se tale autorizzazione è stata concessa dall'utente, la tua app potrà condividere la cartella delle creatività con altre aziende e consentire loro di visualizzare gli insight delle risorse delle creatività.
Genera un token d'accesso del partner:
Genera un token d'accesso dell'utente di sistema con funzioni avanzate nel tuo Business Manager seguendo queste istruzioni.
Assicurati che questo token abbia le autorizzazioni business_creative_insights
, business_creative_management
e business_management
selezionate nel passaggio "ambiti disponibili".
Questo pulsante viene utilizzato per inviare una risorsa alla libreria di Facebook Media dell'utente dalla tua app. Durante questa procedura, l'app dovrà consentire all'utente di selezionare o creare una cartella a cui inviare la risorsa.
Ti consigliamo due approcci per eseguire questa azione:
1. (Come requisito minimo) Solo l'utente può scegliere o creare una cartella di livello principale. Nel contesto aziendale selezionato, effettua una query a tutte le cartelle di livello principale a cui l'utente ha accesso. Chiedi all'utente di scegliere una cartella di livello principale esistente o di crearne una nuova. Gli utenti possono specificare il nome della cartella o utilizzare il nome della cartella predefinita <YourBusinessName>_<UserBusinessName>_<UserName>
. Carica le risorse nella cartella di livello principale selezionata o in quella nuova. Questo approccio richiede un lavoro minimo sull'interfaccia utente e i dettagli dell'API sono disponibili nel Passaggio 3 di seguito.
2. (Facoltativo) L'utente dispone di un controllo completo dell'accesso alle cartelle e alle sottocartelle. Nel contesto aziendale selezionato, effettua una query a tutte le cartelle di livello principale a cui l'utente ha accesso e chiedi all'utente di scegliere una cartella di livello principale esistente o di crearne una nuova. Per una nuova cartella, chiedi all'utente di assegnare un nome alla cartella o di utilizzare il nome predefinito <YourBusinessName>_<UserBusinessName>_<UserName>
. Nella cartella di livello principale selezionata, l'utente può accedere a una sottocartella esistente, crearne una nuova o caricare le risorse. Con questa opzione, dovrai implementare l'accesso alle cartelle nell'interfaccia utente. Le istruzioni per l'integrazione dell'API sono disponibili nel Passaggio 3 e nel Passaggio 4 di seguito.
I passaggi specifici necessari per implementare questo flusso sono i seguenti:
Quando l'utente invia una risorsa delle creatività a Facebook per la prima volta, devi richiedere a Facebook Business Extension di chiedere all'utente di autenticarsi e concedere alla tua app le autorizzazioni necessarie e l'accesso alle risorse, sotto forma di token d'accesso, per accedere ai suoi dati su Facebook. Consulta Facebook Business Extension: Primi passi per l'implementazione di Facebook Business Extension nella tua app. Segui la guida delle App aziendali per abilitare la tua app ad apparire tra le App aziendali.
Per richiedere il flusso delle creatività:
business_creative_management
e business_creative_insights
business_creative_insights_share
VIEW_INSIGHTS
Utilizzando il token d'accesso dell'utente restituito da questa richiesta, puoi effettuare chiamate API per conto dell'utente.
Campo | Tipo | Descrizione |
---|---|---|
| setup | Obbligatorio La configurazione di Facebook del venditore, come il suo identificativo unico ( |
| business_config | Obbligatorio L'oggetto di configurazione utilizzato da Facebook Business Extension per configurare il flusso di lavoro di Facebook Business Extension. Fai riferimento ai dettagli sull'oggetto |
| booleano | Obbligatorio Imposta questo valore su |
Usa questo oggetto per definire le impostazioni per la presenza su Facebook dell'utente finale.
Campo | Descrizione |
---|---|
| Obbligatorio. |
| Obbligatorio. |
| Obbligatorio. |
| Obbligatorio. |
| Obbligatorio.
|
| Facoltativo. |
Usa questo oggetto per configurare le impostazioni aziendali per un utente finale. Include CTA, scheda Servizi e altro ancora. Ogni campo include un "tipo" collegato alle rispettive tabelle in basso.
Campo | Descrizione |
---|---|
| Obbligatorio. |
Utilizza questo oggetto per configurare il nome delle aziende.
Campo | Descrizione |
---|---|
| Obbligatorio. |
Dopo il completamento del flusso di registrazione con FBE da parte dell'utente precedente, riceverai l'ID Business Manager dell'utente e il token d'accesso dall'API FBE Installation o dalla notifica webhook.
Gli utenti possono caricare risorse nella cartella di livello principale o creare sottocartelle al suo interno.
Innanzitutto, controlla per quali cartelle di livello principale l'utente dispone dell'autorizzazione per l'attività CREATE_CONTENT
, effettuando la richiesta all'endpoint <business_id>/creative_folders
(in fase di sviluppo).
Richiesta
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"}]
Risposta
{ "id": "<folder_id>" }
Chiedi all'utente di scegliere una cartella di livello principale esistente o di crearne una nuova nel contesto del Business Manager dell'utente. Per una nuova cartella di livello principale, chiedi all'utente di assegnare un nome alla cartella o di utilizzare <YourBusinessName>_<UserBusinessName>_<UserName>
per impostazione predefinita. Se l'utente condivide la cartella con te, sarà visibile sia al tuo Business Manager sia a quello dell'utente nella libreria delle risorse di Facebook.
Nota: il nome dell'azienda dell'utente può essere ottenuto effettuando una richiesta GET
all'endpoint {business-id}
dove {business-id}
corrisponde all'ID dell'azienda dell'utente.
Richiesta
curl -X GET \ -F 'access_token={user-access-token}' \ https://graph.facebook.com/<API_VERSION>/<BUSINESS_ID>
Risposta
{ "id": {business-id} "name": {user-business-name} }
Richiesta
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
Risposta
{ "id": {top-level-folder-id} }
Se desideri supportare il flusso completo di accesso alla cartella, chiedi all'utente di scegliere una sottocartella esistente o di crearne una nuova nella cartella di livello principale con le seguenti richieste:
business_creative_management
Richiesta
curl -X GET \ -F 'access_token={user-access-token}' \ https://graph.facebook.com/<API_VERSION>/<parent_folder_id>/subfolders?fields=name
Risposta
{ "data": [ { "name": "<subfolder_name>", "id": "<subfolder_id>" } ] }
business_creative_management
Richiesta
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
Risposta
{ "id": {sub-folder-id} }
La cartella e la sottocartella possono essere eliminate effettuando una richiesta DELETE
all'endpoint <folder_id>
o <subfolder_id>
.
Carica le risorse delle creatività dell'utente nella sottocartella.
business_creative_management
Richiesta
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
Risposta
{ "images":{ "{image-name}":{ "id":"{business-creative-image-id}", "hash":"{hash}", "url":"{image-url}" } } }
Carica un video in una singola richiesta se è inferiore a pochi megabyte oppure caricalo in porzioni (vedi la sezione successiva di seguito). Effettua la chiamata API per il caricamento del video su graph-video.facebook.com
invece di graph.facebook.com
.
Esempio: invia una richiesta POST
a {business-id}/video
e includi il nome del tuo video, l'origine e l'ID della sottocartella.
Richiesta
curl -X POST \ -F 'name={video-name}' \ -F 'source='@{video-path}'' \ -F 'access_token={user-access-token}' \ -F 'creative_folder_id={subfolder-id}' \ https://graph-video.facebook.com/{version}/{business-id}/videos
Risposta
{ "success": true, "business_video_id": "<business_video_id>" }
Per i video di dimensioni maggiori, invia una richiesta di avvio, una o più richieste di trasferimento e una richiesta di completamento.
Per effettuare una richiesta di avvio e creare una sessione di caricamento di video, invia una richiesta POST
a /{business-id}/videos
, imposta il campo upload_phase
su avvio e specifica file_size
in byte
Richiesta
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
Risposta
{ "upload_session_id": "{session-id}", "video_id": "{video-id}", "start_offset": "0", "end_offset": "52428800" }
Per caricare [0, 52428800] dal tuo video, suddividi il file in porzioni in base agli offset di inizio e fine, quindi invia quelle porzioni con le richieste di trasferimento. Ti inviamo nuovi offset per ogni porzione: usa questi nuovi offset per caricare ogni porzione.
Esempio: invia la prima porzione
Richiesta
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
Risposta
In caso di azione eseguita correttamente, rispondiamo con gli offset per la porzione successiva
{ "start_offset": "52428800", //Start byte position of the next file chunk "end_offset": "104857601" //End byte position of the next file chunk }
Taglia e carica la seconda porzione con l'intervallo [52428800, 104857601] dal tuo file e inviala:
Richiesta
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
Risposta
Invia tutte le porzioni aggiuntive fino a quando start_offset
non corrisponde a end_offset
:
{ "start_offset": "152043520", "end_offset": "152043520" }
La risposta precedente significa che hai caricato l'intero file. Ora devi pubblicare questo video e chiudere la sessione di caricamento.
Richiesta
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
Se ricevi degli errori durante un caricamento, puoi riprovare a caricare quella porzione specifica. Di solito, gli errori sono dovuti a problemi di risposta. Riprova a caricare la porzione non riuscita. Per maggiori informazioni sugli errori, consulta:
La tua app dovrebbe informare l'utente che il caricamento è riuscito e presentare un deep link per questa creatività dietro una call to action "Visualizza creatività nella mia libreria delle risorse di Facebook". Il deep link della cartella o della risorsa è:
https://business.facebook.com/asset_library/business_creatives/?object_id={asset_id or folder id}
(in fase di sviluppo)
Questo link indirizza l'utente alla pagina di selezione dell'azienda se l'utente ha più Business Manager. Per rimuovere l'ambiguità aziendale, puoi fornire il contesto aziendale nell'URL nel modo seguente:
https://business.facebook.com/asset_library/business_creatives/?object_id={asset_id or folder id}&business_id={client_business_id}
Inoltre, l'URL del deep link può essere ottenuto effettuando una richiesta GET
all'endpoint:
curl -X GET \ /<folder_id or asset_id> ?fields=['media_library_url'] &access_token=<user_access_token>
Il link consente all'utente di accedere alla cartella o alla risorsa direttamente nella libreria delle risorse di Facebook.
Puoi richiedere la condivisione della cartella di livello principale con te se desideri gestire la cartella o visualizzare gli insight per le risorse. Invia una richiesta POST
a: {business-creative-folder-id}/agencies
e assegna permitted_tasks
a CREATE_CONTENT
.
Nota: puoi anche assegnare l'attività consentita VIEW_INSIGHTS
se l'utente concede business_creative_insights_share
alla tua app (in fase di sviluppo).
business_creative_management
Richiesta
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 risposta è espressa in uno dei due tipi a seconda del ruolo dell'utente nella propria organizzazione aziendale:
L'API stabilirà un accordo di partnership tra l'azienda dell'utente e l'azienda del cliente.
Risposta
Se esiste un accordo di partnership stabilito tra l'azienda dell'utente e la tua azienda (l'azienda dell'utente ha condiviso una cartella con te e in precedenza hai accettato una richiesta di condivisione):
{ "success": true }
Se non hai ancora accettato alcuna richiesta di condivisione dal Business Manager dell'utente:
{ "success": true, "share_status": "In Progress" }
In questo scenario, il tuo Business Manager dovrà accettare la richiesta di condivisione prima di poter accedere a tutte le funzionalità abilitate dalla condivisione (visualizzazione, creazione e così via).
Per elencare tutti gli accordi di partnership in attesa di approvazione, invia una richiesta a {business-id}/received_sharing_agreements
utilizzando il token d'accesso del partner e imposta request_status
su IN_PROGRESS
. Hai bisogno delle autorizzazioni business_creative_management
e business_management
per questa azione.
Lista di tutti gli accordi di partnership
Richiesta
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}"
Puoi accettare una richiesta di condivisione inviando una richiesta POST
a business_sharing_agreement_request_id
e impostando request_status
su APPROVE
. Devi effettuare questa operazione solo la prima volta che qualcuno condivide una cartella con il tuo Business Manager. Hai bisogno dell'autorizzazione business_management
per questa azione:
Accettazione di accordi di partnership
Richiesta
curl -X POST \ -F 'request_status=APPROVE' \ -F 'access_token={partner-access-token}' \ https://graph.facebook.com/<API_VERSION>/<BUSINESS_SHARING_AGREEMENT_REQUEST_ID>
Risposta
{ "success": true }
In alternativa, puoi approvare le richieste di condivisione in attesa nell'interfaccia utente di Business Manager. Per vedere le richieste in attesa in Business Manager, accedi a Impostazioni > Richieste > Richieste ricevute, dove puoi vedere maggiori informazioni sulla richiesta.
L'API attiva un flusso di lavoro Notifica per inviare una notifica e-mail agli amministratori di Business Manager per approvare la richiesta.
Risposta
{ "success": true, "share_status": "Pending" }
In risposta a questo stato, la tua app deve informare l'utente che:
Per elencare tutti gli accordi in attesa che sono stati aperti nel Business Manager dell'utente, invia una richiesta a {business-id}/attempted_sharing_agreements
e imposta request_status
su IN_PROGRESS
, imposta requesting_business_id
sull'ID Business Manager dell'utente. Hai bisogno delle autorizzazioni business_creative_management
e business_management
per questa azione.
Lista di tutti gli accordi di condivisione delle cartelle in attesa
Richiesta
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}
Lista di tutti gli accordi di condivisione delle cartelle in attesa con l'ID richiesta
In alternativa, se hai l'ID richiesta, puoi ottenere direttamente lo stato inviando una richiesta a {request_id}
.
business_creative_management
Richiesta
curl -i -X GET \ https://graph.facebook.com/<API_VERSION>/<REQUEST_ID>?fields=status
Quando un amministratore di Business Manager approva la richiesta, lo stato cambia in APPROVE
e la cartella viene condivisa con il tuo Business Manager se l'azienda dell'utente e la tua azienda hanno stabilito una relazione con un accordo di condivisione (l'azienda utente ha condiviso una cartella con te e in precedenza hai accettato una richiesta di condivisione). Altrimenti, share_status
viene aggiornato in IN_PROGRESS
. Puoi elencare tutti gli accordi di partnership con lo stato IN_PROGRESS
e accettarli tramite l'API o nell'interfaccia utente di Business Manager.
Quando l'utente condivide una cartella con te con l'autorizzazione per l'attività VIEW_INSIGHTS
, puoi leggere gli insight su immagini e video dell'azienda nella cartella condivisa ed effettuando una richiesta GET
all'endpoint <business_asset_id>/insights
.
business_creative_management
e business_creative_insights
.Richiesta
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}"
Risposta
{ "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" }, ] }
I dettagli possono essere:
gender
age
country
publisher_platform
platform_position
device_platform
ad_id
objective
optimization_goal
time_range
(richiede una data nel formato "AAAA-MM-GG", che significa dall'inizio della mezzanotte di quel giorno specifico).Per i partner di servizi con contratto, puoi gestire la cartella di livello principale con un token d'accesso del partner se la cartella è stata condivisa con te con attività consentite corrette che ti concedono:
CREATE_CONTENT
sulla cartella, che consente alla tua app di creare sottocartelle e caricare immagini e video nella cartella.VIEW_INSIGHTS
, che la tua app può utilizzare per visualizzare gi insight sulle prestazioni di qualsiasi risorsa creativa archiviata in questa cartella.Chiamare l'endpoint <business_id>/creative_folders
per ottenere tutte le cartelle principali che sono state condivise con te nell'azienda dell'utente.
business_creative_management
Recupero delle cartelle dall'azienda dell'utente
Richiesta
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"}]
Risposta
{ "data": [ { "id": "<shared_folder_id>" } ] }
Recupero delle attività consentite di cui si dispone nella cartella
Richiesta
curl -X GET \ -F 'access_token={partner-access-token}' \ https://graph.facebook.com/<API_VERSION>/<folder_id>/agencies
Risposta
{ "data": [ { "id": "<partner_business_id>", "name": "<partner business name>", "permitted_tasks": [ "VIEW_INSIGHTS", "VIEW_CONTENT", "CREATE_CONTENT", "MANAGE_CONTENT", "MANAGE_PERMISSIONS"] } ], }
CREATE_CONTENT
è obbligatoria per caricare immagini e video in una cartella condivisaVIEW_INSIGHTS
è obbligatoria per interrogare gli insight delle creatività di immagini o video in una cartella condivisaCon l'autorizzazione dell'attività CREATE_CONTENT
nella cartella principale, puoi creare una sottocartella in una cartella condivisa.
business_creative_management
Creazione della sottocartella
Richiesta
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
Risposta
{ "id": {subfolder-id} }
Segui gli stessi passaggi elencati nel Passaggio 5. Carica le immagini e i video nella sottocartella con il token del partner.
Quando la tua app carica un'immagine o un video nella libreria delle risorse di Facebook, l'API di Facebook restituirà un ID per quella risorsa specifica.
Per facilitare la continuità, la tua app dovrà monitorare l'ID della risorsa rispetto al progetto/spazio di lavoro che ha prodotto questa immagine/questo video nella tua app.
In questo modo saranno consentiti casi d'uso di "modifica" e "aggiornamento" semplificati, che saranno supportati in futuro, ad esempio:
media_library_url
della risorsa immagine/video caricataRichiesta
curl -X GET \ -F 'access_token={partner-access-token}' \ https://graph.facebook.com/<API_VERSION>/<asset_id>?fields=media_library_url
&action=CREATE_AD
o &action=CREATE_POST
alla fine del deep link del passaggio precedente.Esempio:
https://business.facebook.com/asset_library/business_creatives/?object_id=2838437832929622&action=CREATE_AD