Static Ads Lab

Figma plugin

Open image ads in Figma, edit visually, and sync the result back to the Static Ads Lab API.

The Static Ads Lab Figma plugin gives designers a visual editor for image ads. It pulls an ad's JSON tree into Figma, lets you edit on canvas, and syncs the result back through the API — keeping your tree, render, and version history aligned.

Install

Install Static Ads Lab from the Figma Community — open the listing inside Figma to add the plugin to your workspace.

You'll also need:

  • An image ad in your Static Ads Lab workspace.
  • A Static Ads Lab API key (create one at Settings → API Keys).

What it does

sequenceDiagram
  participant U as Designer
  participant F as Figma + plugin
  participant API as Static Ads Lab API
  U->>F: Open Figma, run Static Ads Lab plugin
  F->>API: GET /v1/image-ads/:id
  API-->>F: current_json_tree + figma_render_url
  F->>U: Render frame on canvas
  U->>F: Edit text, swap images, tweak layout
  F->>API: POST /v1/image-ads/sync (items)
  API-->>F: 200 { results }
  Note over API: New revision saved, image renders in the background
  • Loads an ad's JSON tree as a Figma frame.
  • Lets you edit text, swap image fills, and adjust layout within Figma.
  • Pushes the updated tree and a render PNG back to the API as a new version.

Workflow

  1. Generate an ad via the API. Every ad is editable; wait for status: "completed".
  2. Open the plugin in Figma. Sign in with your API key the first time.
  3. Load the ad by its ia_… ID.
  4. Edit on canvas. Standard Figma actions — change text, replace fills, adjust positioning — within the constraints of the template's tree.
  5. Sync. The plugin uploads the new tree and rendered PNG to POST /v1/image-ads/sync. The API saves a new revision and re-renders the image in the background. Earlier states are kept as versions (iav_…) you can list via GET /v1/image-ads/:id/versions.

When to use the plugin vs API-only

ScenarioUse
You want pixel-perfect designer touchupsPlugin
You want a human-in-the-loop step before publishingPlugin
You're producing many programmatic variantsAPI (edit-and-rerender)
You want quick changes from code or an agentAPI (design edits)

Limits

  • Sync requests can include up to 10 ads per call.
  • Only ads the editor supports (editor_supported: true) can be synced.
  • Image fills must be public URLs; the plugin uploads any new images via POST /v1/images first.

Programmatic alternative

If you're not using Figma but want the same round-trip flow (e.g. integrating a different design tool), you can call the same endpoints directly. See Figma sync for the request shape.