> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.outpost.pub/llms.txt
> Use this file to discover all available pages before exploring further.

# Metered Paywalls & Registration Walls

> Meter how many posts readers can access before being prompted to subscribe or upgrade, with real-time conversion tracking.

Outpost's paywall system lets you limit how many posts a reader can view before they're prompted to sign up (registration wall) or upgrade to a paid subscription (metered paywall). This is configured through the [Auto Display](/features/ctas) system's **Registration/Metered Wall** slot.

<Frame caption="Registration/Metered Wall configuration with stats and limits">
  <img src="https://mintcdn.com/outpost-eb0cfbad/7Kq7FfrXdvKAXGxP/images/ctas/auto-display-slots-paywall.png?fit=max&auto=format&n=7Kq7FfrXdvKAXGxP&q=85&s=0e5bb23cb4a612eb550fa4d35b1bb776" alt="Registration/Metered Wall showing real-time stats, article limit settings, and tag exclusions" width="1919" height="1415" data-path="images/ctas/auto-display-slots-paywall.png" />
</Frame>

## How it works

Outpost tracks how many unique posts each reader has viewed. When their view count exceeds the configured limit, a paywall popup appears instead of the post content. The limit means "up to N posts" — the wall appears on post N+1. For example, if the limit is set to 10, the reader can view 10 posts freely and the paywall appears on the 11th post.

The paywall slot is **disabled by default** and must be enabled in Auto Display before it takes effect.

Paid and complimentary members bypass the metered paywall entirely — it only applies to unknown visitors and free members.

There are two independent walls:

| Wall                  | Who it affects                   | What it shows                                |
| --------------------- | -------------------------------- | -------------------------------------------- |
| **Registration Wall** | Unknown (non-logged-in) visitors | A subscribe popup prompting free signup      |
| **Metered Paywall**   | Free members                     | An upgrade popup prompting paid subscription |

Both can run simultaneously — a reader might hit the registration wall first, sign up for free, and later hit the metered paywall.

```mermaid theme={"theme":{"light":"github-light","dark":"github-dark"}}
flowchart TD
    V([Reader opens a post]) --> A{Logged in?}
    A -- no --> R{Registration wall<br/>enabled?}
    R -- yes --> RW([Show subscribe popup])
    R -- no --> P
    A -- yes --> T{Member type?}
    T -- paid or comp --> F([Show post — bypass])
    T -- free --> P{Within view limit?}
    P -- yes --> F
    P -- no --> U([Show upgrade popup])
```

## Setting up the paywall

Go to **CTAs/Buttons/Popups → Auto Display**, then click the **Registration/Metered Wall** tab.

### Assigning audiences

The **Assign** section has two audience rows, each with an enable toggle and a CTA dropdown:

* **Unknown Audience** — toggle on to enable the registration wall, then pick a subscribe-style paywall popup (e.g., "Paywall Popup Modern - Subscribe").
* **Free Audience** — toggle on to enable the metered paywall, then pick an upgrade-style paywall popup (e.g., "Paywall Popup Modern - Upgrade").

Toggle either row off to disable that wall on its own, or toggle both off to turn metering off entirely while leaving other Auto Display slots running.

### Article limits

The **Settings** section has the post-count fields:

| Setting                        | Description                                                                                             | Default |
| ------------------------------ | ------------------------------------------------------------------------------------------------------- | ------- |
| **Unknown Member posts limit** | Number of posts an unregistered visitor can read per 30-day period before seeing the registration wall. | 10      |
| **Free Member posts limit**    | Number of posts a free member can read per month before seeing the metered paywall.                     | 20      |

### Display trigger

Choose when the paywall appears on a metered post:

| Option                    | Description                                                             |
| ------------------------- | ----------------------------------------------------------------------- |
| **On page load**          | Paywall shows immediately when the page loads                           |
| **On scroll depth**       | Paywall shows after the reader scrolls a certain percentage (e.g., 25%) |
| **Delay after page load** | Paywall shows after a set number of seconds                             |

### Tag exclusions

Use **Don't show on posts with tags** to exempt specific posts from metering. For example, tag your most important posts with `#free-access` and add that tag to the exclusion list so they're always accessible.

## Editing the paywall popups

Edit the popup content (headline, body text, button text) in the [CTA Library](/features/cta-library#library) under the Registration/Metered Wall tab.

## Real-time stats

A stats panel at the top of the tab shows live counts:

* **The Registration Wall has been shown *N* times** — total displays to unknown visitors.
* **The Metered Paywall has been shown *N* times** — total displays to free members.
* **Free signups** after hitting the Registration Wall, with click-through rate.
* **Paid upgrades** after hitting the Metered Paywall, with click-through rate.

For a deeper view across all CTAs, see the [CTA Dashboard](/features/cta-dashboard).

## Ghost native paywalls

Ghost also supports content-level gating via the `<!--members-only-->` tag in posts. Content below this tag is hidden from non-members. Outpost's metered paywall is a separate, complementary system:

| Feature       | Ghost native                           | Outpost metered paywall                         |
| ------------- | -------------------------------------- | ----------------------------------------------- |
| **Scope**     | Per-post (manually added to each post) | Site-wide (automatic across all posts)          |
| **Control**   | All-or-nothing per post                | Configurable article limit                      |
| **Targeting** | Members vs non-members                 | Unknown visitors, free members, or paid members |
| **Analytics** | None                                   | Real-time stats with conversion tracking        |

Both systems can be used together — Ghost's native gating for specific premium posts, and Outpost's metered wall for site-wide article limits. Posts that are already gated natively in Ghost (with visibility set to "members," "paid," or specific tiers) are automatically excluded from Outpost's metered paywall, so readers are never double-gated.

## Customizing the paywall appearance

Paywall popup design inherits from your [Default Design](/features/cta-library#default-design) settings. You can also customize individual paywall CTA styles in the [Library](/features/cta-library#library) under the Registration/Metered Wall tab.

## Debugging the paywall

If the paywall doesn't appear as expected, Outpost can show a debug panel directly on the page explaining its decision. Debug mode has to be switched on for your site by the Outpost team first — contact support to enable it. Then add `?outpost_debug=1` to any page URL on your site (e.g., `https://yoursite.com/some-post?outpost_debug=1`) and a panel appears in the corner of the page showing:

* Whether the paywall slot is enabled
* The current visitor's post view count and what their limit is
* Why the paywall did or did not appear on that page
* Whether the post was excluded by a tag rule or site-wide exclusion

<Tip>
  When troubleshooting the paywall, ask support to enable debug mode first — the on-page panel explains exactly why the paywall did or didn't appear.
</Tip>

***

## Frequently asked questions

<AccordionGroup>
  <Accordion title="What's the difference between the Registration Wall and the Metered Paywall?">
    The Registration Wall targets unknown visitors (not logged in) and prompts them to sign up for a free account. The Metered Paywall targets free members and prompts them to upgrade to paid. They're independent — a visitor might hit the registration wall, sign up for free, and later hit the metered paywall.
  </Accordion>

  <Accordion title="How does the 30-day rolling period work?">
    Outpost tracks viewed posts over an approximately one-month window. The view count resets roughly once a month — it is not a precise daily rolling window, so the reset may not fall on an exact calendar date.
  </Accordion>

  <Accordion title="How do I disable just the registration wall but keep the metered paywall?">
    In the **Assign** section, toggle off the **Unknown Audience** row. The metered paywall (Free Audience) keeps running.
  </Accordion>

  <Accordion title="Can I use Ghost's native paywall AND Outpost's metered paywall together?">
    Yes. Ghost's native `<!--members-only-->` tag gates specific posts all-or-nothing. Outpost's metered paywall works automatically across your entire site with article limits. Use Ghost's tag for specific premium posts and Outpost's wall for site-wide metering.
  </Accordion>

  <Accordion title="If I turn off the Auto Display master toggle, does the paywall stop working?">
    Yes. The Registration/Metered Wall is an Auto Display slot, so toggling off the master toggle disables it along with all other Auto Display CTAs.
  </Accordion>

  <Accordion title="Can I exclude certain posts from the paywall?">
    Yes. Use the "Don't show on posts with tags" field to exempt posts with specific Ghost tags. For example, tag important posts with `#free-access` and add that tag to the exclusion list.
  </Accordion>
</AccordionGroup>

***

## Related features

<CardGroup cols={2}>
  <Card title="Auto Display CTAs" icon="bullhorn" href="/features/ctas">
    The Registration/Metered Wall is configured as an Auto Display slot
  </Card>

  <Card title="Tiers & Pricing" icon="layer-group" href="/features/tiers-and-pricing">
    Set up the paid tiers that readers upgrade to
  </Card>

  <Card title="CTA Dashboard" icon="chart-bar" href="/features/cta-dashboard">
    View paywall performance analytics
  </Card>
</CardGroup>
