Skip to main content

Overview

The Page Ripper feature captures complete, self-contained snapshots of ad landing pages so you can study funnels offline, customize them for your own campaigns, and preserve pages before they go down.

What is Page Ripper?

Page Ripper uses headless browser technology to:
  • Capture full HTML — Self-contained page snapshot with all assets
  • Download as ZIP — Organized folder with HTML, CSS, JS, images, fonts, and media
  • Preserve layout — Pixel-perfect offline rendering
  • Skip login walls — Only works for public landing pages (no Facebook/Meta URLs)
Page Ripper runs server-side using headless Chromium. The entire capture happens in one synchronous request — no job queues or background processing.

How to Use Page Ripper

1

Open Ad Detail Modal

Click any ad in the feed to view full details
2

Check Landing Page URL

The modal shows the resolved landing page URL (non-Meta URLs only)
3

Click 'Rip Landing Page'

Press the button in the Page Ripper section
4

Wait for Capture

Progress indicator shows capture status (can take up to 2 minutes for large pages)
5

Download ZIP

Your browser downloads the ZIP archive automatically on success

What You’ll Get

The ZIP archive contains:
landing-page-YYYY-MM-DDTHH-MM-SS.zip
├── page.html            # Self-contained HTML (inline CSS/JS)
└── assets/
    ├── css/             # External stylesheets
    ├── js/              # JavaScript files
    ├── images/          # PNG, JPG, SVG, WebP, AVIF, ICO, GIF
    ├── fonts/           # WOFF, WOFF2, TTF, OTF, EOT
    └── media/           # MP4, WebM, MP3, OGG, WAV
The page.html file is self-contained and can be opened directly in a browser without extracting assets. The assets/ folder contains referenced external resources.

Landing Page Detection

AdRecon automatically resolves landing pages:
  1. Primary sourcedestination_url field from ad data
  2. Fallback — URLs extracted from ad copy and link description
  3. Unwrapping — Facebook redirect URLs (/l.php) are unwrapped to final destination
  4. Filtering — Meta platform URLs (facebook.com, instagram.com) are excluded

When Page Ripper is Available

The button appears when:
  • ✅ A non-Meta landing URL is detected
  • ✅ The URL is a valid HTTP(S) address
  • ✅ The ad modal shows “Open Landing Page” button as active

When Page Ripper is Unavailable

You’ll see a disabled state or message when:
  • ❌ Landing page is a Meta platform URL (Facebook, Instagram, Threads)
  • ❌ No landing page URL detected in ad data
  • ❌ Landing URL is invalid or non-HTTP
  • ❌ Another capture is already in progress
Page Ripper cannot capture Facebook/Instagram pages — these require login and have bot protection. Only public landing pages (external domains) are supported.

Capture Process Details

What Happens Server-Side

  1. Validation — URL checked for SSRF safety (no private IPs, DNS rebinding protection)
  2. Rate limiting — 10 captures per user per 15 minutes
  3. Browser launch — Headless Chromium starts via Puppeteer
  4. Navigation — Page loads with 60-second timeout
  5. Auto-scroll — Triggers lazy-loaded images and content
  6. Capture — SingleFile library extracts HTML + intercepts network resources
  7. Packaging — ZIP archive created with categorized assets
  8. Cleanup — Browser closed, response streamed to client
The server enforces a 110-second hard timeout. If the page takes longer to capture, you’ll receive a 504 timeout error.

Progress States

  • Idle — “Rip Landing Page” button ready
  • Loading — Progress bar + status message (“Launching browser…”, “Capturing page…”)
  • Success — Green checkmark + “Landing page ripped” message
  • Error — Red error icon + retry button

Rate Limiting

Page Ripper enforces a rate limit:
  • 10 captures per user per 15 minutes
  • Sliding window — Resets continuously, not at fixed intervals
  • 429 response — Includes Retry-After header with seconds until next slot
Rate limit failures show a toast notification with retry time. The button remains disabled until the window resets.

Common Use Cases

Funnel Research

Download competitor landing pages to analyze copywriting, layout, and CTAs

Swipe File

Build an offline library of high-converting pages for creative inspiration

Page Archival

Preserve landing pages before they’re taken down or changed

Template Customization

Download page structure and customize HTML/CSS for your own offers

Troubleshooting

”Page rip failed” (500 error)

  • Cause: Browser crash, invalid HTML, or capture exception
  • Solution: Click Try Again. If repeated failures, the page may have anti-bot protection.

”Page capture timed out” (504 error)

  • Cause: Page took longer than 60s to load, or total capture exceeded 110s
  • Solution: The page is too slow or complex. Try again later or use browser DevTools to save manually.

”Rate limit exceeded” (429 error)

  • Cause: You’ve captured 10 pages in the last 15 minutes
  • Solution: Wait for the time shown in the error message, then retry
If you repeatedly hit timeouts, the target site may be blocking headless browsers. Page Ripper cannot bypass anti-bot protections.

Technical Limitations

  • No JavaScript execution — Captured page is static HTML; dynamic JS behavior won’t work offline
  • No login-gated content — Only publicly accessible pages can be captured
  • No iframe content — Cross-origin iframes are not captured
  • Limited cookie state — Browser runs unauthenticated; personalized content won’t appear