Skip to main content

Congrats on the launch of the new Customer Center beta! It looks very cool.

I’m excited about the promotional offer support, but I’m confused: it looks like we can only configure a single iOS promo offer ID per case (cancel vs. refund).

But I thought that iOS promo offers were attached to specific subscriptions (plans/products)? So wouldn’t we need to be able to specify different promo offers depending on the specific plan/product the user is on? (Or the ability to specify an Apple product ID too?)

Thanks!

Thanks! You’re correct that you can only configure a single Promo Offer per entry (case) in the JSON.

That said, you aren’t limited to just ‘cancel’ and ‘refund’ as entries. You could have something like this:

{
"promotional_offers": {
"std_subscription_cancel": {
"ios_offer_id": "<app_store_offer_id>",
...other props
},
"std_subscription_expire": {
"ios_offer_id": "<app_store_offer_id>",
...other props
},
"pro_subscription_cancel": {
"ios_offer_id": "<app_store_offer_id>",
...other props
},
"pro_subscription_expire": {
"ios_offer_id": "<app_store_offer_id>",
...other props
},
}
}

It’s a little verbose, so we’ll think of ways to handle this more elegantly as we improve it. Thanks for the feedback!


Thanks! You’re correct that you can only configure a single Promo Offer per entry (case) in the JSON.

That said, you aren’t limited to just ‘cancel’ and ‘refund’ as entries. You could have something like this:

{
"promotional_offers": {
"std_subscription_cancel": {
"ios_offer_id": "<app_store_offer_id>",
...other props
},
"std_subscription_expire": {
"ios_offer_id": "<app_store_offer_id>",
...other props
},
"pro_subscription_cancel": {
"ios_offer_id": "<app_store_offer_id>",
...other props
},
"pro_subscription_expire": {
"ios_offer_id": "<app_store_offer_id>",
...other props
},
}
}

It’s a little verbose, so we’ll think of ways to handle this more elegantly as we improve it. Thanks for the feedback!

 

Thanks for the response Ryan!

Sorry if I’m just missing this in the docs, but I’m having trouble understanding: how are we supposed to route different plans/tiers (e.g. std and pro as you’ve shown) to these different promo offer keys? E.g. how do we show the pro offer to someone that has canceled a pro subscription?

The survey route doesn’t seem right — I don’t want to ask the user what tier they were on. (We should already know.)

And I’m not clear about paths. That seems to rely upon eligibility criteria. Is there a way to add product IDs as eligibility criteria?


I’ve asked the Customer Center team for clarification, but I think you’re right—this is based on eligibility criteria (currently we support FIRST_SEEN and TIME_SINCE_FIRST_PURCHASE), and so we might have to extend the eligibility to specific products to get this to work how you want.

I’ll let you know what the team says about this, and pass it along as feedback if it does need to be implemented by us


@aseemk-portola actually, this is supported right now. You have to name your promotional offers the same in App Store Connect for all subscriptions. Then, we will apply that promotional offer to the current active subscription.

For example, if you have a monthly and yearly subscription in App Store Connect, you can configure a promotional offer for each one, named ‘rc_cancel_offer’. Then, make sure that promotional offer is configured in our Customer Center dashboard (it is by default) and we can apply it automatically.

In the future we may extend this to allow customization per product, but that would be a bit further down the road.


Hmm, can you really reuse the same ID for promotional offers across subscriptions in App Store Connect? We’ve repeatedly gotten an error whenever we’ve tried to do that.


Reply