Feature

Win-back campaigns and Apple win-back offers for lapsed subscribers

RevenueDot has two win-back tools. Win-back campaigns email customers whose subscription ended a button back to the store, once per customer, with click tracking and one-click unsubscribe. Apple's iOS 18 win-back offers work with the RevenueCat SDK unchanged, and RevenueDot records each offer on the purchase and in webhooks.

Free up to $10,000 a month in tracked revenue. Works with the RevenueCat SDK you already ship.

The RevenueDot win-back campaign editor for a campaign named Lapsed Pro subscribers. Counters show sent, opened, clicked, reactivated and revenue. The audience is subscribers whose last subscription ended between 1 and 90 days ago, with product and store tick boxes, and an email preview with a Resubscribe button.
A campaign: audience on the left, an email preview and a count of who would get it today on the right.

Once per customer

Each customer gets a campaign's email once. Sandbox purchases never count.

Tracked and compliant

Click tracking, optional open tracking, one-click unsubscribe with RFC 8058 headers and a suppression list.

Reactivation count

Customers who bought or started a trial within 30 days of the email, and their revenue.

Apple offers recorded

offer_code and offer_type on every period, including win_back, in webhooks and exports.

Steps

How to email lapsed subscribers a win-back offer

Customers need an email address in the $email attribute, which you set with Purchases.shared.attribution.setEmail(_:) or the API. Set the Customer Center support email under Lifecycle, then Support, because replies go there.

  1. 01

    Create a campaign

    Open Lifecycle, then Win-back, and select Create campaign.

  2. 02

    Choose the audience

    Customers whose last subscription ended between N and M days ago and who have no active subscription. Narrow by products, stores or a saved audience. Preview shows who would get the email today.

  3. 03

    Write the email

    Add a subject, heading, body and button label. The email goes out under your app's name with an unsubscribe link.

  4. 04

    Choose where the button goes

    Send App Store customers to their subscriptions page, where Apple lists the win-back offers they can redeem, and Google Play customers to the Play Store page. Or send everyone to your own https link, such as a web checkout.

  5. 05

    Schedule and start

    Active campaigns send once a day at the UTC hour you choose, to at most 500 customers a day. Send test emails you a sample, and Send now runs the campaign at once.

What do win-back campaign results show?

Every email has an unsubscribe link. When your server's public URL is https, the email also carries one-click List-Unsubscribe and List-Unsubscribe-Post headers (RFC 8058). An address that unsubscribes never gets another win-back email from the project. A project's campaigns together send at most 2,000 emails in 24 hours.

  • Sent, clicked and unsubscribed.
  • Opened, only when Track opens is on. It adds a 1x1 image to the email.
  • Reactivated: customers who bought or started a trial within 30 days of the email, and the revenue from them.

How do Apple win-back offers work with RevenueDot?

Win-back offers are discounted or free periods Apple shows to customers whose subscription lapsed, on iOS 18 and later. The RevenueCat SDK does the win-back work on the device, so your app code stays the same and the offer needs no signature from the server. RevenueDot grants access, records the offer and keeps Apple's eligibility list.

A win-back purchase arrives as a RENEWAL with the offer id in offer_code. A paid win-back period has period_type: NORMAL and a free one has TRIAL.

RENEWAL webhook (shortened)JSON
{
  "api_version": "1.0",
  "event": {
    "type": "RENEWAL",
    "app_user_id": "user_1",
    "product_id": "pro_monthly",
    "period_type": "NORMAL",
    "transaction_id": "2000000007",
    "original_transaction_id": "2000000001",
    "price_in_purchased_currency": 4.99,
    "offer_code": "comeback_50",
    "store": "APP_STORE"
  }
}

How do you list the win-back offers a customer can redeem?

RevenueDot stores Apple's list of win-back offers each time it reads the renewal info. offer_ids is Apple's list, best offer first, and is empty when Apple offers the customer nothing. Use it to send a lapsed customer the offer from your own email tool. This endpoint is a RevenueDot extension.

Eligible win-back offerscurl
curl -s https://api.revenuedot.app/v2/projects/$PROJECT_ID/customers/user_1/win_back_offers \
  -H "Authorization: Bearer $SECRET_KEY"

What are the limits of win-back?

  • Create the Apple win-back offer in App Store Connect on a subscription App Review has approved. RevenueDot needs the app's In-App Purchase key and App Store Server Notifications turned on.
  • Google Play has no separate win-back offer type. An offer you build for lapsed subscribers in Play Console arrives with its offer id like any other offer.
  • Charts have no offer-type dimension yet.
  • On RevenueDot Cloud, win-back email comes from no-reply@mail.revenuedot.app with Reply-To set to your support email. Custom sending domains are not available.

FAQ

Win-back: questions people ask

How do I email churned subscribers an offer?

Create a win-back campaign in RevenueDot under Lifecycle, then Win-back. Choose customers whose subscription ended between two dates, write the email and pick where the button goes, such as the App Store subscriptions page. RevenueDot sends it daily at your chosen hour and counts who came back.

What are Apple win-back offers?

They are discounted or free periods that Apple shows to customers whose subscription lapsed, on iOS 18 and later. You create them in App Store Connect. The RevenueCat SDK handles them on the device, and RevenueDot records the offer on the resulting RENEWAL.

Does RevenueDot track win-back offer purchases?

Yes. Each subscription period and transaction stores its offer type and the store's offer id. Webhooks carry the id in offer_code, and the transaction export has offer and offer_type columns that say win_back.

Is it legal to send win-back emails?

RevenueDot adds an unsubscribe link and one-click unsubscribe headers, honors unsubscribes for good and sends only to the address you saved on the customer. The rules for consent differ by country, so check them with your own counsel before you send.

Can I send win-back offers to Google Play customers?

You can email them. The button goes to the Play Store page of their subscription or to your own link. Google Play has no separate win-back offer type, so build the offer in Play Console as a developer-determined offer.

Get started

Run subscriptions without the revenue share.

Start free on RevenueDot Cloud, free up to $10,000 a month in tracked revenue, or move an existing RevenueCat app with one line of code.

Already have an account? Sign in · Prefer your own servers? Self-host free