The Creative and Copywriting pages under Library keep your ad creative and your copy in one place, with the results each one drove. Use them to find what's working before you brief the next round of ads or pages. Both pages follow the brand selected in the header.
The Creative page
Creative lists your creative bucket: the images and videos you or your agent uploaded to granvl. These are the files your agent attaches when it builds ads.
Each row shows the creative's name, the campaigns it runs in (or when it was uploaded, if it hasn't run), its format and size or length, its folder, and a status:
Status | Meaning |
Live | In an ad that spent in the selected range |
Ready | In an ad, with no spend in the range |
Draft | Not in any ad yet |
Filters and sorting
All platforms and All accounts: creatives used on one ad platform or in one ad account.
All folders: one folder, or Unfiled.
All formats: Image or Video.
All statuses: Live, Ready or Draft.
With results only: hides creatives with no spend in the range. Once any creative has spent, the page opens on this; switch to All creatives to see the whole bucket.
Date range: Last 7 days, Last 30 days (the default) or Last 90 days.
Click a column header (Spend, Leads, CTR, CPL, Clicks, CPM, Ads or Creative) to sort by it; click again to reverse.
How results are joined
granvl records which creative went into each ad it builds, so results add up across every ad that used the same file:
Spend, Clicks, CTR and CPM come from the ad platform for those ads.
Leads are the granvl-tracked leads from those ads' landing page traffic. CPL is spend divided by those leads.
Ads is how many ads used the creative.
Results currently come from Meta ads built through granvl. A creative used in an ad built outside granvl has no results here.
Organize creatives
Tick creatives to open the bulk bar:
Move to folder and Remove from folder. Folders group related creatives, and a creative sits in one folder at a time.
Tag offer / ICP: link creatives to an offer angle and an ideal customer from your strategy.
Auto-tag with AI: tags selected creatives with an angle and ICP. It uses your workspace's AI credits.
Move to brand.
The meter above the table shows how much of your workspace storage your files use. Creative and page files share it.
Upload creative
In the dashboard
Open Creative.
Click Upload creative and choose one or more files.
Format | Types | Largest file |
Image | JPG, PNG, GIF, WebP | 30 MB |
Video | MP4, MOV, WebM | 250 MB |
Uploading a file that's already in the bucket returns the existing creative instead of a copy.
With your agent
upload_ad_creativetakes a public link to the file (images and video up to 100 MB) or a small file the agent has read, up to 3 MB.For a file on your computer larger than 3 MB, the agent uses
start_creative_upload, uploads the file directly, then callsfinish_creative_upload. The limits match the dashboard.
Every upload is checked to be a real image or video of the type it claims. Your agent can tag the creative with an angle and ICP as it uploads it.
Upload the three videos in ~/Downloads/new-hooks to granvl
and tag them with my "New parents" angle.
The Copywriting page
Copywriting is your copy library, one kind of line at a time. Pick the kind with Copy kind: LP Headlines, LP Subheadlines, Ad copy or Ad headlines.
The library fills itself:
Pages: the headline and the subheadline under it on each landing, quiz and form page.
Ads: the primary text and headline of the ads synced from the brand's ad accounts.
Saved lines: copy your agent or your team saved.
granvl pulls from your pages and ads when you open the page. Click Pull from pages & ads to pull again now. A line that appears in several places is stored once and linked to each place it runs.
Filters and sorting
Product: lines linked to one product, or No product.
Status: Active or Paused.
Folder: one folder, or No folder.
Activity: With results only or All lines. Until you choose, each kind opens on lines with results if it has any.
Stats window: Last 7 days, Last 30 days or Last 90 days.
The table opens sorted by Rate, highest first. Click Copy / version, Linked placement, Results / exposure or Rate to sort by that column.
How copy results are joined
Kind | Results / exposure | Rate |
Landing page headlines and subheadlines | Conversions / visitors on the pages using the line. Bot traffic is excluded | Conversion rate |
Ad copy and ad headlines | Leads / clicks from the ads using the line, with spend | CTR, and cost per lead when there are leads |
Rates describe the pages and ads where a line runs. They don't isolate the copy's own effect: a line on a strong page looks strong.
Edit a line
Click a line to open Copy details. You can copy the text, link it to a Product, ICP and Offer, write a Rationale, and set Status to Active or Paused. Click Save changes. The Placements tab lists where the line runs.
The drawer doesn't change the text itself. To change a line pulled from your pages or ads, edit the page or the ad; the next pull picks up the new text.
How your agent uses this
Your agent reads the same results through granvl's tools:
get_creative_performance: each creative's spend, impressions, link CTR, CPC and, where traffic joins, leads, CPL, revenue and ROAS, summed across every ad that used it. Creatives that never ran are listed as unused.list_copy_lines: the copy library, filtered by kind, status, angle or ICP. Agents read it before writing, to reuse or adapt lines that already won.create_copy_lines: saves new lines as a batch, each with a one-sentence rationale. New lines start as Paused (testing).update_copy_line: edits a line or changes its status. Marking a line a winner shows it as Active.
Show me my top 5 creatives by cost per lead over the last 30 days,
then write three new Meta primary texts in the style of my Active ad copy.

