<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Tim Keen]]></title><description><![CDATA[Tim Keen]]></description><link>https://timkeen.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Sat, 07 Nov 2026 11:25:38 GMT</lastBuildDate><atom:link href="https://timkeen.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[One green check is a lie: four separate states in an ad review tool]]></title><description><![CDATA[When you build a preview tool, the tempting design is a single status: ready or not ready. We tried to avoid that in the LinkedIn ad mockup we built at…]]></description><link>https://timkeen.hashnode.dev/one-green-check-is-a-lie-four-separate-states-in-an-ad-review-tool</link><guid isPermaLink="true">https://timkeen.hashnode.dev/one-green-check-is-a-lie-four-separate-states-in-an-ad-review-tool</guid><category><![CDATA[UX]]></category><category><![CDATA[webdev]]></category><category><![CDATA[marketing]]></category><dc:creator><![CDATA[Tim Keen]]></dc:creator><pubDate>Sun, 01 Nov 2026 00:10:23 GMT</pubDate><content:encoded><![CDATA[<p>When you build a preview tool, the tempting design is a single status: ready or not ready. We tried to avoid that in the LinkedIn ad mockup we built at Maestro, because "ready" means different things to different people on the same ad.</p>
<p>A designer wants to know whether the ad can be pictured. A media buyer wants to know whether the copy, URL and image pass the rules. A reviewer wants a complete record to sign off on. And everyone eventually wants to know whether LinkedIn itself will accept it. Those are four questions, and one checkmark can't answer all of them.</p>
<h2>The four states</h2>
<p>The status panel keeps them apart:</p>
<ul>
<li><strong>Preview.</strong> Can the draft be pictured, with any missing fields labeled?</li>
<li><strong>Technical check.</strong> Do the supplied copy, URL and image pass the supported rules?</li>
<li><strong>Production handoff.</strong> Is the record complete enough for a named reviewer to check?</li>
<li><strong>LinkedIn.</strong> Has the intended Campaign Manager account supplied dated approval and native-rendering evidence?</li>
</ul>
<p>The important part is that these move independently. A mockup can be ready for production review while the LinkedIn state still says "Not checked". The tool never turns a local preview into launch approval.</p>
<h2>Why not collapse them?</h2>
<p>Because collapsing them hides the one state that matters most at launch. If the panel shows a big green check after the technical rules pass, people read it as "LinkedIn will take this". It doesn't mean that. The preview is an approximation. It can't reproduce every font metric, truncation rule or feed variation across devices, and it can't predict approval, delivery or performance.</p>
<p>Keeping a separate, honestly empty "Not checked" state is a small piece of UI, but it puts the final check where it belongs: in Campaign Manager, in the account that will run the ad.</p>
<h2>What the technical check can catch</h2>
<p>Local checks are still useful. Before handoff they can flag the wrong image ratio, copy beyond a published limit, an invalid destination URL, missing alt text, or a portrait image selected for desktop review. Portrait creative is mobile-only, so the desktop view shows an unsupported state instead of squeezing the image into a frame it would never appear in.</p>
<h2>The general pattern</h2>
<p>If your tool sits upstream of a system you don't control, model your own checks and the external system's verdict as different states. Let your checks pass loudly. Leave the external one visibly unverified until someone brings evidence. It's less satisfying than one big green light, but it's accurate, and people learn to trust it.</p>
<p>If you want to see the panel in practice, the <a href="https://maestrogtm.com/linkedin-ad-mockup/">Maestro LinkedIn ad mockup</a> is free and runs in the browser with no sign-in.</p>
<p><em>Disclosure: I'm Tim Keen and I run Maestro, the B2B paid media company that makes this tool.</em></p>
]]></content:encoded></item></channel></rss>