Skip to content

Simplified Shops Ads Experiences: Enable Subscriptions

Updated: Feb 2, 2026

Note: Enabling subscriptions can only be completed after you finish integration work for the new simplified Shops ads experiences feature.

You can add subscriptions products into your Meta catalog using a catalog feed. (Estimated effort <1 week)

User Experience

PDPCartCheckout via Seller's Website in IAB
Subscription product detail page showing two purchase plans, 'Deliver every month' and 'Deliver every 2 months'Cart screen with a subscription item billed every 2 months and a 'Checkout on seller's website' buttonSeller's website checkout in an in-app browser with contact and delivery address fields filled in

How to Use Catalog Feed

1. Catalog Feed

A new field subscription_plans in the catalog is now supported. This field is a JSON encoded string with fields requires_subscription_plan and plans.

AttributeRequiredDescription
requires_subscription_plan booltrueIf true, the product item only supports subscription purchase. One-time purchase is not supported. If false, both subscription purchase and one-time purchase are supported.
plans list<SellingPlan>trueA list of SellingPlan

SellingPlan object

AttributeRequiredDescription
id stringtrueThe id of the subscription plan, Meta will be passing this within the checkout URL.
billing_frequency BillingFrequencyfalseThe billing frequency
delivery_frequency DeliveryFrequencyfalseThe delivery frequency
price_adjustment PriceAdjustmentfalseThe price adjustment

BillingFrequency object

AttributeRequiredDescription
interval stringtrueSupported values: day, month, week, year
interval_count integertrueFrequency of billing Example value: 1

DeliveryFrequency object

AttributeRequiredDescription
interval stringtrueSupported values: day, month, week, year
interval_count integertrueFrequency of delivery Example value: 1

PriceAdjustment object

AttributeRequiredDescription
adjustment_value_type stringtrueSupported values: fixed_amount, percentage
adjustment_percent_value floatfalseThe percent off for percentage type Example value: 10
adjustment_fixed_value_amount floatfalseThe amount off for fixed_amount type Example value: 20

Example

{
 "requires_subscription_plan": true,
 "plans": [
   {
     "id": "monthly plan",
     "delivery_frequency": {
       "interval": "month",
       "interval_count": 1
     }
   },
   {
     "id": "monthly plan with 10% off",
     "delivery_frequency": {
       "interval": "month",
       "interval_count": 1
     },
     "price_adjustment": {
       "adjustment_value_type": "percentage",
       "adjustment_percent_value": 10,
       "adjustment_fixed_value_amount": null
     }
   },
   {
     "id": "monthly plan with $10 off and annual bill",
     "delivery_frequency": {
       "interval": "month",
       "interval_count": 1
     },
     "price_adjustment": {
       "adjustment_value_type": "fixed_amount",
       "adjustment_percent_value": 10,
       "adjustment_fixed_value_amount": null
     },
     "billing_frequency": {
       "interval": "year",
       "interval_count": 1
     }
   }
 ]
}

Example of the subscription PDP

Subscription product detail page with color selector and two delivery-frequency purchase options

2. Checkout URL

You will need to make changes to the custom checkout URL that allows Meta to send a buyer to your checkout screen.

Query ParameterDescriptionExamples
productsRequired. A comma-separated list of products. For each product, the ID and quantity are separated by a colon. Commas (%2C) and colons (%3A) are escaped according to RFC 3986⁠. Your web server should provide an API similar to decodeURIComponent to parse these parameters. Products with comma (,) or colon (😃 characters in their ID are not supported.products=12345%3A3%2C23456%3A1 This example cart has the following two products: * product ID 12345 with quantity 3 and * product ID 23456 with quantity 1
couponOptional. A single coupon code to apply at checkout. This may include an email opt-in promo code.coupon=SUMMERSALE20
products_jsonOptional. A JSON object that contains metadata to support product-specific features such as subscriptions, customizations, etc. Braces (%257B & %257D), quotations (%2522), commas (%252C) and colons (%253A) are escaped according to RFC 3986⁠.Encoded example: %257B%252212345%2522%253A%257B%2522selling_plan%2522%253A%2522plan_1%2522%257D%257D Decoded example: {"12345":{"selling_plan":"plan_1"}​}

URL with no subscription selected

https://your-website.com/any-url?products=<product-id:1>&coupon=<promo>

URL with subscription selected::

https://your-website.com/any-url?products=<product-id:1>&coupon=<promo>&products_json=<products_json>

See Also

Unofficial mirror for reference/search purposes. All content originates from developers.facebook.com — see the source link at the top of each page. Machine-readable indexes: llms.txt · llms-full.txt · About