Implementation guide

Step 3.1: Set up member pricing

Member pricing allows you to offer personalized discounts to loyalty program members, with discounts varying based on their specific loyalty tier. You can set up member pricing by specifying the price within the loyalty program [loyalty_program] group attribute. This attribute can be submitted in your online product data, local inventory data, or both, if you have store-specific member pricing. If no store level member pricing is provided in the local inventory data, the member pricing provided in the online product data will be shown in local inventory ads. You can also submit member pricing in regional product data if you have region level member pricing (in beta).

You can display eligible pricing for instantly accessible membership tiers (whether free or paid) to everyone. The rationale is that any user can immediately meet the eligibility criteria to get the special pricing. Pricing for tiers that are not instantly accessible to everyone will be displayed only to known members of those tiers through Customer Match targeting.

Format

To set up member pricing, follow these formatting guidelines to make sure Google understands the data you're submitting. Learn more About submitting product data

Type String (Unicode characters. Recommended: ASCII only)
Schema.org property (What's this?) Learn more about Merchant listing (member pricing) structured data on Google Search Central.
File format Example value
Google Sheet & Text file

Header: Format the attribute header by always including the sub-attributes you’re submitting. Include loyalty program [loyalty_program], and then, in parentheses, add the names of the sub-attributes that you want to submit separated by a colon ( : ). Don't use quotation marks.

Value: Format the value by submitting the value of each sub-attribute listed in the same order as in the header and separated by a colon ( : ).

If you have a single-tier program, program_label and tier_label are not required in the feed:

Attribute header: loyalty_program(price:member_price_effective_date)

Possible value: 10 USD:2025-05-11T00\:01\:59-0800/2025-06-21T22\:13\:59-0800

If you include the program label [program_label] and tier label [tier_label] in the header, this is also supported.

Attribute header: loyalty_program(program_label:tier_label:price:member_price_effective_date)

Possible value: my_loyalty_program:silver:10 USD:2025-05-11T00\:01\:59-0800/2025-06-21T22\:13\:59-0800

If you have a multi-tier program, program_label and tier_label are required. Separate the values for different membership tiers by commas. Don’t add space after the comma.

Attribute Header: loyalty_program(program_label:tier_label:price:member_price_effective_date)

Possible value:
my_loyalty_program:silver:10
USD:2025-05-11T00\:01\:59-0800/2025-06-21T22\:13\:59-0800,my_loyalty_program:gold:5 USD:2025-05-11T00\:01\:59-0800/2025-06-21T22\:13\:59-0800

Note: CSV is not supported for multi-tier programs. TSV file is recommended.

If only some of your products have sub-attributes values, you can use colons ( : ) as placeholders. Remember to still acknowledge those placeholder fields in your attribute header. For example, if only some of your products are eligible for member price, your data should look like this:

Attribute header:
loyalty_program(program_label:tier_label:price)

Possible value (Product with member price)
my_loyalty_program:silver:10 USD,my_loyalty_program:gold:9 USD

Possible value (Product without member price):
My_loyalty_program:silver:,my_loyalty_program:gold:9 USD

Note the format of the [member_price_effective_date] sub-attribute:

  • Google sheets: Backslashes (“\") are needed in front of colons for the member price effective date [member_price_effective_date] sub-attribute.
    • Example: my_loyalty_program:silver:10
      USD:2025-05-11T00\:01\:59-0800/2025-06-21T22\:13\:59-0800
  • Tab-delimited (or tab-separated values) feeds: Quotes (“) are needed for the member price effective date sub-attribute.
    • Example: my_loyalty_program:silver:10
      USD:”2025-05-11T00:01:59-0800/2025-06-21T22:13:59-0800”
XML feeds

One loyalty program tier:

<g:loyalty_program>
  <g:program_label>my_loyalty_program</g:program_label>
  <g:tier_label>silver</g:tier_label>
  <g:price>10 USD </g:price>

</g:loyalty_program>
  
<!-- Setting the member price effective dates. -->

<g:member_price_effective_date>2025-05-11T00:01:59-0800/2025-06-21T22:13:59-0800</g:member_price_effective_date>
</g:loyalty_program>

More than one loyalty program tiers:

<g:loyalty_program>
  <g:program_label>my_loyalty_program</g:program_label>
  <g:tier_label>silver</g:tier_label>
  <g:price>5 USD </g:price>

</g:loyalty_program>

<g:loyalty_program>
  <g:program_label>my_loyalty_program</g:program_label>
  <g:tier_label>gold</g:tier_label>
  <g:price>5 USD </g:price>

</g:loyalty_program>
 

Content API

One loyalty program tier:

{
  // … other offer attributes …

  "loyaltyPrograms": [
    {
      "programLabel": "my_loyalty_program",
      "tierLabel": "silver",
      "price": {
        "value": 10,
        "currency": "USD"
      },
      "memberPriceEffectiveDate": "2025-05-11T00:01:59-0800/2025-06-21T22:13:59-0800",
    }
 

More than one loyalty program tiers:

{
  // … other offer attributes …

  "loyaltyPrograms": [
    {
      "programLabel": "my_loyalty_program",
      "tierLabel": "silver",
      "price": {
        "value": 10,
        "currency": "USD"
      },
      "memberPriceEffectiveDate": "2025-05-11T00:01:59-0800/2025-06-21T22:13:59-0800",
    }, 
    {
      "programLabel": "my_loyalty_program",
      "tierLabel": "gold",
      "price": {
        "value": 5,
        "currency": "USD"
      },
      "memberPriceEffectiveDate": "2025-05-11T00:01:59-0800/2025-06-21T22:13:59-0800",
    }
  ]
}

Minimum requirements

These are the requirements you'll need to meet to show your loyalty program benefits on Google. If you don't follow these requirements, we'll disapprove your loyalty program and let you know in your Merchant Center account.

  • Ensure adherence to Google’s editorial standards by reviewing the help center and making sure your benefits and program data meet requirements.
  • Ensure that the currency of the price [price] sub-attribute of the loyalty program [loyalty_program] attribute matches the currency of the price [price] and sale price [sale_price] attributes.
  • Ensure member prices provided to Google is the lowest possible price they can get. If there's a seasonal promotion that can be applied to the evergreen member price, provide the post-promotion price in the price [price] sub-attribute of the loyalty program [loyalty_program] attribute as the final member price.
  • Ensure that the member price for both free and paid tiers are submitted in the price [price] sub-attribute of the loyalty program [loyalty_program] attribute, and not in price [price] or sale price [sale_price].
  • Ensure that the program label [program_label] and tier label [tier_label] sub-attributes of the loyalty program [loyalty_program] attribute match one of the program labels and tier labels configured under your Merchant Center account.
  • For Marketplace accounts, loyalty program should be set up at the MCA level and the program label [program_label] and tier label [tier_label] provided in the feed should be the ones from MCA. No need to set up a loyalty program at the sub-account level.
  • Ensure the data provided to Google matches what’s showcased on your website. Google will check to make sure the benefits and program information submitted in Merchant Center aligns with the information displayed on your website.
  • Ensure member prices are clearly accessible on your website for members, whether through a loyalty overview page, a dedicated event page, or otherwise clearly communicated to members. Google periodically checks offers that have member prices to ensure the price submitted to Google matches what’s showcased to members on your website.
  • Ensure Member price effective date sub-attribute is provided when the member price is effective only for a certain period. If this is not specified, Google would assume this is effective all the time and may show an incorrect price to the users when the price is no longer live.
  • Use ISO 8601 standard to represent the effective dates for the Member price effective date [member_price_effective_date] sub-attribute.

Best practices

These best practices can help you go beyond the basic requirements to optimize your loyalty program data for performance.

  • In a single-tier loyalty program, you can choose not to provide program_label and tier_label. This will make the implementation easier and more straightforward.
  • Ensure that the price [price] sub-attribute of the loyalty program [loyalty_program] attribute is not higher than the price [price] attribute. Google will only showcase member pricing in ads when the member discount is >=5% or >=5 unit currency of regular price or sale price (when available).
  • Submit exact values for member pricing. For example, submit 1.01 USD instead of 1.0012 USD, otherwise we will round the submitted value.
  • Leverage the price sub-attribute under the loyalty_program attribute and make feed updates for member pricing instead of setting up a feed rule (unless 100% of your products are eligible for flat rate discount member pricing). This will improve accuracy and decrease the chances of dropping off of eligibility to show loyalty prices.
  • If you're selling products with minimum advertised pricing (MAP) agreements, submit the member price only when it’s compliant with MAP.
  • Show your member prices on your landing page using schema.org. This allows Google to crawl your data.

RETURN TO ABOUT MERCHANT LOYALTY PROGRAM

Was this helpful?

How can we improve it?
Search
Clear search
Close search
Main menu
3612797525547799101
true
Search Help Center
false
true
true
true
true
true
71525
false
false
true
false