Everything else in a playable can be a little wrong and still work. The mechanic can be simpler than intended, the art can be a compromise, the tutorial can be clumsy — and the ad still converts, because a player who enjoyed the interaction will look for the button. The CTA is the one element with no tolerance: if it is missed, mistrusted or mistimed, every second before it was wasted.
Timing beats wording
Teams spend far more time on CTA copy than on CTA timing, and the ratio is backwards. There are three timing patterns and the gap between them is much larger than the gap between any two reasonable button labels.
A CTA visible from the first frame maximises immediate clicks and catches people who decided in two seconds, which in rewarded placements is a real population. A CTA that appears only on the end card maximises qualified clicks, because everyone who sees it has completed the experience. A CTA that appears after the first successful interaction is the compromise most teams land on, and it usually performs best, because it arrives at the moment the player has just been rewarded and is most positively disposed.
What matters is choosing deliberately. The common failure is a CTA that appears at an arbitrary time — often on a timer someone set once — so it interrupts the mechanic for some players and arrives too late for others.
Where it goes
Within thumb reach on a phone held one-handed, which means the lower third — but clear of the very bottom edge, where the home indicator and system gestures live. A button flush to the bottom of the screen is a button that competes with a swipe-up gesture, and losing that competition means the user leaves the ad entirely.
It also has to clear the container's own close button, which typically sits in a top corner. That rules out a top-anchored CTA on most networks, and it is worth checking per network because the exact position varies.
The safe-area check most builds skip
Open the creative on a phone with a notch and a home indicator, in both orientations. A CTA that sits correctly in portrait frequently ends up under the indicator or cropped at the edge in landscape, because it was anchored to a coordinate rather than to the safe area.
Size, contrast and the single-button rule
Larger than feels necessary. The guidance minimums — 44pt on iOS, 48dp on Android — are a floor for interfaces, and a CTA in an ad is being tapped by someone who is not paying full attention, possibly while moving. Comfortably above the minimum costs you nothing but layout space.
Contrast should be the highest on screen. If the button does not obviously win against everything around it, the creative has an attention problem regardless of how good the copy is. Check it against the artwork it actually sits over rather than against a flat swatch, and check it in both the light and dark regions the layout can produce.
One CTA. Not one CTA and a secondary link; not one CTA and a separate app icon that is also tappable. Every additional tappable element divides the decision, and in a format with a few seconds of attention, a divided decision is usually no decision.
Microcopy that names the action
The label should say what happens next, in the player's terms rather than yours. "Play Level 25" tells someone they will continue what they just did. "Install Now" tells them they will do an errand. Both are honest; one is a continuation and one is a chore.
The strongest labels connect to the specific thing that just happened in the ad — the level they reached, the item they configured, the character they picked. That is also where a dynamic CTA earns its cost: carrying the player's in-ad choice into both the label and the destination makes the button feel like the obvious next step rather than a generic ask.
Two things to avoid. Urgency that the product does not back up — a countdown on an evergreen free-to-play install reads as a trick and several ad policies treat manufactured urgency as misleading. And labels that describe the mechanism rather than the outcome: "Download" and "Get the App" both describe your process, not their experience.
Make it obviously a button
Playables often have stylised art direction, and CTAs get styled to match until they no longer read as interactive. Keep the affordances: a filled shape with a clear edge, a label that contrasts against its fill, and ideally a subtle idle animation — a gentle pulse or a shine — that signals interactivity without demanding attention. In a static frame a beautifully integrated CTA can be indistinguishable from decoration, and that is exactly how a distracted viewer will read it.
The click has to be wired to the network's API
A CTA that opens the store URL directly with window.open works in a browser preview and does not report the click to the network. The consequence is not a broken ad — it is an ad that appears to work while its clicks go unattributed, which corrupts every optimisation decision downstream.
Each container provides its own call: mraid.open() on the MRAID networks, ExitApi.exit() on Google, FbPlayableAd.onCTAClick() on Meta and Moloco, window.install() on Mintegral, window.openAppStore() on TikTok and Pangle, a postMessage bridge on Liftoff. Getting this right per export is not a design decision, but it is the one CTA failure that costs the most and is hardest to notice.
Testing the CTA without testing everything else
Because the CTA sits at the end of the funnel, changes to it are easy to misread: a creative with a new button and a new hook reports one number, and you will not know which change moved it. Isolate the CTA by holding everything before it constant and shipping two creatives that differ only in the button — its timing, its copy or its placement, but only one of the three.
Judge the result on install rate per impression rather than on click rate. A more aggressive CTA reliably increases clicks and can reduce installs at the same time, because it collects taps from people who had not yet decided. Click rate rewards exactly the changes you should be most suspicious of, which is why it is the wrong metric to optimise a button on.
Create playable end cards in minutes—no code required.
Open Playable Ads Maker