Sheets Import — Bulk creative generation from Google Sheets
Sheets Import lets you connect a Google Sheets file to a campaign and generate creatives at scale — one row in your sheet produces one creative. When your data changes, you can re-sync the sheet to update your creatives without rebuilding the campaign from scratch.
When to use Sheets Import
Sheets Import is built for situations where you'd otherwise be building dozens or hundreds of near-identical creatives by hand. Common use cases:
Product catalogue campaigns — a retailer running an end-of-season sale across 80 SKUs, where each creative shows a different product image, name, and price pulled from the same product feed
Localised campaigns across markets — one campaign rolled out across 12 countries, where each row in the sheet represents a language version with translated copy, localised CTA and a market-specific landing page
Multi-size production from a media plan — a media plan that already lists every required size and placement variation per creative concept; the sheet becomes the source of truth and the import generates all sizes at once
Recurring campaigns with rotating content — a weekly or monthly campaign where the structure stays the same and only the assets, copy, or destination URLs change between runs
Asset updates across a live ad set — needing to swap out 50+ creatives' hero image or CTA URL after a brand refresh or a price change, without touching each creative individually
If your workflow already starts in a spreadsheet — a media plan, a translation matrix, a product feed export — Sheets Import is the fastest path from that spreadsheet to live creatives in NEXD.
Before you start
Sheets Import works with Creative Masters — a special type of creative that acts as a template. Before connecting a sheet, you need at least one Creative Master set up in your campaign.
A Creative Master is a regular creative that has been marked as a Master. It defines the asset slot names that you will map your sheet columns to. Creative Masters cannot be published directly — they exist only as templates for the creatives the import generates.
To mark a creative as a Master:
Open your campaign and create a new creative (or use an existing one).
In the creative settings, enable the Master toggle.
Name your asset slots clearly — these names will appear in the mapping interface. Names that match or closely resemble your sheet column headers will make mapping faster.
You can have multiple Creative Masters in one campaign with different layouts or sizes. The import will generate each creative using whichever Master you reference in the sheet.
[Screenshot — Creative settings with the Master toggle enabled, showing named asset slots]
Step 1 — Prepare your Google Sheet
Your file must be a Google Sheets file. If your data is currently in Excel (.xlsx) or another format, convert it first: open the file in Google Drive and click File → Save as Google Sheets. Use the converted Google Sheets version for the import.
Structure your sheet so each row represents one creative. Put column headers in the first row. NEXD reads the first tab of the file and treats the first row as the header row automatically — keep all the data you want to import on that first tab.
Only include data you want to import. Sheets Import doesn't support excluding rows or columns at import time, so the sheet should contain only the rows and columns you want turned into creatives. Helper tabs, working notes, or scratch columns will be ignored as long as they're not on the first tab and not in the header row.
At a minimum, your sheet needs columns for:
Creative name — what the generated creative will be called in your campaign
Creative Master — add the Master Creative name to your Google Sheet exactly as it appears in NEXD Campaign Manager. This is how each row knows which Master to base its creative on. Names must match character-for-character (including casing and spaces).
You can also include columns for creative size, platform / DSP, asset slots, click actions, and trackers. These are mapped in a later step. Anything you leave out of the sheet falls back to the Master's settings — for example, if you don't include a size or DSP column, every generated creative inherits those values from the Master it references.
One tab or multiple tabs?
Same Master, different content (different copy, different images, different sizes) — keep everything on one tab, one row per creative. The asset slot count is the same across rows, so a single tab works.
Different Masters with different asset slot counts — use a separate sheet (or a new import) per Master. Because the column structure depends on the Master's asset slots, mixing Masters with different slot counts on the same tab will leave empty cells and complicate mapping. The cleanest approach is one tab per Master structure.
Assets must be hosted at a public URL. A URL is the only accepted source for assets — you cannot upload files directly through the sheet. Two requirements for any URL you reference:
The URL must be publicly accessible — no login, no restricted sharing. If you're linking to assets stored in Google Drive, set sharing to Anyone with the link for each file. Restricted files will fail to load in the generated creatives.
The asset at the URL must match the Master's spec — correct dimensions, supported file format, and within file size limits for the slot it's mapped to. Assets that don't match the Master's spec will fail validation.
[Screenshot — example Google Sheet with rows for Creative Name, Creative Master, asset URL columns, and click action / tracker columns]
Step 2 — Add a Data Connection
Open the campaign where your Creative Masters are set up.
Click Data Connection. The Data Integration modal opens.
Click Import from Google Sheets and complete the Google authentication flow. You'll be asked to grant Read and Write access to your Google Drive. Write access is needed so NEXD can write the generated ad IDs back to your sheet after import.
Once authenticated, select the Google Sheets file you want to connect.
NEXD will automatically read the first tab of the file and use the first row as column headers.
[Screenshot — Data Integration modal with the "Import from Google Sheets" option highlighted]
Step 3 — Map your columns
This is where you connect your sheet columns to creative fields and asset slots. The interface shows the fields on the left and lets you select the matching sheet column on the right.
Required fields — must be mapped before you can import:
Creative Name — the column containing the name for each creative
Creative Master — the column referencing which Master creative each row is based on
Optional fields — mapped if you have them in your sheet, otherwise inherited from the Master:
Creative Size — if unmapped, the size of the referenced Master is used
Platform / DSP — the target platform for each creative; if unmapped, the Master's DSP setting is used
Asset slots — the interface shows the combined list of asset slot names across all Creative Masters in your campaign. Map each slot to the sheet column containing the relevant asset URL:
master_1_asset_1→ [your sheet column]master_1_asset_2→ [your sheet column]
Click Actions — map globally (applies to all assets in the creative) or per individual asset slot:
Global click action → [your sheet column]
Per-slot click action → [your sheet column]
Tracking — impression and click trackers can be mapped globally or per asset slot:
Impression Tracker (Global) → [your sheet column]
Impression Tracker (per slot) → [your sheet column]
Click Tracker (Global) → [your sheet column]
Click Tracker (per slot) → [your sheet column]
Any mapping errors are flagged here before you proceed. Fix these before triggering the import.
[Screenshot — column mapping interface, with required fields mapped and an asset slot dropdown open]
Step 4 — Run the import
Once all required fields are mapped and no errors are shown, click Import. NEXD reads each row in your sheet and creates a creative in the campaign based on the referenced Master. After the import completes, the generated ad IDs are automatically written back to your sheet.
Large sheets may take a moment to process. Don't close the tab while the import is running.
[Screenshot — import in progress, then completed state with ad IDs visible in the sheet]
Updating creatives after import (Manual Sync)
Sheets Import does not sync automatically. If your sheet data changes after the initial import, you need to manually trigger a re-sync to update the generated creatives in NEXD.
To re-sync:
Open the campaign and go to the Data Connection you set up.
Click Sync.
NEXD re-reads the sheet and updates the existing creatives with the new data. Creatives are updated in place — nothing is deleted or recreated.
Re-syncing updates the creatives in NEXD, but it does not push those changes to live ads automatically. After a successful re-sync you'll need to explicitly Update Live to publish the changes to ads currently running. This extra step is intentional — pushing changes to live inventory is a deliberate action, and we want you to confirm intent before swapping content in production.
Things to keep in mind
Creative Masters cannot be published. Only the creatives generated from them can be published.
Master names in your sheet must exactly match the names in your campaign. Any mismatch fails validation before import — check casing and spacing.
Row-level errors during import are not currently reported individually. Errors are surfaced in the mapping validation step before import begins.
Only Google Sheets is supported as a data source. Excel files must be converted to Google Sheets before connecting.
Asset URLs must be public and per-spec. Public hosting (no login, no restricted Drive sharing) and the asset at the URL must match the Master's dimensions, format, and file size limits.
Re-sync ≠ go live. After a re-sync, push Update Live to publish the changes to running ads.
Sheets Import is currently available upon request. If you'd like access, reach out to your customer success manager and we'll get you set up.