L'editor massivo nativo di Meta Ads Manager accetta un template XLSX che ti permette di creare o modificare campagne, ad set e ads compilando un foglio e importandolo. Vi accedi da Ads Manager > Import & Export. La funzionalità è gratuita, presente in ogni account pubblicitario, ed è lo stesso formato XLSX che Meta usa internamente per il suo flusso di export/re-import.
Questa è la guida di riferimento a quel template. Ogni colonna, ogni campo richiesto vs opzionale, la meccanica dell'image hash e dell'upload ZIP, i messaggi di errore a livello di riga e cosa significano realmente, e il pattern export → svuotare ID → re-import per spostare campagne tra account.
I bulk launcher di terze parti che pubblicano via Marketing API invece di XLSX sono una decisione separata con un proprio confronto. Questa guida resta sul flusso del foglio nativo.
Cos'è l'editor massivo nativo?
L'editor massivo nativo è la funzionalità Import & Export integrata in Meta Ads Manager. Accetta un template XLSX (anche CSV funziona per file più semplici) con una riga per oggetto - una riga per campagna, ad set e ad - e crea o aggiorna tutto ciò che è nel file in un'unica transazione.
Si trova in Ads Manager > Import & Export > Import Ads ed è disponibile su ogni account pubblicitario senza costi. Originariamente parte del Power Editor di Facebook - il tool solo desktop che gli inserzionisti legacy usavano fino a metà 2010 - l'editor massivo è stato integrato in Ads Manager quando il Power Editor è stato ritirato. Per questo alcuni team chiamano ancora la XLSX "template Power Editor".
Gestisce sia la creazione (righe con colonne ID vuote) sia gli update (righe con i Campaign / Ad Set / Ad ID originali intatti). Lo stesso file può mescolare le due cose: gli ID vuoti creano, gli ID compilati aggiornano, e Meta processa il file riga per riga.
Come funziona il bulk upload di Facebook Ads?
Il processo di bulk upload funziona attraverso fogli strutturati che comunicano dati di ads al sistema di Facebook. Ecco come:
1. Template del foglio
Per prima cosa compili un template Excel con colonne per campagne, ad set e ads. Ogni riga rappresenta un oggetto con tutti i suoi dettagli. Facebook fornisce template con i nomi colonne corretti, che differiscono leggermente dalla UI (per esempio "Body" per il testo dell'ad, "Title" per il titolo).
2. Import del file
In Ads Manager, clicca il pulsante Import/Export e scegli "Import Ads in Bulk". Puoi caricare il tuo file Excel/CSV o incollare i dati come testo. Il sistema esegue il parse del foglio e crea o aggiorna le campagne, ad set e ads specificate.
3. Caricamento delle creative
Per immagini e video hai due opzioni:
- Referenziare asset esistenti via Image Hash o Video ID
- Caricare asset nuovi insieme al foglio, singolarmente o come ZIP
La chiave: i nomi file nel foglio devono corrispondere ai file effettivamente caricati.
4. Elaborazione e validazione
Facebook elabora i dati e mostra un riepilogo di cosa è stato importato, inclusi warning o errori. I problemi minori appaiono come warning; quelli seri diventano errori bloccanti che impediscono l'import.
5. Review e pubblicazione
Dopo un import riuscito, le campagne appaiono in Ads Manager come bozze. Puoi rivedere tutto prima di cliccare "Publish" per rendere live le ads.
Il limite di dimensione file è di circa 2 MB, che tipicamente permette diverse centinaia di ads per import.
Il template di bulk upload: ogni colonna spiegata
I nomi colonne XLSX differiscono dalle label della UI di Ads Manager in modi che fanno inciampare gli utenti nuovi. "Body" è il testo principale. "Title" è il titolo. "Description" è la descrizione del link, non la descrizione dell'ad. Il riferimento completo:
Colonne a livello campagna
| Colonna | Significato | Formato |
|---|---|---|
| Campaign ID | ID campagna esistente per update | Lasciare vuoto per creare |
| Campaign Name | Etichetta della campagna | Testo libero |
| Campaign Objective | Buying objective | OUTCOME_SALES, OUTCOME_TRAFFIC, OUTCOME_LEADS, OUTCOME_AWARENESS, OUTCOME_ENGAGEMENT, OUTCOME_APP_PROMOTION |
| Campaign Status | Campagna attiva/in pausa | ACTIVE o PAUSED |
| Buying Type | Asta o riservato | AUCTION (default) o RESERVED |
| Campaign Daily Budget | Budget giornaliero a livello campagna | Intero in unità minima, senza simbolo di valuta (es. 5000 per 50,00 €) |
| Campaign Lifetime Budget | Budget totale a livello campagna | Stesso formato del giornaliero |
| Campaign Bid Strategy | Strategia di ottimizzazione | LOWEST_COST_WITHOUT_CAP, LOWEST_COST_WITH_BID_CAP, COST_CAP |
| Special Ad Categories | Categorie ristrette | CREDIT, EMPLOYMENT, HOUSING, ISSUES_ELECTIONS_POLITICS, o vuoto |
Colonne a livello ad set
| Colonna | Significato | Formato |
|---|---|---|
| Ad Set ID | ID ad set esistente per update | Lasciare vuoto per creare |
| Ad Set Name | Etichetta dell'ad set | Testo libero |
| Ad Set Daily Budget | Budget giornaliero a livello ad set | Intero in unità minima |
| Ad Set Lifetime Budget | Budget totale a livello ad set | Intero in unità minima |
| Ad Set Run Status | Ad set attivo/in pausa | ACTIVE o PAUSED |
| Start Time | Inizio dello schedule | ISO 8601 (es. 2026-06-01T00:00:00+0000) |
| End Time | Fine dello schedule | ISO 8601 |
| Optimization Goal | Su cosa Meta ottimizza | OFFSITE_CONVERSIONS, LINK_CLICKS, REACH, IMPRESSIONS, THRUPLAY, etc. |
| Billing Event | Quando vieni addebitato | IMPRESSIONS, LINK_CLICKS, THRUPLAY |
| Bid Amount | Bid per strategie con cap | Unità minima, vuoto per lowest-cost |
| Pixel ID | Pixel di conversion | Richiesto per OFFSITE_CONVERSIONS |
| Conversion Event | Evento pixel ottimizzato | PURCHASE, LEAD, COMPLETE_REGISTRATION, etc. |
| Conversion Window | Finestra di attribution | 1d_view, 7d_click, 1d_click_1d_view, etc. |
| Countries | Targeting geografico | Codici ISO-3166-1 alpha-2, separati da virgola (es. IT, FR, ES) |
| Cities | Targeting per città | Testo libero con paese (es. Milano, Lombardia, IT) |
| Age Min / Age Max | Fascia d'età | Interi 13-65 |
| Gender | Targeting per genere | All, Men, Women |
| Locales | Targeting linguistico | ID numerici di locale Meta |
| Interests | Targeting dettagliato | ID di interesse separati da virgola |
| Custom Audiences | Audience incluse | ID di audience separati da virgola |
| Excluded Custom Audiences | Audience escluse | ID di audience separati da virgola |
| Placements | Dove vengono mostrate le ads | Separati da virgola (es. facebook_feed, instagram_feed, facebook_reels, instagram_stories) |
| Device Platforms | Targeting per dispositivo | mobile, desktop o entrambi |
Colonne a livello ad
| Colonna | Significato | Formato |
|---|---|---|
| Ad ID | ID ad esistente per update | Lasciare vuoto per creare |
| Ad Name | Etichetta dell'ad | Testo libero |
| Ad Status | Ad attiva/in pausa | ACTIVE o PAUSED |
| Title | Testo del titolo | Un titolo per riga, o più per DCO |
| Body | Testo principale | Il copy principale sopra la creative |
| Link | URL di destinazione | URL completo con https:// |
| Display Link | URL di visualizzazione abbreviato | URL vanity opzionale |
| Caption | Caption dell'URL | Piccolo testo opzionale sotto il titolo |
| Description | Descrizione del link | Testo secondario opzionale |
| Call to Action | Pulsante CTA | SHOP_NOW, LEARN_MORE, SIGN_UP, GET_OFFER, etc. |
| Image Hash | Riferimento a immagine della library | Hash hex di 32 caratteri |
| Video ID | Riferimento a video della library | ID numerico di video Meta |
| Image File Name | Riferimento a nuovo upload immagine | Deve corrispondere a un nome nel bundle di upload |
| Thumbnail URL | Override del thumbnail video | URL completo |
| URL Tags | Da appendere all'URL di destinazione | Stringhe stile utm_source=facebook&utm_medium=cpc |
| Tracking Pixel IDs | Tracking di conversion | ID pixel che devono scattare per questa ad |
| Instagram Account ID | Identità IG | Richiesto per placement IG |
| Page ID | Identità Facebook Page | Richiesto per tutte le ads Meta |
Per ads Dynamic Creative, il template aggiunge colonne di varianti ripetute: Additional Headline 1-5, Additional Body 1-5, Additional Image 1-5. Il massimo per variante varia in base al placement e all'obiettivo.
Le colonne richieste cambiano in base all'obiettivo. Il flusso più pulito: crea manualmente un'ad minimale nel tuo obiettivo target, esportala come template iniziale e usa quel file come baseline - ogni colonna richiesta sarà già pre-compilata nel formato corretto.
Per cosa il flusso XLSX è bravo (e per cosa no)
L'editor massivo XLSX nativo è costruito per alcuni lavori specifici e goffo in altri. Conoscere la differenza fa risparmiare ore di lotta con il template.
Casi forti:
- Edit massivi su molte ads - aggiornare URL di destinazione, UTM tag, copy o budget su centinaia di righe editando una singola colonna.
- Ricostruzioni di campagne da template - replicare una struttura collaudata per un nuovo mercato o cliente.
- Trasferimento tra account - esportare da un account, svuotare gli ID e re-importare altrove.
- Review offline e versioning - condividere un piano campagna via XLSX, tracciare i diff, ottenere approvazioni prima del publish.
Casi scomodi:
- Formati di ad più recenti - alcune varianti Advantage+, Catalog DCO e nuovi placement non si esprimono completamente nello schema XLSX; la UI di Meta è l'unica fonte completa.
- Testing ad alta velocità - il loop copy-paste tra foglio e Ads Manager aggiunge attrito non appena lanci più di ~20 ads alla settimana.
- Controllo del thumbnail per singola creative - puoi impostare una thumbnail URL, ma non puoi fare la preview dei frame né scegliere tra opzioni generate come nella UI.
- Preservazione dell'engagement del Post ID - vengono creati nuovi post all'import, quindi like e commenti non vengono trasferiti.
Per tutto ciò che è nella colonna "Casi forti", la XLSX nativa è lo strumento giusto e non c'è motivo di cercare oltre.
Guida passo-passo al bulk upload
Passo 1: Scarica il template
Vai su Ads Manager e clicca Import/Export. Scegli "Download Template" per nuove campagne o "Export" per modificarne di esistenti.

Passo 2: Compila i dati
Apri il file Excel e inserisci i dettagli di campagna, ad set e ad. Punti chiave:
- Lascia vuoti i campi ID per nuovi elementi
- Includi gli ID quando modifichi elementi esistenti
- Assicurati che tutti i campi richiesti siano completi
- Fai un match esatto dei nomi file immagine
Passo 3: Importa in Ads Manager
Clicca di nuovo Import/Export e seleziona "Import Ads in Bulk". Carica il tuo file e i nuovi asset creativi.
Passo 4: Rivedi il riepilogo dell'import
Controlla successi, warning ed errori. Correggi i problemi nel foglio e re-importa se necessario.
Passo 5: Pubblica le modifiche
Rivedi gli elementi in bozza in Ads Manager e clicca "Publish" per renderli live.
(Pro tip: inizia con un piccolo batch di test per assicurarti che il formato sia corretto prima di scalare a centinaia di ads.
Image Hash, Video ID e il flusso ZIP
Le creative sono la parte più soggetta a errore degli import XLSX perché ci sono tre modi per attaccare media a una riga e non si comportano allo stesso modo.
Tre modi per attaccare una creative
1. Image Hash (asset esistente nella library). Ogni immagine che hai mai caricato in un account pubblicitario Meta riceve un hash hex di 32 caratteri. Inseriscilo nella colonna Image Hash e la riga punta all'asset esistente - niente re-upload, niente file ZIP. Trovi un hash creando manualmente un'ad con l'immagine, esportando quell'ad come XLSX e copiando l'hash dall'export. La Marketing API espone gli hash direttamente via /act_{account_id}/adimages, ma estrarli dalla UI è la via no-code.
2. Video ID (asset esistente nella library). Stessa idea per il video. Il Video ID è una lunga stringa numerica che Meta assegna quando carichi nella video library dell'account. Referenzialo nella colonna Video ID e salti il re-upload.
3. Match per nome file (nuovo upload). Metti un nome file (es. summer_promo_4x5.jpg) nella colonna Image File Name. Quando clicchi Import Ads in Bulk, Meta ti chiede di allegare i file singoli o un unico archivio ZIP contenente tutti i nomi referenziati. I nomi devono corrispondere carattere per carattere, estensione inclusa, case-sensitive.
Fallimenti silenziosi comuni
- Whitespace finale nella cella Image File Name - Excel conserva spazi invisibili che rompono il match. Trimma le celle prima di salvare.
- Metadata di archivio Mac - zippare su macOS aggiunge voci
__MACOSX/e.DS_Store. Meta di solito le ignora, ma alcuni tool ZIP includono resource fork (._filename.jpg) che sembrano nomi file al matcher. Usazip -Xdal terminale, o rimuovi i metadata prima dell'upload. - Maiuscole/minuscole non coincidenti -
Summer_promo.jpgnel foglio vssummer_promo.jpgsul disco fallisce silenziosamente. Standardizza in minuscolo. - Riferimenti misti in una riga - compilare sia Image Hash sia Image File Name nella stessa riga produce comportamento indefinito. Scegli uno per riga.
Errori duri
- File totale supera il cap XLSX di 2 MB → dividi l'import.
- Nome file referenziato ma non caricato → riga bloccata fino alla risoluzione.
- Image Hash da un altro account pubblicitario → bloccato, gli hash sono legati all'account.
- Video ID ancora in elaborazione → riga bloccata con errore "video not ready".
Per batch ripetuti con gli stessi asset, incolla hash e ID invece di re-uploadare. Evita il cap di 2 MB ed elimina un'intera classe di errori sui nomi file.
Leggere il riepilogo dell'import: errori vs warning
Dopo l'upload, Meta mostra un riepilogo per riga. Due esiti contano:
Warning lasciano passare l'import. Comuni:
- "Placement not available for selected objective" - Meta pubblica l'ad ma salta il placement non supportato. Spesso sicuro da ignorare, ma vale la pena controllare che il placement voluto non sia stato silenziosamente droppato.
- "Bid amount unusually low" - solo informativo, il bid è accettato così com'è.
- "Field will be ignored for this objective" - hai compilato una colonna che non si applica (es. Conversion Event in una campagna TRAFFIC). Innocuo.
Errori bloccano l'import. Comuni e il fix a livello di riga:
- "Invalid combination of objective and optimization goal" - la tua colonna Optimization Goal non combacia con la Campaign Objective. Ri-esporta un ad set valido con l'obiettivo target per vedere quali optimization goal Meta accetta.
- "Pixel not found" - il Pixel ID nella riga non appartiene a questo account pubblicitario, o l'account non ha il permesso di asset corretto. Conferma in Business Settings che il pixel è condiviso con l'account.
- "Image hash not found" - hash da un altro account, o l'asset è stato cancellato. O re-uploada via Image File Name, o copia l'hash da un nuovo export dell'account sorgente.
- "Filename not provided" - Image File Name referenzia un file che non era incluso nello ZIP allegato o negli upload singoli.
- "Cannot update fields on existing object" - stai cercando di cambiare un campo immutabile (es. Campaign Objective di una campagna esistente). Svuota le colonne ID per creare una nuova campagna, o ripristina quella cella al valore originale.
- "Ad set conflicts with campaign budget optimization" - la campagna usa CBO quindi Ad Set Daily Budget / Lifetime Budget devono essere vuoti. Svuota quelle colonne nelle righe in conflitto.
- "Special Ad Category restricted targeting" - campagne credit/employment/housing vietano i campi età, genere e targeting dettagliato. Rimuovi quelle colonne per quelle righe.
Re-importa dopo aver corretto; i warning si trascinano dal tentativo precedente solo per righe non modificate.
Trasferimento di campagne tra account via Export → Re-import
Meta non ha un pulsante "copia campagna in un altro account pubblicitario". Il pattern export XLSX → svuotare ID → re-import è il workaround ufficiale.
Passo per passo
- Esporta la campagna sorgente. Ads Manager > seleziona la campagna > Import & Export > Export Selected.
- Apri il file e svuota tutte le colonne ID. Cancella ogni valore in Campaign ID, Ad Set ID e Ad ID. Lascia intatte le intestazioni di colonna. Gli ID compilati cercherebbero di aggiornare, non di creare.
- Sostituisci gli identificatori specifici dell'account. Questi non viaggiano tra account:
- Page ID - sostituisci con il Facebook Page ID dell'account di destinazione.
- Pixel ID - sostituisci con il pixel dell'account di destinazione (oppure condividi il pixel sorgente via Business Settings se vuoi attribution condivisa).
- Instagram Account ID - sostituisci con l'identità IG dell'account di destinazione.
- Custom Audience IDs - sostituisci con audience dell'account di destinazione. Le Custom Audience non si trasferiscono se non sono condivise via asset sharing del Business Manager.
- Catalog ID - sostituisci se usi DPA / Advantage+ Catalog.
- Sostituisci o svuota il targeting di placement se l'account di destinazione non ha accesso agli stessi placement.
- Importa nell'account di destinazione. Cambia prima account pubblicitario in Ads Manager, poi Import Ads in Bulk.
- Re-uploada o re-referenzia le creative. Gli image hash e i Video ID sono legati all'account. O carica i file da zero, o copiali tramite la Media Library di Meta.
- Rivedi la bozza e pubblica.
Cosa non viaggia
- Dati di fase di learning - la nuova campagna riavvia il learning da zero.
- Engagement del post - like, commenti e share rimangono attaccati al post sorgente; le ads importate creano nuovi post.
- Performance storiche - gli Insights della campagna sorgente restano nell'account sorgente.
- Segnali di ottimizzazione a livello account - il pixel dell'account di destinazione ha solo lo storico di conversion accumulato in modo indipendente.
Il pattern di trasferimento è abbastanza affidabile da essere il flusso raccomandato per l'offboarding di agenzie white-label. Vedi la nostra guida ai Facebook Ads white-label per il playbook di handover più ampio.
Errori comuni da evitare
Mescolare Crea vs Aggiorna
ID vuoti creano, ID compilati aggiornano. Mescolarli in un file va bene - ma lasciare per sbaglio un ID in una riga che volevi duplicare sovrascriverà l'ad originale.
Formati di colonna sbagliati
Le colonne richieste cambiano in base all'obiettivo. Esporta sempre un'ad funzionante nell'obiettivo target e usala come baseline.
Nomi file non coincidenti
Maiuscole, underscore, estensioni e whitespace finale contano tutti. Standardizza in minuscolo, senza spazi, e trimma le celle prima di salvare.
Ignorare i messaggi di errore
Gli errori sono a livello di riga ed espliciti. Leggi il numero di riga e la colonna, correggi quella cella, re-importa.
Superare la dimensione file
Il limite XLSX di 2 MB si raggiunge sorprendentemente in fretta nelle campagne Dynamic Creative con molte colonne varianti. Dividi in batch più piccoli.
Cercare di editare campi immutabili
Campaign Objective, Buying Type e alcuni altri campi sono immutabili una volta fissati. L'import bloccherà la riga. Crea invece una nuova campagna con il nuovo valore.
Quando il flusso XLSX smette di scalare
La via XLSX è eccellente fino a circa 20 ads alla settimana. Oltre, passerai più tempo a fare copy-paste tra foglio e Ads Manager di quanto il formato te ne faccia risparmiare - lookup di Image Hash, iterazioni sugli errori, matching dei nomi file e il cap di 2 MB iniziano tutti a dominare. I team che lanciano in volumi maggiori si spostano tipicamente su un bulk launcher basato su Marketing API che salta del tutto lo step XLSX. Il confronto dei trade-off vive nella nostra guida agli 11 migliori bulk launcher di ads; questa guida resta sul template nativo.
Domande frequenti
Il bulk upload di Facebook è gratuito?
Sì. Il bulk upload nativo di Meta Ads Manager (Import & Export) è gratuito per tutti gli inserzionisti. È lo stesso template XLSX che Meta usa internamente.
Quante ads posso caricare in una volta?
Il limite pratico è di diverse centinaia di ads per file a causa del cap di 2 MB sulla dimensione del file. Per volumi maggiori, dividi il lavoro su più import.
Qual è il nome esatto della colonna per il testo principale dell'ad nel template XLSX?
Body. Il template usa Body per il testo principale, Title per il titolo, Caption per la caption dell'URL e Description per la descrizione del link. I nomi delle colonne differiscono dalle label che vedi nella UI di Ads Manager, quindi controlla sempre il template esportato, non le etichette dei campi in-app.
Perché il mio import XLSX continua a fallire sul mismatch del nome file?
La colonna Image File Name deve corrispondere al nome del file caricato carattere per carattere, inclusi estensione e maiuscole/minuscole. Un singolo underscore, uno spazio finale o una differenza di maiuscola interrompe silenziosamente il collegamento tra la riga del foglio e l'asset. Carica gli asset in un ZIP con i nomi esattamente referenziati, oppure incolla l'Image Hash / Video ID invece di usare i nomi file.
Mi serve un template XLSX diverso per campagne di conversion vs traffic?
Usi lo stesso template, ma le colonne richieste cambiano in base all'obiettivo. Le campagne di conversion hanno bisogno di Pixel ID, Conversion Event e Conversion Window compilati. Gli obiettivi traffic ed engagement possono lasciarli vuoti. Il flusso più pulito è creare prima un ad set manualmente con l'obiettivo scelto, poi esportarlo come template iniziale così tutte le colonne richieste arrivano pre-compilate.
Posso modificare ads esistenti con il bulk upload?
Sì. Esporta le ads che vuoi modificare, edita le celle nel foglio, lascia intatti i valori di Ad ID / Ad Set ID / Campaign ID e re-importa. Gli ID compilati dicono a Meta di aggiornare; gli ID vuoti dicono a Meta di creare.
Posso mantenere l'engagement del Post ID quando re-importo un'ad?
No. Il flusso XLSX nativo crea un nuovo post per ogni ad importata, quindi like, commenti e share ripartono da zero. Preservare la social proof richiede il flusso Page Post ID, che il template XLSX non espone direttamente. Vedi la nostra guida ai Facebook Post ID per il workaround.
Posso caricare immagini e video in massa?
Sì. Puoi referenziare asset esistenti dalla library con il loro Image Hash o Video ID, oppure caricare nuovi file insieme alla XLSX. I nuovi file si caricano singolarmente o come un unico archivio ZIP con nomi file che corrispondono alla colonna Image File Name del foglio.
Posso duplicare campagne tra account pubblicitari diversi?
Sì. Esporta dall'account sorgente, svuota tutte le colonne ID, sostituisci i valori specifici dell'account (Page ID, Pixel ID, Custom Audience IDs, Instagram Account ID) e poi importa nell'account di destinazione. Lo storico di performance e l'engagement del post non viaggiano con la copia.
Cosa succede se incontro errori durante l'import?
Meta restituisce messaggi di errore a livello di riga con la colonna problematica. Correggi le celle indicate nel riepilogo, salva la XLSX e re-importa. I warning lasciano passare l'import; gli errori lo bloccano fino alla risoluzione.
Conclusione
L'editor massivo XLSX nativo è lo strumento giusto per ricostruzioni da template, edit di massa, trasferimenti tra account e qualunque flusso in cui contino la review offline e il versioning. Il glossario delle colonne, la meccanica dell'image hash e i pattern del riepilogo errori sopra sono il riferimento a cui tornerai ogni volta che il template si comporta in modo inatteso.
Se il tuo volume settimanale di lanci ha superato il flusso del foglio, il confronto dei bulk launcher basati su Marketing API vive in una guida separata. Altrimenti l'editor massivo nativo resta gratuito, supportato da Meta e pienamente sufficiente per tutto ciò per cui è stato progettato.
