Show the buy button on the second the price is spoken, and time it to the video's clock, not the page's. Keep it visible from then on, and show it at once to anyone who has already heard the pitch. Then check that enough viewers reach that second, because a hidden button only pays if the pitch arrives before the buyer's patience runs out.
Why hide the button at all
The case for hiding it is old and simple. A page with a price and a buy button under the video reads as a sales page from the first second, and a cold viewer judges the price before hearing why it is fair. Hide the button, and the page reads as content. DigitalMarketer made that argument in 2016, and a copywriter writing about infomercial tests made it before them: the later ask beat the earlier one. Neither published numbers.
The case against is just as old. "If the customer is ready to give you money, take it," as one marketer put it in a Warrior Forum thread about exactly this setting, over a decade ago. Some viewers decide early. A hidden button makes them wait, and some of them do not.
Both sides are opinions. We found no published test from any testing platform or conversion lab comparing a delayed VSL button with an always-on one. So the useful question is not which camp is right. It is how to set the delay properly, and how to tell whether it is paying on your own traffic. For what the button should look like once it is there, see what makes a good VSL video player.
The clock matters more than the number
Every guide says to reveal the button "when the offer is introduced". None of them asks which clock is counting. There are two, and they drift apart the moment a real person watches.
Page timers
Page builders count from page load. The ClickFunnels delay is an animation delay in milliseconds, triggered on load or on scroll. Kajabi's Time Reveal counts from page load too, and its own help article shows the catch: to reveal a button after a 20-second autoplay video, it sets the timer to 21 seconds. That works only if the video starts the instant the page opens and nobody touches it. GoHighLevel's show and hide timer counts minutes from load as well.
What breaks a page timer
- The viewer pauses. The timer keeps running. The button arrives before the pitch.
- The video loads slowly or buffers. An old Warrior Forum thread found the reveal point moving with load time. Every stall is time the timer counts and the viewer never saw.
- The viewer starts late. They read the headline first, or scroll, or wait with the sound off. The timer started without them.
- The viewer comes back. A page timer resets on every load, so a returning viewer waits through the whole delay again.
Users on GoHighLevel's ideas board have been asking for a trigger based on video progress since June 2024, with the obvious question attached: what if the viewer pauses the video?

The video's clock
VSL players count playback instead. The reveal is tied to a second of the video, so a pause holds it back, a slow load holds it back, and a late start holds it back. The button appears when the viewer reaches the pitch, whenever that is on the wall clock.
There is one flip side. Seeking forward also crosses the second, so a viewer who drags the progress bar to the end can reach the button early. For cold traffic, most VSL owners hide the scrub bar for exactly this reason, which leaves no quick way to jump to the price. The player article covers the rest of that trade.
Pick the second from the pitch, not a guess
Most reveal times are round numbers: five minutes, ten minutes, "about two-thirds in". The script already contains the right one. It is the second the price is spoken, which is why the structure guide says to put the pitch on a known second in the first place.
You do not have to find it with a stopwatch. TrackPlay reads the pitch from the transcript and draws a Pitch marker on the retention graph. Every timed event you configure draws its own named marker on the same chart, so you can see at a glance whether the reveal sits on the pitch or somewhere near it.

Then check the second against the people who bought. Switch the curve to buyers against non-buyers. If the buyers' line is already falling before the marker, the pitch is late for your own customers, and no reveal setting will fix that. Move the pitch, or cut what comes before it.
One more trap: split tests. If two variants are cut differently, their pitches land on different seconds, and each variant needs its own reveal second. A shared delay puts one of them wrong.
Who should see it early
One reveal second for every visitor is the simple setup, and it is wrong for some of them. The viewer's history decides when the button should appear.
Cold traffic
Hide it until the pitch. This is the viewer the delay was invented for: no trust yet, no context for the price.
Warm list and pre-sold affiliate traffic
Earlier, and test it. A subscriber who has read your emails, or a click from an affiliate who already sold the idea, may be ready before the pitch. The forum thread that argued for delays also warned that pre-sold traffic skews the results, so judge this traffic on its own.
Returning viewers who heard the pitch
Show it at once. They have heard the offer and came back, which means they are closer to buying, not further. Making them sit through the video again is the page timer's mistake repeated. The usual way to do this is a cookie set when the viewer passes the pitch second, so the next visit shows the button on arrival.
Viewers who left before the pitch
Do not reveal it. They have not heard the offer. Bring them back to where they stopped instead: Continue Watching offers Continue or Restart for 90 days, on any device. If they are leaving right now, exit intent shows one designed message on the way out.
Buyers
Do not sell them the product they already own. A buyer who comes back to the sales page should be pointed at what comes next: the login, the onboarding, the next offer.

Button only, or the whole order form?
The button is one element. The price table, the guarantee, the bonus stack and the FAQ under the video can give the pitch away just as fast. A viewer who scrolls at minute two and finds the price has skipped the argument whether or not the button is visible.
Reveal them together, on the same second. Timed events keep page sections hidden until a second or a watch percentage, then reveal them, with no code on the page. Watch gates do it by how much of the video has been watched. A CTA card puts the button inside the player itself, on the same second.
Once it is revealed, keep it visible. Do not give the main CTA an end time. The viewer who hears the price, keeps watching the objections and decides at minute 31 needs the button still there.
On a phone
A button below the player does not exist for a viewer watching fullscreen. At least one VSL host's own help docs say its CTA buttons do not appear in mobile fullscreen. On a phone, the page under the video is only there once the viewer leaves fullscreen and scrolls.
Two fixes. Put the ask inside the player, where it travels with the video: a Banner CTA card stacks its headline, copy and a full-width button when the player is narrower than 420 pixels, so it stays readable in a portrait embed. Or reveal and scroll together: a timed event can scroll the page to the order section on the pitch second, leaving fullscreen first.

What to measure
Three numbers, in this order.
- Reach. The share of viewers still watching at the reveal second. The Funnel tab shows it as the "Pitch reached" step.
- Click rate after the reveal. A CTA card draws a marker on the retention graph with its shown and clicked counts at that second.
- Orders from those clicks. With cart postbacks, the sale lands on the session that clicked, so a click that never became an order is visible as one.
Then roll them into one: revenue per play.

Here is the trap. A later button will almost always show a higher click rate, because only the committed viewers are left to see it. Wistia's data on in-video CTAs shows the effect on marketing videos: on videos of 5 to 30 minutes, CTAs in the last quarter drew 18% clicks from the viewers who reached them, against 14% in the first quarter. That is not proof that later is better. It is survivors being counted. Total clicks are reach times rate, so a button that 30% of viewers reach at an 18% click rate (5.4 clicks per 100 viewers) loses to one that 70% reach at 12% (8.4 per 100).
The test that settles it: clone the video, move only the reveal second, and run both as a split test under the same embed. Each visitor sticks to one version. Decide on conversion rate per play, and wait for the significance flag.
The trade-off, stated plainly
Hiding the button costs every viewer who decided early and left looking for it. Showing it costs every viewer who saw a price with no context and left. Your traffic sets the balance between the two, and no forum thread can set it for you. The retention curve shows which viewers you are losing, and the split test shows which cost is bigger.
Reveal rules at a glance
| Situation | Reveal rule |
|---|---|
| Cold paid traffic, long VSL | On the second the price is spoken. Keep it on. |
| Short VSL, under about three minutes | Early, or from the start. A short video has less to lose by waiting less. |
| Warm list, pre-sold affiliate clicks | At the offer or earlier. Test it against the pitch second. |
| Returning viewer who heard the pitch | At once, on arrival. |
| Returning viewer who left before the pitch | Hidden. Resume where they stopped. |
| Buyer comes back | No buy button. Point to the next step. |
| Phone viewer | A card inside the player, plus a scroll to the order box. |
| Order box, price and guarantee on the page | Hidden until the same second as the button. |
| Low pitch reach | Fix the video first. Moving the reveal earlier is a test, not a fix. |
| Variants with different cuts | Each variant reveals on its own pitch second. |
If you want to see where your own pitch lands and how many viewers reach it, the free plan gives you 3,000 plays a month, free forever, with no card.
