El editor masivo nativo de Meta Ads Manager acepta una plantilla XLSX que te permite crear o editar campañas, ad sets y anuncios rellenando una hoja de cálculo e importándola. Accedes a ella en Ads Manager > Import & Export. La función es gratis, viene con cada cuenta publicitaria y es el mismo formato XLSX que Meta usa internamente para su flujo de export/re-import.
Esta es la guía de referencia de esa plantilla. Cada columna, cada campo requerido vs opcional, la mecánica del image hash y la carga ZIP, los mensajes de error a nivel de fila y lo que realmente significan, y el patrón export → vaciar IDs → re-import para mover campañas entre cuentas.
Los launchers masivos de terceros que publican vía Marketing API en lugar de XLSX son una decisión aparte con su propia comparativa. Esta guía se queda en el flujo de hoja de cálculo nativo.
¿Qué es el editor masivo nativo?
El editor masivo nativo es la función Import & Export integrada en Meta Ads Manager. Acepta una plantilla XLSX (CSV también funciona para archivos más simples) con una fila por objeto - una fila por campaña, ad set y anuncio - y crea o actualiza todo lo que hay en ese archivo en una sola transacción.
Está en Ads Manager > Import & Export > Import Ads, y está disponible en cualquier cuenta publicitaria sin coste. Originalmente parte del Power Editor de Facebook - la herramienta solo de escritorio que los anunciantes legacy usaron hasta mediados de los 2010 - el editor masivo se integró en Ads Manager cuando se retiró Power Editor, por eso algunos equipos siguen llamando a la XLSX "plantilla Power Editor".
Maneja tanto creación (filas con columnas de ID vacías) como actualizaciones (filas con los Campaign / Ad Set / Ad IDs originales intactos). El mismo archivo puede mezclar ambos: IDs vacíos crean, IDs rellenos actualizan, y Meta procesa el archivo fila a fila.
¿Cómo funciona la carga masiva de Facebook Ads?
El proceso de carga masiva funciona a través de hojas de cálculo estructuradas que comunican datos de anuncios al sistema de Facebook. Así funciona:
1. Plantilla de hoja de cálculo
Primero rellenas una plantilla Excel con columnas para campañas, ad sets y anuncios. Cada fila representa un objeto con todos sus detalles. Facebook entrega plantillas con los nombres de columna correctos, que difieren ligeramente de la UI (por ejemplo, "Body" para el texto del anuncio, "Title" para el titular).
2. Importar el archivo
En Ads Manager, haz clic en el botón Import/Export y elige "Import Ads in Bulk". Puedes subir tu archivo Excel/CSV o pegar los datos como texto. El sistema parsea la hoja y crea o actualiza las campañas, ad sets y anuncios especificados.
3. Subir creatividades
Para imágenes y videos tienes dos opciones:
- Referenciar assets existentes usando Image Hash o Video ID
- Subir assets nuevos junto a la hoja, individualmente o como ZIP
La clave: los nombres de archivo de tu hoja deben coincidir con los archivos que subes.
4. Procesamiento y validación
Facebook procesa los datos y muestra un resumen de lo importado, incluyendo advertencias o errores. Los problemas menores aparecen como advertencias; los serios se convierten en errores bloqueantes que impiden la importación.
5. Revisar y publicar
Tras una importación exitosa, las campañas aparecen en Ads Manager como borradores. Puedes revisar todo antes de pulsar "Publish" para activar los anuncios.
El límite de tamaño es de unos 2 MB, lo que normalmente permite varios cientos de anuncios por importación.
La plantilla de carga masiva: cada columna explicada
Los nombres de columna de la XLSX difieren de las etiquetas de la UI de Ads Manager de formas que hacen tropezar a usuarios nuevos. "Body" es texto principal. "Title" es el titular. "Description" es la descripción del enlace, no la descripción del anuncio. La referencia completa:
Columnas a nivel de campaña
| Columna | Significado | Formato |
|---|---|---|
| Campaign ID | ID de campaña existente para updates | Dejar vacío para crear |
| Campaign Name | Etiqueta de la campaña | Texto libre |
| Campaign Objective | Buying objective | OUTCOME_SALES, OUTCOME_TRAFFIC, OUTCOME_LEADS, OUTCOME_AWARENESS, OUTCOME_ENGAGEMENT, OUTCOME_APP_PROMOTION |
| Campaign Status | Campaña activa/pausada | ACTIVE o PAUSED |
| Buying Type | Subasta o reservado | AUCTION (por defecto) o RESERVED |
| Campaign Daily Budget | Presupuesto diario a nivel de campaña | Número entero en unidad mínima, sin símbolo de moneda (p. ej. 5000 para 50,00 €) |
| Campaign Lifetime Budget | Presupuesto total a nivel de campaña | Mismo formato que el diario |
| Campaign Bid Strategy | Estrategia de optimización | LOWEST_COST_WITHOUT_CAP, LOWEST_COST_WITH_BID_CAP, COST_CAP |
| Special Ad Categories | Categorías restringidas | CREDIT, EMPLOYMENT, HOUSING, ISSUES_ELECTIONS_POLITICS, o vacío |
Columnas a nivel de ad set
| Columna | Significado | Formato |
|---|---|---|
| Ad Set ID | ID de ad set existente para updates | Dejar vacío para crear |
| Ad Set Name | Etiqueta del ad set | Texto libre |
| Ad Set Daily Budget | Presupuesto diario a nivel de ad set | Número entero en unidad mínima |
| Ad Set Lifetime Budget | Presupuesto total a nivel de ad set | Número entero en unidad mínima |
| Ad Set Run Status | Ad set activo/pausado | ACTIVE o PAUSED |
| Start Time | Inicio del schedule | ISO 8601 (p. ej. 2026-06-01T00:00:00+0000) |
| End Time | Fin del schedule | ISO 8601 |
| Optimization Goal | Para qué optimiza Meta | OFFSITE_CONVERSIONS, LINK_CLICKS, REACH, IMPRESSIONS, THRUPLAY, etc. |
| Billing Event | Cuándo se factura | IMPRESSIONS, LINK_CLICKS, THRUPLAY |
| Bid Amount | Puja para estrategias con cap | Unidad mínima, vacío para lowest-cost |
| Pixel ID | Pixel de conversión | Requerido para OFFSITE_CONVERSIONS |
| Conversion Event | Evento del pixel optimizado | PURCHASE, LEAD, COMPLETE_REGISTRATION, etc. |
| Conversion Window | Ventana de atribución | 1d_view, 7d_click, 1d_click_1d_view, etc. |
| Countries | Targeting geográfico | Códigos ISO-3166-1 alpha-2, separados por coma (p. ej. ES, MX, AR) |
| Cities | Targeting por ciudad | Texto libre con país (p. ej. Madrid, Madrid, ES) |
| Age Min / Age Max | Rango de edad | Enteros 13-65 |
| Gender | Targeting por género | All, Men, Women |
| Locales | Targeting por idioma | IDs numéricas de locale de Meta |
| Interests | Targeting detallado | IDs de intereses separadas por coma |
| Custom Audiences | Audiencias incluidas | IDs de audiencia separadas por coma |
| Excluded Custom Audiences | Audiencias excluidas | IDs de audiencia separadas por coma |
| Placements | Dónde se muestran los anuncios | Separados por coma (p. ej. facebook_feed, instagram_feed, facebook_reels, instagram_stories) |
| Device Platforms | Targeting de dispositivo | mobile, desktop o ambos |
Columnas a nivel de anuncio
| Columna | Significado | Formato |
|---|---|---|
| Ad ID | ID de anuncio existente para updates | Dejar vacío para crear |
| Ad Name | Etiqueta del anuncio | Texto libre |
| Ad Status | Anuncio activo/pausado | ACTIVE o PAUSED |
| Title | Texto del titular | Un titular por fila, o varios para DCO |
| Body | Texto principal | El copy principal sobre la creatividad |
| Link | URL de destino | URL completa con https:// |
| Display Link | URL de visualización acortada | URL vanity opcional |
| Caption | Caption de URL | Texto pequeño opcional bajo el titular |
| Description | Descripción del enlace | Texto secundario opcional |
| Call to Action | Botón CTA | SHOP_NOW, LEARN_MORE, SIGN_UP, GET_OFFER, etc. |
| Image Hash | Referencia a imagen de la library | Hash hex de 32 caracteres |
| Video ID | Referencia a video de la library | ID numérica de video de Meta |
| Image File Name | Referencia a nueva imagen subida | Debe coincidir con un nombre del bundle de subida |
| Thumbnail URL | Override de thumbnail de video | URL completa |
| URL Tags | Anexar a la URL de destino | Strings tipo utm_source=facebook&utm_medium=cpc |
| Tracking Pixel IDs | Tracking de conversión | IDs de pixel que deben dispararse para este anuncio |
| Instagram Account ID | Identidad de IG | Requerido para placements de IG |
| Page ID | Identidad de Facebook Page | Requerido para todos los anuncios de Meta |
Para anuncios Dynamic Creative, la plantilla añade columnas de variantes repetidas: Additional Headline 1-5, Additional Body 1-5, Additional Image 1-5. El máximo por variante varía según placement y objetivo.
Las columnas requeridas cambian según el objetivo. El flujo más limpio: crea manualmente un anuncio mínimo en tu objetivo, expórtalo como plantilla inicial y usa ese archivo como baseline - cada columna requerida vendrá ya rellena con el formato correcto.
Para qué sirve bien el flujo XLSX (y para qué no)
El editor masivo XLSX nativo está hecho para algunos trabajos específicos y es torpe en otros. Saber la diferencia te ahorra horas peleándote con la plantilla.
Buenos encajes:
- Ediciones masivas entre muchos anuncios - actualizar URLs de destino, UTM tags, copy o presupuestos en cientos de filas editando una sola columna.
- Reconstrucciones de campaña por plantilla - replicar una estructura conocida para un mercado o cliente nuevo.
- Transferencia entre cuentas - exportar de una cuenta, vaciar IDs y reimportar en otra.
- Revisión offline y control de versiones - compartir un plan de campaña vía XLSX, trackear diffs, conseguir aprobación antes de publicar.
Encajes incómodos:
- Formatos de anuncio más nuevos - algunos Advantage+, Catalog DCO y variantes de placement nuevas no se expresan completas en el esquema XLSX; la UI de Meta es la única fuente completa.
- Testing de alta velocidad - el bucle copy-paste entre hoja y Ads Manager añade fricción en cuanto lanzas más de ~20 anuncios por semana.
- Control de thumbnail por creatividad - puedes poner una URL de thumbnail, pero no puedes previsualizar frames ni elegir entre opciones generadas como hace la UI.
- Preservar engagement del Post ID - al importar se crean posts nuevos, así que likes y comentarios no viajan.
Para todo lo de la columna "Buenos encajes", la XLSX nativa es la herramienta correcta y no hay razón para buscar más.
Guía paso a paso de carga masiva
Paso 1: Descarga la plantilla
Ve a Ads Manager y haz clic en Import/Export. Elige "Download Template" para campañas nuevas o "Export" para modificar existentes.

Paso 2: Rellena los datos
Abre el archivo Excel e introduce los detalles de campaña, ad set y anuncio. Puntos clave:
- Deja los campos de ID vacíos para items nuevos
- Incluye IDs al editar items existentes
- Asegúrate de que todos los campos requeridos están completos
- Haz match exacto en los nombres de archivo de imagen
Paso 3: Importa a Ads Manager
Vuelve a Import/Export y selecciona "Import Ads in Bulk". Sube tu archivo y los nuevos assets creativos.
Paso 4: Revisa el resumen de importación
Comprueba éxitos, advertencias y errores. Corrige los problemas en tu hoja y reimporta si es necesario.
Paso 5: Publica los cambios
Revisa los items en borrador en Ads Manager y haz clic en "Publish" para activarlos.
(Tip pro: empieza con un batch pequeño de prueba para asegurarte de que el formato es correcto antes de escalar a cientos de anuncios.
Image Hashes, Video IDs y el flujo ZIP
Las creatividades son la parte más propensa a fallar de las importaciones XLSX porque hay tres formas de adjuntar media a una fila y no se comportan igual.
Tres formas de adjuntar una creatividad
1. Image Hash (asset existente en la library). Cada imagen que has subido alguna vez a una cuenta de Meta tiene un hash hex de 32 caracteres. Mételo en la columna Image Hash y la fila apunta al asset existente - sin reupload, sin ZIP. Encuentra un hash creando manualmente un anuncio con la imagen, exportando ese anuncio como XLSX y copiando el hash del export. La Marketing API expone los hashes directamente vía /act_{account_id}/adimages, pero sacarlos por la UI es la ruta sin código.
2. Video ID (asset existente en la library). Misma idea para video. La Video ID es un string numérico largo que Meta asigna cuando subes a la video library de la cuenta. Referénciala en la columna Video ID y te saltas el reupload.
3. Coincidencia por nombre de archivo (subida nueva). Pon un nombre de archivo (p. ej. summer_promo_4x5.jpg) en la columna Image File Name. Al pulsar Import Ads in Bulk, Meta te pide adjuntar los archivos sueltos o un único ZIP con todos los nombres referenciados. Los nombres deben coincidir carácter por carácter, extensión incluida, sensible a mayúsculas/minúsculas.
Fallos silenciosos comunes
- Whitespace al final en la celda Image File Name - Excel conserva espacios invisibles que rompen el match. Trimea las celdas antes de guardar.
- Metadata de archivos Mac - comprimir en macOS añade entradas tipo
__MACOSX/y.DS_Store. Meta suele ignorarlas, pero algunas herramientas ZIP incluyen resource forks (._filename.jpg) que parecen nombres de archivo al matcher. Usazip -Xen la terminal o limpia metadata antes de subir. - Mayúsculas/minúsculas no coincidentes -
Summer_promo.jpgen la hoja vssummer_promo.jpgen disco falla silenciosamente. Estandariza a minúscula. - Referencias mezcladas en una fila - rellenar Image Hash e Image File Name en la misma fila produce comportamiento indefinido. Elige una por fila.
Errores duros
- El archivo total supera el cap XLSX de 2 MB → divide la importación.
- Nombre referenciado pero no subido → fila bloqueada hasta que se resuelva.
- Image Hash de otra cuenta publicitaria → bloqueado, los hashes son por cuenta.
- Video ID aún procesándose → fila bloqueada con error "video not ready".
Para batches repetidos con los mismos assets, pega los hashes e IDs en lugar de reuploadear. Evita el cap de 2 MB y elimina toda una clase de errores de nombre de archivo.
Leer el resumen de importación: errores vs advertencias
Tras la subida, Meta muestra un resumen por fila. Importan dos salidas:
Advertencias dejan pasar la importación. Comunes:
- "Placement not available for selected objective" - Meta publica el anuncio pero salta el placement no soportado. Suele ser seguro ignorarlo, pero conviene comprobar que el placement que querías no se ha caído silenciosamente.
- "Bid amount unusually low" - solo informativa, la puja se acepta tal cual.
- "Field will be ignored for this objective" - rellenaste una columna que no aplica (p. ej. Conversion Event en una campaña TRAFFIC). Inofensiva.
Errores bloquean la importación. Comunes y el fix a nivel de fila:
- "Invalid combination of objective and optimization goal" - tu columna Optimization Goal no encaja con la Campaign Objective. Re-exporta un ad set válido con el objetivo deseado para ver qué optimization goals acepta Meta.
- "Pixel not found" - el Pixel ID de la fila no pertenece a esta cuenta publicitaria, o la cuenta no tiene el permiso de asset correcto. Confirma en Business Settings que el pixel está compartido con la cuenta.
- "Image hash not found" - hash de otra cuenta, o el asset fue borrado. O reuploadea vía Image File Name o copia el hash desde un nuevo export de la cuenta origen.
- "Filename not provided" - Image File Name referencia un archivo que no se incluyó en el ZIP adjunto o las subidas sueltas.
- "Cannot update fields on existing object" - intentas cambiar un campo inmutable (p. ej. Campaign Objective de una campaña existente). Vacía las columnas de ID para crear una nueva campaña, o revierte esa celda a su valor original.
- "Ad set conflicts with campaign budget optimization" - la campaña usa CBO, así que Ad Set Daily Budget / Lifetime Budget deben estar vacíos. Vacía esas columnas en las filas en conflicto.
- "Special Ad Category restricted targeting" - las campañas de credit/employment/housing no permiten campos de edad, género ni targeting detallado. Quita esas columnas para esas filas.
Reimporta tras corregir; las advertencias se arrastran del intento anterior solo para filas no modificadas.
Transferencia de campañas entre cuentas vía Export → Re-Import
Meta no tiene un botón "copiar campaña a otra cuenta publicitaria". El patrón export XLSX → vaciar IDs → re-import es el workaround oficial.
Paso a paso
- Exporta la campaña origen. Ads Manager > selecciona la campaña > Import & Export > Export Selected.
- Abre el archivo y vacía todas las columnas de ID. Borra cada valor de Campaign ID, Ad Set ID y Ad ID. Deja las cabeceras intactas. Los IDs rellenos intentarían actualizar, no crear.
- Intercambia identificadores específicos de cuenta. Estos no viajan entre cuentas:
- Page ID - reemplaza con la Facebook Page ID de la cuenta destino.
- Pixel ID - reemplaza con el pixel de la cuenta destino (o comparte el pixel origen vía Business Settings si quieres atribución compartida).
- Instagram Account ID - reemplaza con la identidad IG de la cuenta destino.
- Custom Audience IDs - reemplaza con audiencias de la cuenta destino. Las Custom Audiences no se transfieren salvo que estén compartidas vía asset sharing de Business Manager.
- Catalog ID - reemplaza si usas DPA / Advantage+ Catalog.
- Intercambia o vacía el targeting de placement si la cuenta destino no tiene acceso a los mismos placements.
- Importa en la cuenta destino. Cambia primero de cuenta publicitaria en Ads Manager, después Import Ads in Bulk.
- Reuploadea o re-referencia las creatividades. Image hashes y Video IDs son por cuenta. O sube los archivos de nuevo, o cópialos vía Media Library de Meta.
- Revisa el borrador y publica.
Lo que no viaja
- Datos de fase de learning - la campaña nueva empieza learning desde cero.
- Engagement del post - likes, comentarios y shares quedan asociados al post origen; los anuncios importados crean posts nuevos.
- Performance histórica - los Insights de la campaña origen se quedan en la cuenta origen.
- Señales de optimización a nivel de cuenta - el pixel de la cuenta destino solo tiene el historial de conversiones que haya acumulado por sí mismo.
El patrón de transferencia es lo bastante fiable como para ser el flujo recomendado para offboarding de agencias white-label. Mira nuestra guía de Facebook Ads white-label para el playbook de handover más amplio.
Errores comunes a evitar
Mezclar Crear vs Actualizar
IDs vacíos crean, IDs rellenos actualizan. Mezclarlos en un archivo está bien - pero dejar un ID por accidente en una fila que querías duplicar sobrescribirá el anuncio original.
Formatos de columna incorrectos
Las columnas requeridas cambian según el objetivo. Exporta siempre un anuncio funcional en el objetivo deseado y úsalo como baseline.
Nombres de archivo no coincidentes
Mayúsculas, guiones bajos, extensiones y whitespace al final, todo cuenta. Estandariza a minúscula, sin espacios, y trimea celdas antes de guardar.
Ignorar mensajes de error
Los errores son a nivel de fila y explícitos. Lee el número de fila y la columna, corrige esa celda, reimporta.
Superar el tamaño de archivo
El límite XLSX de 2 MB se alcanza sorprendentemente rápido en campañas Dynamic Creative con muchas columnas de variantes. Divide en batches más pequeños.
Intentar editar campos inmutables
Campaign Objective, Buying Type y algunos otros campos son inmutables una vez fijados. La importación bloqueará la fila. Crea una campaña nueva con el nuevo valor.
Cuándo el flujo XLSX deja de escalar
La ruta XLSX es excelente hasta unos 20 anuncios por semana. Por encima, pasas más tiempo copiando-pegando entre la hoja y Ads Manager del que el formato te ahorra - búsquedas de Image Hash, iteraciones de errores, matching de nombres de archivo y el cap de 2 MB empiezan todos a dominar. Los equipos que lanzan en mayor volumen suelen moverse a un launcher masivo basado en Marketing API que se salta el paso XLSX completamente. La comparativa de trade-offs vive en nuestra guía de los 11 mejores launchers masivos de anuncios; esta guía se queda en la plantilla nativa.
Preguntas frecuentes
¿La carga masiva de Facebook es gratis?
Sí. La carga masiva nativa de Meta Ads Manager (Import & Export) es gratis para todos los anunciantes. Es la misma plantilla XLSX que Meta usa internamente.
¿Cuántos anuncios puedo subir a la vez?
El límite práctico son varios cientos de anuncios por archivo por el tope de 2 MB de tamaño de archivo. Para volúmenes mayores, divide tu trabajo en varias importaciones.
¿Cuál es el nombre exacto de la columna para el texto principal del anuncio en la plantilla XLSX?
Body. La plantilla usa Body para el texto principal, Title para el titular, Caption para la caption de URL y Description para la descripción del enlace. Los nombres de columna difieren de las etiquetas que ves en la UI de Ads Manager, así que revisa siempre la plantilla exportada, no las etiquetas de campo en la app.
¿Por qué mi importación XLSX falla por el nombre de archivo?
La columna Image File Name tiene que coincidir con el nombre del archivo subido carácter por carácter, incluyendo extensión y mayúsculas/minúsculas. Un solo guion bajo, un espacio al final o una diferencia de mayúscula rompe silenciosamente la conexión entre la fila de la hoja y el asset. O bien sube los assets en un ZIP con los nombres exactos referenciados, o pega el Image Hash / Video ID en lugar de usar nombres de archivo.
¿Necesito una plantilla XLSX diferente para campañas de conversión vs tráfico?
Usas la misma plantilla, pero las columnas requeridas difieren según el objetivo. Las campañas de conversión necesitan rellenas las columnas Pixel ID, Conversion Event y Conversion Window. Los objetivos de tráfico y engagement pueden dejarlas vacías. El flujo más limpio es crear primero un ad set manualmente en el objetivo elegido y luego exportarlo como plantilla inicial para que todas las columnas requeridas vengan precargadas.
¿Puedo editar anuncios existentes con carga masiva?
Sí. Exporta los anuncios que quieras cambiar, edita las celdas en la hoja de cálculo, deja intactos los valores de Ad ID / Ad Set ID / Campaign ID y reimporta. Los IDs rellenos le dicen a Meta que actualice; los IDs vacíos le dicen que cree.
¿Puedo mantener el engagement del Post ID al reimportar un anuncio?
No. El flujo XLSX nativo crea un post nuevo por cada anuncio importado, así que likes, comentarios y shares empiezan en cero. Preservar la prueba social requiere el flujo de Page Post ID, que la plantilla XLSX no expone directamente. Mira nuestra guía de Facebook Post ID para el workaround.
¿Puedo subir imágenes y videos en masa?
Sí. Puedes referenciar assets existentes de la library por su Image Hash o Video ID, o subir archivos nuevos junto con la XLSX. Los archivos nuevos se suben individualmente o como un único archivo ZIP con nombres que coinciden con la columna Image File Name de tu hoja.
¿Puedo duplicar campañas entre cuentas publicitarias distintas?
Sí. Exporta desde la cuenta origen, vacía todas las columnas de ID, intercambia los valores específicos de cuenta (Page ID, Pixel ID, Custom Audience IDs, Instagram Account ID) y luego importa en la cuenta destino. El historial de rendimiento y el engagement del post no viajan con la copia.
¿Qué pasa si encuentro errores durante la importación?
Meta devuelve mensajes de error a nivel de fila con la columna afectada. Corrige las celdas que el resumen señala, guarda la XLSX y reimporta. Las advertencias dejan pasar la importación; los errores la bloquean hasta que se resuelvan.
Conclusión
El editor masivo XLSX nativo es la herramienta correcta para reconstrucciones por plantilla, ediciones masivas, transferencias entre cuentas y cualquier flujo donde importen la revisión offline y el control de versiones. El glosario de columnas, la mecánica del image hash y los patrones de resumen de errores arriba son la referencia a la que volverás cada vez que la plantilla se comporte de forma inesperada.
Si tu volumen semanal de lanzamientos ha superado el flujo de hoja de cálculo, la comparativa de launchers masivos basados en Marketing API vive en una guía aparte. Si no, el editor masivo nativo sigue siendo gratis, soportado por Meta y completamente suficiente para todo aquello para lo que fue diseñado.
