XooCode(){

ProgramMembership

ProgramMembership is an Intangible for loyalty programmes, traveller clubs, purchase clubs, airline frequent-flyer memberships. It adds 6 direct properties:

  • hostingOrganization (Organization): the organisation running the programme.
  • member / members (Person or Organization): the member(s).
  • membershipNumber (Text): the member identifier.
  • membershipPointsEarned (Number or QuantitativeValue): points balance.
  • programName (Text): the programme name.
  • program (MemberProgram): a typed programme reference.

Attach to a Person via memberOf, to a booking's customer via similar paths, or embed in a Reservation's programMembership property (on FlightReservation, LodgingReservation).

Full example of schema.org/ProgramMembership json-ld markup

The markup is verified as valid with Rich Results Test from Google.

Highlight legend:Required by GoogleRecommendedOptional
schema.org/ProgramMembership
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "ProgramMembership",
  "programName": "XooAir FlyClub",
  "membershipNumber": "FC-9B4K2T",
  "membershipPointsEarned": 84200,
  "hostingOrganization": { "@type": "Airline", "name": "XooAir", "iataCode": "XO" },
  "member": { "@type": "Person", "name": "Jane Xoo" }
}
</script>

Minimal valid version

The smallest markup that still produces a valid ProgramMembership entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.

schema.org/ProgramMembership (minimal)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "ProgramMembership",
  "programName": "XooAir FlyClub",
  "membershipNumber": "FC-9B4K2T"
}
</script>

Google rich results this unlocks

Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.

  • Gmail reservation / loyalty surfaces (via containing Reservation)
    Google docs

Common ProgramMembership mistakes

Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.

  1. 01

    membershipPointsEarned as a text 'balance'

    Wrong
    "membershipPointsEarned": "84,200 miles"
    Right
    Number or QuantitativeValue

    Points should be numeric for aggregation.

  2. 02

    Missing hostingOrganization

    Wrong
    ProgramMembership with no host
    Right
    Always populate hostingOrganization

    Without the host, the membership is unanchored; consumers cannot resolve which programme it belongs to.

About the example data

Jane Xoo's XooAir frequent-flyer membership used on the flight reservation.

Comments

Loading comments...

Leave a comment