Simplified Shops Ads Experiences: Enable Subscriptions

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

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
bool

true

If 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>

true

A list of SellingPlan

SellingPlan object

AttributeRequiredDescription
id
string

true

The id of the subscription plan, Meta will be passing this within the checkout URL.

billing_frequency
BillingFrequency

false

The billing frequency

delivery_frequency
DeliveryFrequency

false

The delivery frequency

price_adjustment
PriceAdjustment

false

The price adjustment

BillingFrequency object

AttributeRequiredDescription
interval
string

true

Supported values: day, month, week, year

interval_count
integer

true

Frequency of billing

Example value: 1

DeliveryFrequency object

AttributeRequiredDescription
interval
string

true

Supported values: day, month, week, year

interval_count
integer

true

Frequency of delivery

Example value: 1

PriceAdjustment object

AttributeRequiredDescription
adjustment_value_type
string

true

Supported values: fixed_amount, percentage

adjustment_percent_value
float

false

The percent off for percentage type

Example value: 10

adjustment_fixed_value_amount
float

false

The 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


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

products

Required.
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:

  1. product ID 12345 with quantity 3 and
  2. product ID 23456 with quantity 1

coupon

Optional.
A single coupon code to apply at checkout. This may include an email opt-in promo code.

coupon=SUMMERSALE20

products_json

Optional.
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>