AdAdvisor Creative Skill: Test and Refresh Meta Ad Creative
Pick a testing framework (3-2-2, 5-3-1, 3-3-3). Track refresh cadence by spend tier. Preserve social proof on viral Meta (Facebook) posts. Detect creative fatigue before it shows up as CPA inflation.
The AdAdvisor creative skill handles testing frameworks, refresh cadence, hook strategy, and the MCP workflow for sourcing assets without losing social proof. Creative drives 70% to 89% of Meta (Facebook) ad performance per AppsFlyer 2025 and Nielsen. Targeting won. Bidding won. Creative is what’s left to compete on, and it’s also the silent killer when neglected.
When should I use the creative skill?
Triggers on phrases like:
“Test ads”
“Creative”
“Refresh creatives”
“Fatigue”
“What to make next”
“New creative”
“Test new hooks”
“Ads are stale”
“Swap creative”
“Upload images”
“Find images”
“UGC”
Which creative testing framework should I use?
The skill picks the right framework based on where you are in the discovery curve:
Test hooks first (5 to 8 hooks, identical body and CTA). Winner gets iterated bodies, then iterated CTAs.
Methodical buyer with budget. Finds the load-bearing element.
Tichenor’s own September 2025 caveat: “I was wrong about 3:2:2. Meta’s Andromeda update changed it. Top advertisers are ramping up creative production, testing multiple concepts per segment.” The skill treats 3-2-2 as a floor, not a ceiling.
How often should I refresh Meta ad creative?
Volume of net-new concepts matters more than total ad count. Brands that produce four new concepts a week beat brands with 50 stale ads.
Hook problem. Fix the first 1 to 3 seconds. Replace the hook, keep the body.
Hold problem. Fix the transition from hook to body. The hook overpromised or the body was boring.
Click problem. Fix the CTA, value prop, or visual confidence.
How does the AdAdvisor MCP creative workflow work?
Two paths, depending on whether the asset already exists.
Path A: reuse or find existing
adadvisor:search_ad_images(queries=['...']) → image hashes via the asset picker widgetadadvisor:preview_existing_creatives(image_hash=...) → if has engagement, reuse via existing_postadadvisor:create_creative(...) → image_link, video, or existing_post format
The preview_existing_creatives step is critical. Promoting a post with 432 reactions / 87 comments via existing_post format preserves that social proof. Uploading the same image as a fresh ad loses it.
Path B: upload new asset
adadvisor:upload_creatives(account_id) → opens upload widget(widget drives init_upload + S3 PUT + complete_upload internally)adadvisor:create_creative(...) → with the returned image_hash or video_id
Limits: image up to 30 MB, video up to 4 GB. Allowed types: JPEG, PNG, MP4, MOV.
What aspect ratio and video length should Meta creative use?
Aspect ratio
Where it lives
Status
4:5 (portrait, 1080 × 1350)
Feed (FB + IG)
Default for Feed
9:16 (vertical, 1080 × 1920)
Reels, Stories
Mandatory in 2026
1:1 (square, 1080 × 1080)
Cross-placement fallback
Safety net
16:9 (horizontal)
Audience Network only
Dead in 2026
Video length sweet spot: 5 to 15 seconds. Meta auto-loops videos up to 30 seconds for 90 seconds of total view time. Short ads get replayed, accumulating impressions without feeling long.
What anti-patterns does the creative skill prevent?
Generating creatives without reading brand context
Brand tone, colors, and key selling points live in your AdAdvisor business context. The skill reads them first and grounds every copy recommendation in them.
Reusing image hashes from previous sessions
Image hashes are session-scoped. The skill always fetches fresh via search_ad_images or complete_upload in the current conversation.
Setting is_dynamic_creative: true with 3 ads
Dynamic Creative ad sets accept exactly ONE ad. Multi-variant copy lives in that one creative’s messages, headlines, and descriptions arrays (max 5 each).
Killing a creative after 24 hours
Defers to the diagnose skill’s kill rule: 3x target CPA with zero conversions over the right account-size window.
Re-uploading a viral organic post as a fresh ad
Loses the social proof. The skill uses format: 'existing_post' with the post URL or object_story_id instead.
Building 16:9 horizontal videos for Reels
Letterboxed with black bars. The skill requires 9:16 for Reels and Stories placements and 4:5 for Feed.
Charley Tichenor’s framework. 3 creatives × 2 primary texts × 2 headlines = 12 dynamic variants in one Meta ad set. Use Dynamic Creative to auto-optimize the combination. Best for validating which variation of a proven angle wins. For brand-new angles use 3-3-3 (Pilothouse) instead.
How often should I refresh Meta ad creative?
Spend-dependent. $100 to $200 a day, refresh every 2 to 3 weeks (1 to 2 new concepts). $1,000 to $10,000 a day, refresh every 7 to 10 days (4 to 6 new). $10,000+ a day, refresh weekly with 4 to 6 net-new concepts. Volume of new concepts matters more than total ad count.
How do I preserve social proof when promoting a viral Instagram or Facebook post?
Use format: 'existing_post' in adadvisor:create_creative, passing either the instagram_post_url, facebook_post_url, or object_story_id. The skill calls preview_existing_creatives first to check engagement counts. Posts with 100+ reactions get promoted via existing_post to preserve likes, comments, and shares. Posts without organic engagement get uploaded fresh.
What is hook rate and what counts as good?
Hook rate is 3-second views divided by impressions. The percentage of viewers who stopped scrolling long enough to count as having seen the ad. Healthy is 25% to 35% on Meta prospecting. Strong is 30% to 45%. Under 20% means the first 1 to 3 seconds need work.
Is 16:9 horizontal video still useful for Meta ads in 2026?
Generally no. Reels and Stories placements (where most attention is in 2026) require 9:16 vertical. Feed prefers 4:5 portrait. 16:9 only survives on Audience Network and gets letterboxed everywhere else, which suppresses delivery. The creative skill rejects 16:9 for Reels and Stories campaigns.
Can I use Dynamic Creative with a lead form?
No. Meta does not yet allow is_dynamic_creative: true ad sets to pair with lead_gen_form_id. The skill catches this and either turns off Dynamic Creative or routes lead-form creatives through standard single-variant copy.
Related skills
Launch
Pairs with launch when creative is part of a new campaign.
Diagnose
Diagnose surfaces creative fatigue. This skill handles the refresh.
Targeting
Sarah Levinger’s “creative does the targeting” thesis lives at the intersection of these two.
Last modified on May 13, 2026
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"AdAdvisor Docs","description":"AdAdvisor docs: step-by-step user guides and a complete reference for Meta and Facebook advertising metrics, strategies, and terminology.","colors":{"primary":"#d946ef","light":"#f0abfc","dark":"#a21caf"},"logo":{"light":"https://mintcdn.com/adadvisor/j5TZzgntENKsvfJd/images/adadvisor-logo-light.png?fit=max\u0026auto=format\u0026n=j5TZzgntENKsvfJd\u0026q=85\u0026s=d19d43d241f24b889bd459a40e15c6c3","dark":"https://mintcdn.com/adadvisor/j5TZzgntENKsvfJd/images/adadvisor-logo-dark.png?fit=max\u0026auto=format\u0026n=j5TZzgntENKsvfJd\u0026q=85\u0026s=c0a7320873e7f8be9f554ecac04f994b","href":"https://adadvisor.ai"},"favicon":"https://mintcdn.com/adadvisor/j5TZzgntENKsvfJd/images/favicon.png?fit=max\u0026auto=format\u0026n=j5TZzgntENKsvfJd\u0026q=85\u0026s=4d441378b61d99e051c46237bb6763ee","navbar":{"primary":{"type":"button","label":"Dashboard","href":"https://app.adadvisor.ai"}},"seo":{"metatags":{"og:type":"website","og:site_name":"AdAdvisor Docs","canonical":"https://adadvisor.ai/docs"}},"integrations":{"ga4":{"measurementId":"G-SNRD0ZETKF"},"posthog":{"apiKey":"phc_M47tMYz8Fu4ey43pUdl6OpwZ4gWc7TvzROltglug9iA","apiHost":"https://us.i.posthog.com"}},"metadata":{"timestamp":true},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"adadvisor","hasAudioNarration":false,"actualSubdomain":"adadvisor","customDomains":["adadvisor.ai"],"gitSource":{"type":"github","owner":"emeraldtarek","repo":"landing-v2-adadvisor","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6ae3742443d2b22f99e50cfc","clientVersion":"0.0.4143","searchFilterCounts":[{"language":"default","tag":"Learn","count":44},{"language":"default","tag":"MCP","count":16},{"language":"default","tag":"Core Ad Metrics","count":11},{"language":"default","tag":"Available Skills","count":8},{"language":"default","tag":"Campaign Structure \u0026 Strategy","count":7},{"language":"default","tag":"Tracking \u0026 Attribution","count":7},{"language":"default","tag":"Meta Ads Platform","count":6},{"language":"default","tag":"Profitability \u0026 Business Metrics","count":6},{"language":"default","tag":"Targeting \u0026 Audiences","count":6},{"language":"default","tag":"User Guide","count":6}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"skills/adadvisor-creative","slug":"/skills/adadvisor-creative","pageMetadata":{"title":"AdAdvisor Creative Skill: Test and Refresh Meta Ad Creative","sidebarTitle":"Creative","description":"Pick a testing framework (3-2-2, 5-3-1, 3-3-3). Track refresh cadence by spend tier. Preserve social proof on viral Meta (Facebook) posts. Detect creative fatigue before it shows up as CPA inflation.","icon":"palette","keywords":["Meta ad creative","Facebook ad creative","creative testing framework","3-2-2 framework Tichenor","5-3-1 framework Motion","3-3-3 Pilothouse","creative fatigue Meta","ad refresh cadence","AdAdvisor creative skill"],"href":"/skills/adadvisor-creative"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Pick a testing framework (3-2-2, 5-3-1, 3-3-3). Track refresh cadence by spend tier. Preserve social proof on viral Meta (Facebook) posts. Detect creative fatigue before it shows up as CPA inflation.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Card,CodeBlock,Columns,Heading,Table}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Card)_missingMdxReference(`Card`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Columns)_missingMdxReference(`Columns`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`AdAdvisor creative skill`}),` handles testing frameworks, refresh cadence, hook strategy, and the MCP workflow for sourcing assets without losing social proof. Creative drives 70% to 89% of Meta (Facebook) ad performance per AppsFlyer 2025 and Nielsen. Targeting won. Bidding won. Creative is what’s left to compete on, and it’s also the silent killer when neglected.`]}),`\n`,_jsx(Heading,{level:`2`,id:`when-should-i-use-the-creative-skill`,children:`When should I use the creative skill?`}),`\n`,_jsx(_components.p,{children:`Triggers on phrases like:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`“Test ads”`}),`\n`,_jsx(_components.li,{children:`“Creative”`}),`\n`,_jsx(_components.li,{children:`“Refresh creatives”`}),`\n`,_jsx(_components.li,{children:`“Fatigue”`}),`\n`,_jsx(_components.li,{children:`“What to make next”`}),`\n`,_jsx(_components.li,{children:`“New creative”`}),`\n`,_jsx(_components.li,{children:`“Test new hooks”`}),`\n`,_jsx(_components.li,{children:`“Ads are stale”`}),`\n`,_jsx(_components.li,{children:`“Swap creative”`}),`\n`,_jsx(_components.li,{children:`“Upload images”`}),`\n`,_jsx(_components.li,{children:`“Find images”`}),`\n`,_jsx(_components.li,{children:`“UGC”`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`which-creative-testing-framework-should-i-use`,children:`Which creative testing framework should I use?`}),`\n`,_jsx(_components.p,{children:`The skill picks the right framework based on where you are in the discovery curve:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Framework`}),_jsx(_components.th,{children:`Structure`}),_jsx(_components.th,{children:`When to use`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`3-3-3`}),` (Pilothouse)`]}),_jsx(_components.td,{children:`3 concepts × 3 formats × 3 hooks = 27 combinations`}),_jsx(_components.td,{children:`Brand-new product or angle. Maps the territory.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`3-2-2`}),` (Tichenor)`]}),_jsx(_components.td,{children:`3 creatives × 2 primary texts × 2 headlines = 12 variants`}),_jsx(_components.td,{children:`Established angle. Validates which variant wins.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`5-3-1`}),` (Ben \u0026 Vic / Motion)`]}),_jsx(_components.td,{children:`5 hook variations × 3 body variations × 1 CTA`}),_jsx(_components.td,{children:`Post-winner refinement. Milks the angle.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Hook → Body → CTA hierarchy`})}),_jsx(_components.td,{children:`Test hooks first (5 to 8 hooks, identical body and CTA). Winner gets iterated bodies, then iterated CTAs.`}),_jsx(_components.td,{children:`Methodical buyer with budget. Finds the load-bearing element.`})]})]})]}),`\n`,_jsx(_components.p,{children:`Tichenor’s own September 2025 caveat: “I was wrong about 3:2:2. Meta’s Andromeda update changed it. Top advertisers are ramping up creative production, testing multiple concepts per segment.” The skill treats 3-2-2 as a floor, not a ceiling.`}),`\n`,_jsx(Heading,{level:`2`,id:`how-often-should-i-refresh-meta-ad-creative`,children:`How often should I refresh Meta ad creative?`}),`\n`,_jsx(_components.p,{children:`Volume of net-new concepts matters more than total ad count. Brands that produce four new concepts a week beat brands with 50 stale ads.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Daily spend`}),_jsx(_components.th,{children:`Refresh cadence`}),_jsx(_components.th,{children:`New concepts per cycle`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`$100 to $`,`200 a day`]}),_jsx(_components.td,{children:`Every 2 to 3 weeks`}),_jsx(_components.td,{children:`1 to 2`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`$200 to $`,`1,000 a day`]}),_jsx(_components.td,{children:`Every 7 to 14 days`}),_jsx(_components.td,{children:`2 to 3`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`$1,000 to $`,`10,000 a day`]}),_jsx(_components.td,{children:`Every 7 to 10 days`}),_jsx(_components.td,{children:`4 to 6`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`$10,000+ a day`}),_jsx(_components.td,{children:`Weekly`}),_jsx(_components.td,{children:`4 to 6 net-new`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`how-do-i-read-meta-creative-performance`,children:`How do I read Meta creative performance?`}),`\n`,_jsxs(_components.p,{children:[`The funnel inherited from `,_jsx(_components.a,{href:`/skills/adadvisor-diagnose`,children:`diagnose`}),`:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Metric`}),_jsx(_components.th,{children:`Healthy`}),_jsx(_components.th,{children:`What it tells you`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Hook Rate (3-sec / impressions)`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`25% to 35%`}),_jsx(_components.td,{children:`Did people stop scrolling?`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Hold Rate (15-sec / 3-sec)`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`40% to 50%`}),_jsx(_components.td,{children:`Did they stay through the body?`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`CTR (link clicks / impressions)`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`1.0% to 1.8%`}),_jsx(_components.td,{children:`Did the body and CTA convince them to click?`})]})]})]}),`\n`,_jsx(_components.p,{children:`The skill maps which signal moved to which fix:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Hook problem.`}),` Fix the first 1 to 3 seconds. Replace the hook, keep the body.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Hold problem.`}),` Fix the transition from hook to body. The hook overpromised or the body was boring.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Click problem.`}),` Fix the CTA, value prop, or visual confidence.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`how-does-the-adadvisor-mcp-creative-workflow-work`,children:`How does the AdAdvisor MCP creative workflow work?`}),`\n`,_jsx(_components.p,{children:`Two paths, depending on whether the asset already exists.`}),`\n`,_jsx(Heading,{level:`3`,id:`path-a-reuse-or-find-existing`,children:`Path A: reuse or find existing`}),`\n`,_jsx(CodeBlock,{numberOfLines:`4`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`adadvisor:search_ad_images(queries=['...']) → image hashes via the asset picker widget`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`adadvisor:preview_existing_creatives(image_hash=...) → if has engagement, reuse via existing_post`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`adadvisor:create_creative(...) → image_link, video, or existing_post format`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`preview_existing_creatives`}),` step is critical. Promoting a post with 432 reactions / 87 comments via `,_jsx(_components.code,{children:`existing_post`}),` format preserves that social proof. Uploading the same image as a fresh ad loses it.`]}),`\n`,_jsx(Heading,{level:`3`,id:`path-b-upload-new-asset`,children:`Path B: upload new asset`}),`\n`,_jsx(CodeBlock,{numberOfLines:`4`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`adadvisor:upload_creatives(account_id) → opens upload widget`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`(widget drives init_upload + S3 PUT + complete_upload internally)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`adadvisor:create_creative(...) → with the returned image_hash or video_id`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`Limits: image up to 30 MB, video up to 4 GB. Allowed types: JPEG, PNG, MP4, MOV.`}),`\n`,_jsx(Heading,{level:`2`,id:`what-aspect-ratio-and-video-length-should-meta-creative-use`,children:`What aspect ratio and video length should Meta creative use?`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Aspect ratio`}),_jsx(_components.th,{children:`Where it lives`}),_jsx(_components.th,{children:`Status`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`4:5 (portrait, 1080 × 1350)`}),_jsx(_components.td,{children:`Feed (FB + IG)`}),_jsx(_components.td,{children:`Default for Feed`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`9:16 (vertical, 1080 × 1920)`}),_jsx(_components.td,{children:`Reels, Stories`}),_jsx(_components.td,{children:`Mandatory in 2026`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`1:1 (square, 1080 × 1080)`}),_jsx(_components.td,{children:`Cross-placement fallback`}),_jsx(_components.td,{children:`Safety net`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`16:9 (horizontal)`}),_jsx(_components.td,{children:`Audience Network only`}),_jsx(_components.td,{children:`Dead in 2026`})]})]})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Video length sweet spot: 5 to 15 seconds.`}),` Meta auto-loops videos up to 30 seconds for 90 seconds of total view time. Short ads get replayed, accumulating impressions without feeling long.`]}),`\n`,_jsx(Heading,{level:`2`,id:`what-anti-patterns-does-the-creative-skill-prevent`,children:`What anti-patterns does the creative skill prevent?`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Generating creatives without reading brand context`,id:`generating-creatives-without-reading-brand-context`,children:_jsx(_components.p,{children:`Brand tone, colors, and key selling points live in your AdAdvisor business context. The skill reads them first and grounds every copy recommendation in them.`})}),_jsx(Accordion,{title:`Reusing image hashes from previous sessions`,id:`reusing-image-hashes-from-previous-sessions`,children:_jsxs(_components.p,{children:[`Image hashes are session-scoped. The skill always fetches fresh via `,_jsx(_components.code,{children:`search_ad_images`}),` or `,_jsx(_components.code,{children:`complete_upload`}),` in the current conversation.`]})}),_jsx(Accordion,{title:`Setting is_dynamic_creative: true with 3 ads`,id:`setting-is-dynamic-creative-true-with-3-ads`,children:_jsxs(_components.p,{children:[`Dynamic Creative ad sets accept exactly ONE ad. Multi-variant copy lives in that one creative’s `,_jsx(_components.code,{children:`messages`}),`, `,_jsx(_components.code,{children:`headlines`}),`, and `,_jsx(_components.code,{children:`descriptions`}),` arrays (max 5 each).`]})}),_jsx(Accordion,{title:`Killing a creative after 24 hours`,id:`killing-a-creative-after-24-hours`,children:_jsx(_components.p,{children:`Defers to the diagnose skill’s kill rule: 3x target CPA with zero conversions over the right account-size window.`})}),_jsx(Accordion,{title:`Re-uploading a viral organic post as a fresh ad`,id:`re-uploading-a-viral-organic-post-as-a-fresh-ad`,children:_jsxs(_components.p,{children:[`Loses the social proof. The skill uses `,_jsx(_components.code,{children:`format: 'existing_post'`}),` with the post URL or `,_jsx(_components.code,{children:`object_story_id`}),` instead.`]})}),_jsx(Accordion,{title:`Building 16:9 horizontal videos for Reels`,id:`building-16-9-horizontal-videos-for-reels`,children:_jsx(_components.p,{children:`Letterboxed with black bars. The skill requires 9:16 for Reels and Stories placements and 4:5 for Feed.`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`how-do-i-install-the-creative-skill`,children:`How do I install the creative skill?`}),`\n`,_jsxs(Columns,{cols:2,children:[_jsx(Card,{title:`Claude Code`,icon:`terminal`,href:`/skills/install-claude-code`,children:_jsx(_components.p,{children:`Ships with the full plugin install.`})}),_jsx(Card,{title:`Claude.ai \u0026 Desktop`,icon:`cloud`,href:`/skills/install-claude`,children:_jsxs(_components.p,{children:[`Download `,_jsx(_components.a,{href:`https://github.com/AdAdvisor/skills/releases/latest/download/adadvisor-creative.zip`,children:`adadvisor-creative.zip`}),` and upload via Settings, Capabilities, Skills.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`frequently-asked-questions`,children:`Frequently asked questions`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`What is the 3-2-2 creative testing framework?`,id:`what-is-the-3-2-2-creative-testing-framework`,children:_jsx(_components.p,{children:`Charley Tichenor’s framework. 3 creatives × 2 primary texts × 2 headlines = 12 dynamic variants in one Meta ad set. Use Dynamic Creative to auto-optimize the combination. Best for validating which variation of a proven angle wins. For brand-new angles use 3-3-3 (Pilothouse) instead.`})}),_jsx(Accordion,{title:`How often should I refresh Meta ad creative?`,id:`how-often-should-i-refresh-meta-ad-creative`,children:_jsxs(_components.p,{children:[`Spend-dependent. `,`$100 to $`,`200 a day, refresh every 2 to 3 weeks (1 to 2 new concepts). `,`$1,000 to $`,`10,000 a day, refresh every 7 to 10 days (4 to 6 new). $10,000+ a day, refresh weekly with 4 to 6 net-new concepts. Volume of new concepts matters more than total ad count.`]})}),_jsx(Accordion,{title:`How do I preserve social proof when promoting a viral Instagram or Facebook post?`,id:`how-do-i-preserve-social-proof-when-promoting-a-viral-instagram-or-facebook-post`,children:_jsxs(_components.p,{children:[`Use `,_jsx(_components.code,{children:`format: 'existing_post'`}),` in `,_jsx(_components.code,{children:`adadvisor:create_creative`}),`, passing either the `,_jsx(_components.code,{children:`instagram_post_url`}),`, `,_jsx(_components.code,{children:`facebook_post_url`}),`, or `,_jsx(_components.code,{children:`object_story_id`}),`. The skill calls `,_jsx(_components.code,{children:`preview_existing_creatives`}),` first to check engagement counts. Posts with 100+ reactions get promoted via `,_jsx(_components.code,{children:`existing_post`}),` to preserve likes, comments, and shares. Posts without organic engagement get uploaded fresh.`]})}),_jsx(Accordion,{title:`What is hook rate and what counts as good?`,id:`what-is-hook-rate-and-what-counts-as-good`,children:_jsx(_components.p,{children:`Hook rate is 3-second views divided by impressions. The percentage of viewers who stopped scrolling long enough to count as having seen the ad. Healthy is 25% to 35% on Meta prospecting. Strong is 30% to 45%. Under 20% means the first 1 to 3 seconds need work.`})}),_jsx(Accordion,{title:`Is 16:9 horizontal video still useful for Meta ads in 2026?`,id:`is-16-9-horizontal-video-still-useful-for-meta-ads-in-2026`,children:_jsx(_components.p,{children:`Generally no. Reels and Stories placements (where most attention is in 2026) require 9:16 vertical. Feed prefers 4:5 portrait. 16:9 only survives on Audience Network and gets letterboxed everywhere else, which suppresses delivery. The creative skill rejects 16:9 for Reels and Stories campaigns.`})}),_jsx(Accordion,{title:`Can I use Dynamic Creative with a lead form?`,id:`can-i-use-dynamic-creative-with-a-lead-form`,children:_jsxs(_components.p,{children:[`No. Meta does not yet allow `,_jsx(_components.code,{children:`is_dynamic_creative: true`}),` ad sets to pair with `,_jsx(_components.code,{children:`lead_gen_form_id`}),`. The skill catches this and either turns off Dynamic Creative or routes lead-form creatives through standard single-variant copy.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`related-skills`,children:`Related skills`}),`\n`,_jsxs(Columns,{cols:3,children:[_jsx(Card,{title:`Launch`,icon:`rocket`,href:`/skills/adadvisor-launch`,children:_jsx(_components.p,{children:`Pairs with launch when creative is part of a new campaign.`})}),_jsx(Card,{title:`Diagnose`,icon:`stethoscope`,href:`/skills/adadvisor-diagnose`,children:_jsx(_components.p,{children:`Diagnose surfaces creative fatigue. This skill handles the refresh.`})}),_jsx(Card,{title:`Targeting`,icon:`bullseye`,href:`/skills/adadvisor-targeting`,children:_jsx(_components.p,{children:`Sarah Levinger’s “creative does the targeting” thesis lives at the intersection of these two.`})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"AdAdvisor Creative Skill: Test and Refresh Meta Ad Creative","sidebarTitle":"Creative","description":"Pick a testing framework (3-2-2, 5-3-1, 3-3-3). Track refresh cadence by spend tier. Preserve social proof on viral Meta (Facebook) posts. Detect creative fatigue before it shows up as CPA inflation.","icon":"palette","keywords":["Meta ad creative","Facebook ad creative","creative testing framework","3-2-2 framework Tichenor","5-3-1 framework Motion","3-3-3 Pilothouse","creative fatigue Meta","ad refresh cadence","AdAdvisor creative skill"],"href":"/skills/adadvisor-creative"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"When should I use the creative skill?","slug":"when-should-i-use-the-creative-skill","depth":2,"children":[]},{"title":"Which creative testing framework should I use?","slug":"which-creative-testing-framework-should-i-use","depth":2,"children":[]},{"title":"How often should I refresh Meta ad creative?","slug":"how-often-should-i-refresh-meta-ad-creative","depth":2,"children":[]},{"title":"How do I read Meta creative performance?","slug":"how-do-i-read-meta-creative-performance","depth":2,"children":[]},{"title":"How does the AdAdvisor MCP creative workflow work?","slug":"how-does-the-adadvisor-mcp-creative-workflow-work","depth":2,"children":[{"title":"Path A: reuse or find existing","slug":"path-a-reuse-or-find-existing","depth":3,"children":[]},{"title":"Path B: upload new asset","slug":"path-b-upload-new-asset","depth":3,"children":[]}]},{"title":"What aspect ratio and video length should Meta creative use?","slug":"what-aspect-ratio-and-video-length-should-meta-creative-use","depth":2,"children":[]},{"title":"What anti-patterns does the creative skill prevent?","slug":"what-anti-patterns-does-the-creative-skill-prevent","depth":2,"children":[]},{"title":"How do I install the creative skill?","slug":"how-do-i-install-the-creative-skill","depth":2,"children":[]},{"title":"Frequently asked questions","slug":"frequently-asked-questions","depth":2,"children":[]},{"title":"Related skills","slug":"related-skills","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"adadvisor","siteName":"AdAdvisor Docs","title":"AdAdvisor Creative Skill: Test and Refresh Meta Ad Creative - AdAdvisor Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-05-13T16:49:08.623Z","gitLastModified":"2026-05-13T16:48:05.000Z","originalFileLocation":"skills/adadvisor-creative.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Pick a testing framework (3-2-2, 5-3-1, 3-3-3). Track refresh cadence by spend tier. Preserve social proof on viral Meta (Facebook) posts. Detect creative fatigue before it shows up as CPA inflation.\">\u003cmeta data-mint-head name=\"application-name\" content=\"AdAdvisor Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/adadvisor/1vPYkMgWBDdVkAc_/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/adadvisor/1vPYkMgWBDdVkAc_/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/adadvisor/1vPYkMgWBDdVkAc_/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/adadvisor/1vPYkMgWBDdVkAc_/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/adadvisor/1vPYkMgWBDdVkAc_/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/adadvisor/1vPYkMgWBDdVkAc_/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/adadvisor/1vPYkMgWBDdVkAc_/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/adadvisor/1vPYkMgWBDdVkAc_/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/adadvisor/1vPYkMgWBDdVkAc_/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"AdAdvisor Creative Skill: Test and Refresh Meta Ad Creative - AdAdvisor Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Pick a testing framework (3-2-2, 5-3-1, 3-3-3). Track refresh cadence by spend tier. Preserve social proof on viral Meta (Facebook) posts. Detect creative fatigue before it shows up as CPA inflation.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"AdAdvisor Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://adadvisor.ai/docs/skills/adadvisor-creative\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://adadvisor.mintlify.site/docs/_mintlify/api/og/v2?division=Available+Skills\u0026amp;title=AdAdvisor+Creative+Skill%3A+Test+and+Refresh+Meta+Ad+Creative\u0026amp;description=Pick+a+testing+framework+%283-2-2%2C+5-3-1%2C+3-3-3%29.+Track+refresh+cadence+by+spend+tier.+Preserve+social+proof+on+viral+Meta+%28Facebook%29+posts.+Detect+creative+fatig\u0026amp;theme=ac6f5c868be865ab544b5f50\u0026amp;signature=f05c8198aa081e326ec41a869762fde1308bd8ace5d52f07b06bc1a3c7e36d3e\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"AdAdvisor Creative Skill: Test and Refresh Meta Ad Creative - AdAdvisor Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Pick a testing framework (3-2-2, 5-3-1, 3-3-3). Track refresh cadence by spend tier. Preserve social proof on viral Meta (Facebook) posts. Detect creative fatigue before it shows up as CPA inflation.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://adadvisor.mintlify.site/docs/_mintlify/api/og/v2?division=Available+Skills\u0026amp;title=AdAdvisor+Creative+Skill%3A+Test+and+Refresh+Meta+Ad+Creative\u0026amp;description=Pick+a+testing+framework+%283-2-2%2C+5-3-1%2C+3-3-3%29.+Track+refresh+cadence+by+spend+tier.+Preserve+social+proof+on+viral+Meta+%28Facebook%29+posts.+Detect+creative+fatig\u0026amp;theme=ac6f5c868be865ab544b5f50\u0026amp;signature=f05c8198aa081e326ec41a869762fde1308bd8ace5d52f07b06bc1a3c7e36d3e\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/adadvisor/1vPYkMgWBDdVkAc_/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"AdAdvisor Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#d946ef\">\u003clink data-mint-head rel=\"canonical\" href=\"https://adadvisor.ai/docs/skills/adadvisor-creative\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/skills/adadvisor-creative.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://adadvisor.ai/#organization\",\"name\":\"AdAdvisor Docs\",\"url\":\"https://adadvisor.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/adadvisor/j5TZzgntENKsvfJd/images/adadvisor-logo-light.png?fit=max\u0026auto=format\u0026n=j5TZzgntENKsvfJd\u0026q=85\u0026s=d19d43d241f24b889bd459a40e15c6c3\"}},{\"@type\":\"WebSite\",\"@id\":\"https://adadvisor.ai/docs#website\",\"name\":\"AdAdvisor Docs\",\"url\":\"https://adadvisor.ai/docs\",\"publisher\":{\"@id\":\"https://adadvisor.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://adadvisor.ai/docs/skills/adadvisor-creative#webpage\",\"url\":\"https://adadvisor.ai/docs/skills/adadvisor-creative\",\"name\":\"AdAdvisor Creative Skill: Test and Refresh Meta Ad Creative\",\"description\":\"Pick a testing framework (3-2-2, 5-3-1, 3-3-3). Track refresh cadence by spend tier. Preserve social proof on viral Meta (Facebook) posts. Detect creative fatigue before it shows up as CPA inflation.\",\"dateModified\":\"2026-05-13T16:48:05.000Z\",\"isPartOf\":{\"@id\":\"https://adadvisor.ai/docs#website\"},\"breadcrumb\":{\"@id\":\"https://adadvisor.ai/docs/skills/adadvisor-creative#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://adadvisor.ai/docs/skills/adadvisor-creative#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Available Skills\",\"item\":\"https://adadvisor.ai/docs/skills/adadvisor\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"AdAdvisor Creative Skill: Test and Refresh Meta Ad Creative\",\"item\":\"https://adadvisor.ai/docs/skills/adadvisor-creative\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://adadvisor.ai/docs/skills/adadvisor-creative#article\",\"headline\":\"AdAdvisor Creative Skill: Test and Refresh Meta Ad Creative\",\"name\":\"AdAdvisor Creative Skill: Test and Refresh Meta Ad Creative\",\"description\":\"Pick a testing framework (3-2-2, 5-3-1, 3-3-3). Track refresh cadence by spend tier. Preserve social proof on viral Meta (Facebook) posts. Detect creative fatigue before it shows up as CPA inflation.\",\"url\":\"https://adadvisor.ai/docs/skills/adadvisor-creative\",\"mainEntityOfPage\":{\"@id\":\"https://adadvisor.ai/docs/skills/adadvisor-creative#webpage\"},\"dateModified\":\"2026-05-13T16:48:05.000Z\",\"keywords\":\"Meta ad creative, Facebook ad creative, creative testing framework, 3-2-2 framework Tichenor, 5-3-1 framework Motion, 3-3-3 Pilothouse, creative fatigue Meta, ad refresh cadence, AdAdvisor creative skill\",\"publisher\":{\"@id\":\"https://adadvisor.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://adadvisor.ai/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"AdAdvisor Docs\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"AdAdvisor Docs\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/docs/skills/adadvisor-creative.md","siteName":"AdAdvisor Docs","nav":{"global":null,"tabs":[{"tab":"User Guide","pages":[{"title":"User Guide","href":"/user-guide/welcome"}]},{"tab":"MCP","groups":[{"group":"Overview","pages":[{"title":"Give Your AI Assistant Access to Your Meta Ad Account","sidebarTitle":"Welcome","href":"/ai/welcome"},{"title":"What is the MCP Server?","href":"/ai/what-is-mcp-server"}]},{"group":"Get Connected","pages":[{"title":"Getting Started with the AdAdvisor MCP Server","href":"/ai/getting-started-with-mcp"},{"title":"Setting Up Your MCP Client","href":"/ai/setting-up-your-mcp-client"},{"title":"Managing API Keys","href":"/ai/managing-api-keys"}]},{"group":"Capabilities","pages":[{"title":"Available Tools and Capabilities","sidebarTitle":"Available Tools","href":"/ai/available-tools"}]},{"group":"Skills","pages":[{"title":"What Are AdAdvisor Skills? Pre-Built Workflows for Managing Meta Ads with AI","sidebarTitle":"Skills overview","icon":"wand-magic-sparkles","href":"/skills/welcome"},{"title":"Install AdAdvisor Skills in Claude.ai and Claude Desktop","sidebarTitle":"Install in Claude","icon":"cloud-arrow-up","href":"/skills/install-claude"},{"title":"Install AdAdvisor Skills in Claude Code (Plugin Marketplace)","sidebarTitle":"Install in Claude Code","icon":"terminal","href":"/skills/install-claude-code"}]},{"group":"Available Skills","pages":[{"title":"AdAdvisor Foundation Skill: Account Discovery and Unit Economics","sidebarTitle":"Foundation","icon":"compass","href":"/skills/adadvisor"},{"title":"AdAdvisor Audit Skill: Full Meta Ad Account Audit with AI","sidebarTitle":"Audit","icon":"magnifying-glass","href":"/skills/adadvisor-audit"},{"title":"AdAdvisor Diagnose Skill: Why Did My Meta Ad Performance Drop?","sidebarTitle":"Diagnose","icon":"stethoscope","href":"/skills/adadvisor-diagnose"},{"title":"AdAdvisor Launch Skill: Create Meta Ad Campaigns End to End","sidebarTitle":"Launch","icon":"rocket","href":"/skills/adadvisor-launch"},{"title":"AdAdvisor Scale Skill: Scale Proven Meta Ad Winners Safely","sidebarTitle":"Scale","description":"Scale Meta (Facebook) ad winners without resetting the learning phase. The 20% rule, the Tichenor bid-cap method, the Faris target-ROAS portfolio, and the $1k to $10k a day stage plan, all triggered by natural language.","icon":"chart-line","href":"/skills/adadvisor-scale"},{"title":"AdAdvisor Creative Skill: Test and Refresh Meta Ad Creative","sidebarTitle":"Creative","icon":"palette","href":"/skills/adadvisor-creative"},{"title":"AdAdvisor Targeting Skill: Broad-First Meta Ad Audience Strategy","sidebarTitle":"Targeting","description":"Broad-first prospecting, lookalike tiers, retargeting funnels, custom-audience creation, and the exclusion logic that keeps Meta (Facebook) prospecting from cannibalizing retargeting.","icon":"bullseye","href":"/skills/adadvisor-targeting"},{"title":"AdAdvisor Playbooks Skill: BFCM, Product Launch, Lead-Gen, Recovery, Scale","sidebarTitle":"Playbooks","icon":"book","href":"/skills/adadvisor-playbooks"}]}]},{"tab":"Learn","pages":[{"title":"Learn","href":"/learn"}]},{"tab":"Help \u0026 Support","pages":[{"title":"Help \u0026 Support","href":"/faq/general"}]}]},"basePath":"","title":"AdAdvisor Creative Skill: Test and Refresh Meta Ad Creative - AdAdvisor Docs","buildId":"dpl_Aw98ji4XvBsgtZwL1VrkUF9ehFqz","deploymentId":"dpl_Aw98ji4XvBsgtZwL1VrkUF9ehFqz","dynamics":[],"chunks":[]}