Loading tutorials…
Loading tutorials…
CTA Cards are Crazy Egg's pop-up + banner builder. The good news: no developer required. The bad news: the default settings show every CTA to every user on every page — and 90% of pop-ups that drive revenue look like they should be illegal. This is the setup that converts without burning trust.
Who this is forOperators who want to add an email capture, exit-intent offer, announcement banner, or promotional pop-up without involving a developer. Useful for ecommerce promotions, lead-gen on content pages, and event-based announcements.
What you'll need
Step 1
Crazy Egg supports Banner (top/bottom strip), Pop-up (centered modal), and Inline (embedded in page content). Each has different conversion rates and annoyance profiles — pick based on the goal and the user state.
Banner: thin strip at top or bottom of the page. Low annoyance, low conversion rate. Best for: announcements ('Free shipping this week'), persistent offers, and dismissible promotions. Typical email-capture rate: 0.5-2%.
Pop-up: modal that overlays the page. High annoyance if mistimed, high conversion rate if well-targeted. Best for: exit-intent email capture, first-time-visitor lead magnets, and time-sensitive offers. Typical conversion rate: 2-5%.
Inline Card: embedded into page content (between paragraphs, after blog posts). Zero annoyance, moderate conversion rate. Best for: blog post lead magnets, related-product callouts, and contextual upgrades. Typical conversion rate: 1-3%.
Default decision rule: if the user is mid-task (checkout, product page), use Inline only. If the user is browsing (blog, homepage), Banner is safe and Pop-up is high-risk-high-reward. Never pop up on a checkout page — you lose more revenue from interruption than you gain from email captures.
Mobile rule: pop-ups on mobile are a Google ranking signal penalty (intrusive interstitials guideline). Use Banner or Inline on mobile, and reserve Pop-up for desktop only. Set device targeting accordingly in the next step.
Step 2
CTA → New CTA. Pick the type, choose a template or start blank, and design the copy + button + colors to match your brand.
In the left sidebar, click CTA → + New CTA.
Pick CTA type (Banner / Pop-up / Inline). Crazy Egg offers templates per type — start with one matching your goal (lead magnet, announcement, discount, exit-intent).
Name the CTA clearly: 'Pricing page exit-intent — 10% off — Jan 2026'. Future-you and your team need the page, trigger, and offer in the name.
Write the headline. Specific > Generic. 'Get $20 off your first order' beats 'Sign up for our newsletter' by 3-5x conversion rate.
Add the form field (email-only is highest converting — every extra field cuts conversion 10-30%). Set the submit button copy to action-oriented: 'Get my discount' beats 'Submit.'
Apply brand colors. Default Crazy Egg templates use generic blue/white — replace with your brand palette. Off-brand pop-ups feel like a third-party intrusion and convert worse than on-brand ones.
Add a clear close (X) button. Hiding the close button is a dark pattern AND a Google penalty signal. Always make 'no thanks' findable in under 1 second.
Step 3
Page targeting (URL rules), trigger rules (when to fire), and audience filters (who sees it). Default 'all users on all pages' is almost always wrong.
Page targeting: pick specific URLs. Common patterns: 'Show on /blog/* to capture blog readers', 'Show only on /pricing to upsell viewers', 'Show on cart abandonment paths to re-engage.'
Exclude pages: ALWAYS exclude /checkout/*, /thank-you, /account, /admin. Showing CTAs on these pages is pure annoyance — the user is mid-conversion or post-conversion.
Trigger rules: pick from On page load (most aggressive, lowest conversion), After X seconds (better — 15-30s lets the user engage before interrupting), On scroll % (best — fire after 50-70% scroll, after the user has shown intent), Exit-intent (best for desktop — fires when cursor leaves the page).
Recommended defaults: For blog/content: scroll 50% trigger. For pricing/product: exit-intent on desktop, scroll 70% on mobile. For homepage: exit-intent or 20-second delay.
Audience filters: device (Desktop, Tablet, Mobile), traffic source (organic, paid, direct), new vs returning visitor, country. Common pattern: 'Show this offer only to first-time visitors from paid traffic to /pricing.'
Don't show the same CTA to returning visitors who already saw it. Use Crazy Egg's frequency cap (next step) to prevent fatigue.
Step 4
Once a user closes the pop-up, do NOT show it again that session — and ideally not for 7-30 days. Crazy Egg's frequency settings are buried but critical.
In the CTA settings → Display Frequency.
Set "Show again to same user after: 30 days" minimum. 7 days is acceptable for time-sensitive promotions; 30 days is the default for evergreen email capture.
Set 'Stop showing after: 1 conversion per user' — once they submit the form, never show it again. Most setups skip this and re-show the same pop-up to users who already submitted, which is hostile.
Set 'Maximum displays per session: 1' — even if the user navigates to a new page within the same session, the pop-up should fire only once.
On exit-intent CTAs: cap to 1 firing per session AND 1 firing per 7 days. Otherwise, every page navigation triggers the exit-intent on the previous page — relentless.
Skipping frequency caps is the #1 reason 'our pop-up converts at 0.3%' — half the impressions are to users who've already seen and closed it. Real first-time-impression conversion rate is 2-5x higher.
Step 5
CTA → Integrations → connect Mailchimp, Klaviyo, ConvertKit, or generic webhook. Without this, submitted emails go nowhere.
Open the CTA → Integrations tab.
Crazy Egg has native connectors for Mailchimp, Klaviyo, ConvertKit, HubSpot, Drip, ActiveCampaign, and most major ESPs. Click your ESP → authenticate via OAuth → pick the list or audience to add subscribers to.
If your ESP isn't natively supported: use the Webhook option. Configure a webhook URL pointing to a Zapier endpoint that routes the submission to your ESP. Adds 100-300ms latency but works for any service.
Add UTM tags to the subscription: 'source=crazy-egg', 'medium=cta-card', 'campaign=<cta-name>'. Lets you measure downstream revenue from CTA-acquired subscribers vs other acquisition sources.
Send a test submission: open the CTA in preview mode, fill in your own email, hit submit. Confirm the email appears in your ESP within 1-2 minutes. Confirm any welcome email or autoresponder fires.
If submissions don't reach your ESP: check the webhook destination, the OAuth scope (some ESPs require re-authentication after a few months), and any double-opt-in settings that might silently hold subscribers in a pending state.
Step 6
Test in incognito. Confirm trigger fires on the right page/time, form submits, and downstream email lands. Then measure with a holdout group to confirm the CTA is net-positive.
Open the target URL in clean incognito. Verify the CTA fires according to your trigger (after scroll %, exit-intent, etc.).
Close the CTA. Reload the same page. Confirm the CTA does NOT re-fire (frequency cap is working).
Submit the form. Confirm: (a) the form clears or shows success state, (b) the email arrives in your ESP within 5 minutes, (c) the welcome email/autoresponder fires if configured.
Now the important step that 90% of operators skip: measure revenue impact, not just email capture rate. Create a holdout group: in Crazy Egg's audience settings, exclude 20% of visitors from seeing the CTA.
Compare conversion rate (purchase, signup, whatever your core metric is) between the 80% who saw the CTA and the 20% who did not. After 30 days at sufficient volume, if the CTA group has HIGHER core conversion: the CTA is real lift, scale it. If LOWER: the CTA captures emails but loses revenue. Kill it.
Without the holdout test, you're flying blind. Email-capture rate alone is vanity — the question is 'are users who see this CTA more likely to buy from us overall?'
Step 7
Once a CTA is performing, A/B test variations: headline, button copy, offer, trigger timing. Treat CTAs like landing pages — never finished.
Once the CTA is shipped and the holdout test confirms net-positive impact, A/B test variations.
Test 1 — Headline: 'Get 10% off' vs 'Save $20 on your first order'. Specific dollar amounts usually win.
Test 2 — Trigger timing: scroll 50% vs scroll 70% vs exit-intent. Different triggers have very different conversion-rate AND revenue-impact profiles.
Test 3 — Offer: discount vs free shipping vs gated content (lead magnet). Different offers attract different cohorts — measure downstream LTV, not just capture rate.
Test 4 — Form fields: email-only vs email + name vs email + name + company. Each extra field cuts conversion ~10-30%. The right number depends on what your sales team actually uses downstream.
Run each test for 2-4 weeks at sufficient sample size (see the A/B Tests tutorial for sample-size math). Ship winners; document losses.
After 6-12 months of disciplined testing, a well-tuned CTA program contributes 5-15% of total email-list growth and 2-8% of total revenue on most ecommerce/SaaS sites.
Common mistakes
Measuring CTA success by email-capture rate instead of revenue impact
What goes wrong: CTA captures 1,000 emails/month. Operator declares success. Meanwhile, the pop-up annoys 50,000 visitors who close it and bounce — 1-3% of those would have purchased had they not been interrupted. On a $50K/mo revenue site, this is $500-1,500/mo of lost revenue masked by an exciting-looking email-capture number. Net negative for 12 months before someone notices.
How to avoid: Run a 20% holdout group. Compare core conversion rate (purchase, signup) between users who saw the CTA and users who did not. Only scale CTAs with net-positive holdout results.
Showing pop-ups on mobile (SEO penalty + UX penalty)
What goes wrong: Mobile users hit a pop-up on page load. Many bounce immediately. Google detects intrusive interstitial → mobile ranking signal degrades. Within 60-90 days, the site loses 10-25% of mobile organic traffic. On a $20K/mo organic-driven business, this is $2K-5K/mo of lost revenue from a single mis-deployed pop-up.
How to avoid: Restrict pop-ups to desktop. On mobile, use Banner or Inline only — or use exit-intent (which Google does NOT penalize because it does not fire on initial page load).
Showing CTAs on checkout, thank-you, and account pages
What goes wrong: Pop-up fires on a checkout page. User abandons cart out of confusion/annoyance. Or fires on the thank-you page with a 'Sign up for our newsletter!' card — except the customer just paid and is now confused whether their order went through. Lost revenue (~$200-800/mo on a $30K/mo store) plus damaged trust on legitimately-paying customers.
How to avoid: Always exclude /checkout/*, /thank-you, /account/* from CTA targeting. Customers in those flows are mid- or post-conversion — interruptions only hurt.
No frequency cap — pop-up fires every page load
What goes wrong: User closes the pop-up, navigates to a new page on your site, pop-up fires again. Closes it, navigates again, pop-up fires again. By the 3rd time, user bounces and leaves a 1-star review. On high-page-depth traffic (blogs, recipe sites), this affects 20-30% of users — significant trust damage that takes months to recover.
How to avoid: Set frequency cap: 1 display per session, do not re-show for 30 days after close, do not show again after conversion. Always cap.
Tying CTA to email capture but never sending follow-up email
What goes wrong: Pop-up captures 500 emails/month. Those emails sit in a list with no welcome email, no nurture sequence, no offer. After 3 months, list engagement collapses (gmail flags as spam) and the captures stop being deliverable. ~$200-1,000/mo of subscriber acquisition cost wasted on a list that doesn't convert.
How to avoid: Before launching the CTA, set up at minimum a 3-email welcome sequence in your ESP. Day 0 = thanks + discount code. Day 2 = brand story. Day 5 = product introduction. Activate the CTA only after the sequence is live.
Hiding the close button to force conversion
What goes wrong: Some templates make the close X tiny or off-color. User can't find it, gets frustrated, leaves the site, leaves a complaint. Plus Google's UX signals (rage clicks on the page) flag the page as low quality, hurting rankings. Direct cost: 5-15% drop in mobile organic traffic over 60-90 days = $1K-5K/mo on a $20K/mo organic business.
How to avoid: Make the close X visible and clickable in under 1 second. The user who closes today might convert next week if you respected them today. Dark patterns are short-term wins that compound into long-term losses.
Recap
Done — what's next
How to set up A/B tests in Crazy Egg the right way
Read the next tutorial
Hand it off
CTA cards are deceptively easy to ship and deceptively easy to net-negative your revenue. A specialist runs CTAs as a measured A/B program — holdout groups, downstream revenue, and follow-up sequences — to confirm each one is real lift before scaling. Typical engagement runs $400-1,000/mo at $14-16/hr.
See specialist rates
On mobile, yes if it fires on page load — Google penalizes intrusive interstitials. On desktop, pop-ups don't directly affect rankings, but if they cause high bounce or short session durations, indirect ranking signals may degrade. Use exit-intent (not page-load) on mobile, and ALWAYS provide a clearly visible close button.
Two ways: (1) Use Crazy Egg's CTA A/B feature directly — create two variants of the same CTA and split traffic 50/50. (2) Run a holdout group — 80% of users see the CTA, 20% don't. The holdout method is better for measuring net revenue impact; the A/B variant method is better for testing copy/design variations once the CTA is confirmed net-positive.
Yes within limits. Crazy Egg supports: page-load trigger, time-on-page trigger, scroll-% trigger, exit-intent trigger, and click trigger (clicked a specific element). For more complex triggers (e.g., 'fired event X 3 times'), you'd need a dedicated pop-up tool like ConvertBox or OptinMonster.
Some ad blockers (uBlock Origin, AdGuard) block Crazy Egg's tracker domain by default — these users won't see the CTA. Estimated 20-30% of tech-savvy traffic uses ad blockers; for most B2C ecommerce/content sites, the blocked fraction is closer to 5-15%. Real users without blockers (the majority) will still see CTAs.
If your CTA collects email or any PII, EU users must consent first. Two approaches: (1) Gate Crazy Egg behind your consent banner — Crazy Egg doesn't load until the user accepts analytics cookies, so CTAs don't fire. (2) Add a consent checkbox to the form itself ("Yes, I agree to receive marketing emails") with double-opt-in confirmation. The first approach is cleaner.
Technically yes (e.g., a Banner + an Inline + an exit-intent Pop-up). Practically don't — stacking CTAs cuts each one's conversion rate AND compounds annoyance. One CTA per page max. If you have multiple offers, pick the highest-value one for each page.
Crazy Egg
Crazy Egg's A/B Test editor is the easiest in the market — and that's the problem. Easy makes operators ship tests on 100-visitor samples and call a 12% lift 'a win.' This is the setup that prevents that and ships only tests that actually moved the needle.
Crazy Egg
Crazy Egg's Snapshot is a five-report bundle (Heatmap, Scrollmap, Confetti, Overlay, List). Most operators read one and skip the other four — and the four they skipped were the ones that answered the question. This is the setup that reads the whole bundle.