Cookies & analytics

    We use cookies for analytics and to serve ads. Accept to enable Google Analytics and AdSense. You can decline to stay opt-out.

    SwiftSchema Logo

    SwiftSchema

    Intuitive Schema Generation at Your Fingertips

    AboutLearnContact
      Stack

      Contest / Giveaway Stack

      Contest and giveaway landing pages with Event + Offer context, FAQs, and breadcrumb navigation.

      Open generatorValidate in Rich Results Test

      When to use this stack

      • Sweepstakes or giveaway landing pages with entry rules
      • Product launch contests with prize details and deadlines
      • Campaign pages where FAQs clarify eligibility and selection

      What's included

      • Represents the contest window and attendance mode.

      • Describes entry terms or prize details for the giveaway.

      • Frequently Asked Questions
        Open generator

        Answers eligibility, odds, and winner selection questions.

      • Breadcrumb
        Open generator

        Provides navigation context for the contest page.

      Required properties (stack union)

      Ensure every applicable required property is present in your implementation. Nested props reference their parent objects (for example, `offers.priceCurrency`).

      availability
      endDate
      eventAttendanceMode
      eventStatus
      itemListElement[].name
      location.url
      mainEntity[].@type=Question
      mainEntity[].acceptedAnswer.text
      name
      price
      priceCurrency
      startDate
      url

      Recommended properties (stack union)

      category
      description
      isAccessibleForFree
      itemListElement[].item
      mainEntity[].acceptedAnswer.text
      mainEntity[].author.name
      mainEntity[].name
      organizer.name
      validFrom
      validThrough

      Combined JSON-LD

      Paste as a single script tag. Keep product details, offer data, shipping/returns, and FAQ answers in sync with the page.

      Validate
      [
        {
          "@context": "https://schema.org",
          "@type": "Event",
          "@id": "https://www.example.com/contests/summer-giveaway#event",
          "name": "Summer Adventure Gear Giveaway",
          "description": "Enter for a chance to win a full adventure gear bundle. One entry per day.",
          "startDate": "2025-06-01T08:00:00-05:00",
          "endDate": "2025-06-30T23:59:00-05:00",
          "eventStatus": "https://schema.org/EventScheduled",
          "eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
          "isAccessibleForFree": true,
          "url": "https://www.example.com/contests/summer-giveaway",
          "location": {
            "@type": "VirtualLocation",
            "url": "https://www.example.com/contests/summer-giveaway"
          },
          "organizer": { "@type": "Organization", "name": "Trailway Outfitters" }
        },
        {
          "@context": "https://schema.org",
          "@type": "Offer",
          "@id": "https://www.example.com/contests/summer-giveaway#offer",
          "name": "Giveaway Entry",
          "description": "Free entry for eligible participants. Prize bundle retail value $1,200.",
          "price": "0.00",
          "priceCurrency": "USD",
          "availability": "https://schema.org/InStock",
          "url": "https://www.example.com/contests/summer-giveaway#enter",
          "validFrom": "2025-06-01T08:00:00-05:00",
          "validThrough": "2025-06-30T23:59:00-05:00",
          "category": "ContestEntry"
        },
        {
          "@context": "https://schema.org",
          "@type": "FAQPage",
          "mainEntity": [
            {
              "@type": "Question",
              "name": "Who is eligible to enter?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "Open to US residents 18+; employees and immediate family members are not eligible."
              }
            },
            {
              "@type": "Question",
              "name": "How many entries are allowed?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "One entry per person per day during the giveaway window."
              }
            },
            {
              "@type": "Question",
              "name": "When will winners be notified?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "Winners are contacted by email within 5 business days of the giveaway close."
              }
            }
          ]
        },
        {
          "@context": "https://schema.org",
          "@type": "BreadcrumbList",
          "itemListElement": [
            { "@type": "ListItem", "position": 1, "name": "Home", "item": "https://www.example.com" },
            { "@type": "ListItem", "position": 2, "name": "Contests", "item": "https://www.example.com/contests" },
            { "@type": "ListItem", "position": 3, "name": "Summer Giveaway", "item": "https://www.example.com/contests/summer-giveaway" }
          ]
        }
      ]

      Implementation steps

      1. Start from your live product detail page content; ensure titles, prices, and availability match the page.
      2. Embed one JSON-LD script in the head or just before the closing body tag using the combined example as a template.
      3. Fill shipping details for each region you serve and keep them aligned with on-page shipping tables.
      4. Attach your canonical MerchantReturnPolicy URL and keep the policy text in sync with Merchant Center.
      5. Add 3–6 FAQs that address purchase blockers (shipping, returns, compatibility) and keep answers consistent with visible content.
      6. Validate in the Rich Results Test and revalidate after price/availability/policy changes.

      Common errors and fixes

      FAQs

      Should I include odds or eligibility rules?

      Yes. Summarize eligibility, entry limits, and odds in the FAQ and on-page rules.

      How do I represent multiple prizes?

      Mention prize tiers in the Offer description or add multiple Offer objects if prizes have distinct values.

      References