TLDR;
- Your assumption is correct: the 7-day attribution window is a hard limit. Any payment after 7 days from the click won't be reported as a conversion for that ad.
- Stop trying to optimise for ROAS. For a subscription model with a free trial, it's a flawed metric that will handicap your campaigns. Your real goal is acquiring high-value users, not the initial small payment.
- The best solution is to change your campaign objective. Optimise for the Start Trial event. This gives the algorithm fast, plentiful data to work with inside the attribution window.
- You must know your numbers. Calculate your effective Customer Acquisition Cost (CAC) based on your trial-to-paid conversion rate, and compare that against your Customer Lifetime Value (LTV). An LTV:CAC ratio of 3:1 is a healthy target.
- This letter includes two interactive calculators to help you determine your effective CAC from trial costs and your overall LTV, giving you the real metrics you need to scale profitably.
Hi there,
Thanks for reaching out. That's a really sharp question and you've hit on one of the biggest headaches for anyone advertising a subscription app. I'm happy to give you some of my initial thoughts and guidance on it.
The short answer to your question is, yes, you're right to be concerned. The 7-day click attribution window is a hard stop. It's not flexible. Any conversion event that happens 7 days and 1 second after the click is invisible to the Facebook ads manager for optimisation purposes. This is a direct result of privacy changes like Apple's iOS14 update, and it's not going away.
So, your scenario is spot on. The user clicks, starts a trial, and when their card is finally charged, the attribution window has slammed shut. Trying to run a campaign with a ROAS goal in this situation is like trying to fly a plane by looking in the rearview mirror. The algorithm never gets the signal it needs to properly learn and optimise, so your campaigns will just sputter and burn cash without ever finding momentum.
We'll need to look at your real goal...
This is where we need to take a step back and bust a common myth. For a business like yours, optimising for immediate ROAS is the wrong strategy. Your goal isn't to get a single subscription payment; your goal is to acquire a customer who will hopefully pay you every month for a year or more. The first payment is almost irrelevant compared to the total lifetime value (LTV) of that customer.
I remember working on a campaign for an app where we achieved over 45,000 signups at under £2 per signup. We didn't do that by focusing on the initial sale. We did it by focusing on the most important early indicator of a future paying customer: the trial start. That's where your focus should be.
I'd say you optimise for the trial start, not the sale...
Instead of chasing a ROAS target you can't measure, you should switch your campaign objective to Conversions and set your optimisation event to 'StartTrial'. This completely changes the game for the algorithm.
Why does this work? Because the 'StartTrial' event happens almost immediately after the ad click and install, well within the 7-day window. This gives the algorithm a constant stream of positive feedback. It can quickly learn what kind of users are most likely to start a trial and then go find more people just like them. You'll get more data, faster optimisation, and your costs will come down.
Of course, the immediate objection is "but not all trial users will convert to paid!". And that's true. But this is a numbers game. You need to do a bit of simple maths on the backend. You need to track two key metrics:
- Your Cost Per Trial Start: This is what you'll see in the Facebook Ads Manager.
- Your Trial-to-Paid Conversion Rate: The percentage of trial users who become paying subscribers. You track this in your own system.
With these two numbers, you can calculate your true Customer Acquisition Cost (CAC):
CAC = (Cost Per Trial Start) / (Trial-to-Paid Conversion Rate)
For example, if you're paying £5 for each trial start and 20% of those users convert to paid, your actual CAC is £5 / 0.20 = £25. Now you have a real number you can use to measure success. This is a far more reliable way to manage your campaigns than flying blind with a broken ROAS metric.
Here's a simple calculator to help you see how these two levers affect your actual cost to get a paying customer.
Effective Customer Acquisition Cost (CAC) Calculator
You'll need to calculate your Customer Lifetime Value (LTV)...
Now that you know your CAC, the next question is: is £25 a good price to pay for a customer? The only way to answer that is to know what a customer is worth to you. This is where Customer Lifetime Value (LTV) comes in. This is the single most important metric for any subscription business, and it's what separates the companies that scale successfully from those that burn out.
The calculation is pretty straightforward:
LTV = (Average Revenue Per User Per Month * Gross Margin %) / Monthly Churn Rate %
- Average Revenue Per User (ARPU): How much you make from a single subscriber each month.
- Gross Margin %: Your profit margin after costs like app store fees, server costs, etc.
- Monthly Churn Rate %: The percentage of subscribers you lose each month.
Let's say your app costs £10/month (ARPU), your margin is 70% (after Apple/Google's cut), and you lose 5% of your subscribers each month (churn). Your LTV would be (£10 * 0.70) / 0.05 = £140.
A healthy business model aims for an LTV:CAC ratio of at least 3:1. In our example, with an LTV of £140, you could afford to spend up to £46 to acquire a customer and still have a very profitable model. Suddenly that £25 CAC we calculated looks fantastic, doesn't it? This is the maths that allows you to spend money confidently to grow your user base.
Customer Lifetime Value (LTV) & Target CAC Calculator
You probably should look into Offline Conversions...
There is another, more advanced technique you can use alongside optimising for trial starts. It's called Offline Conversion Uploads. This is where you periodically export a list of the users who actually became paying customers from your system and upload it back to Facebook. You can match them based on email address, phone number, or other details.
This does not solve the real-time optimisation problem, because the data is delayed. However, it is incredibly powerful for two things:
- True Reporting: It allows you to see in Facebook's reporting which campaigns, ad sets, and ads are *actually* driving paying customers, even though it's with a time lag.
- Audience Building: This is the most valuable part. Once you upload this data, you can create a Custom Audience of your actual paying customers. From there, you can create high-quality Lookalike Audiences. A Lookalike Audience of people who have actually given you money is far more powerful than a Lookalike of people who just visited a webpage. We have seen this reduce acquisition costs significantly for many SaaS clients, like one B2B software where we got registrations down to $2.38 each using this exact approach.
Think of it this way: you use the 'StartTrial' optimisation to feed the algorithm speed and volume, and you use Offline Conversions to feed it quality and precision for your audience targeting. The two working together is the professional approach.
Ad Click
User sees and clicks your ad.
App Install
User downloads your app.
Trial Start
OPTIMISE HERE. Fast, high-volume data for the algorithm.
Payment
Occurs on Day 7+, outside the window.
Offline Upload
Upload paying customer list to build powerful Lookalike audiences.
I've detailed my main recommendations for you below:
To put it all together, this is the exact strategy I would implement. It moves away from the broken ROAS model and focuses on a system that is built for how the ad platforms actually work today, giving you reliable metrics to scale your app profitably.
| Component | Recommendation |
|---|---|
| Campaign Objective | Conversions. This tells the algorithm your goal is to drive a specific action. |
| Optimisation Event | Start Trial. This is the most important change. It's a high-value action that happens inside the attribution window. |
| Primary Ad Metric (KPI) | Cost Per Trial Start. This becomes your main performance indicator in the Ads Manager. |
| Primary Business Metric | Effective Customer Acquisition Cost (CAC). Calculated as (Cost Per Trial Start / Trial-to-Paid Rate). |
| Success Metric | LTV:CAC Ratio > 3:1. The ultimate measure of whether your advertising is profitable and scalable. |
| Audience Strategy | Use Offline Conversion uploads of paying customers to build high-quality Lookalike Audiences. |
| What to ignore | ROAS and Cost Per Purchase in the Ads Manager. These metrics are unreliable for your model and will lead you astray. |
Getting this structure right is the difference between struggling to get traction and building a scalable, predictable customer acquisition engine. It requires a bit more thought than just setting a ROAS goal, as you need to connect your ad performance to your actual business financials, but it's definately the right way to do it.
This is precisely the kind of strategic work we do for our clients. It's not just about managing ads; it's about building the entire growth framework around them. If you feel like you could benefit from having an expert partner to help implement this and take your app's growth to the next level, we offer a free, no-obligation initial consultation where we can look at your specific situation in more detail.
Hope this helps!
Regards,
Team @ Lukas Holschuh