Bookmaker Odds Comparison

Bookmaker Odds Comparison

The bookmakerOddsComparison widget renders a per-event 1x2 odds-comparison table across multiple bookmaker brands, served from the per-event snapshot pre-aggregated by the odds-pipeline-worker. Each row is a clickable affiliate link (/go/<cloakedLink>) wrapping logo + brand name + the 1 / X / 2 price cells.

Key features:

  • Cross-provider odds: one row per configured brand, side-by-side prices for the 1, X, and 2 outcomes. Inactive brands are hidden entirely (no greyed-out rows).
  • Affiliate-funnel CTA: each row is a single semantic <a> to the brand’s cloaked tracking link. Optional widget-level CTA button via ctakey / ctatext attributes.
  • Editorial copy via configuration JSON: title, subtitle, and the event identity live in the configuration attribute; CTA + layout (fullwidth) live on top-level attributes the same way as ctabuttonlogo7.
  • Tracking-link strategy (tlTarget): switch between the default Vulcan cloaked links and the RBO legacy-id links without changing anything else.

The configuration attribute is a JSON object containing the event id, market, brands array, and optional title/subtitle. CTA + fullwidth are top-level attributes (NOT inside the JSON), matching the convention used by other CTA-bearing widgets.

The tlTarget top-level attribute controls how every affiliate link in the widget (brand logo, each odds cell, and the BET NOW button) is built:

tlTarget Link form Notes
vulcan (default) /go/<cloakedLink>?country=…&language=…&wid=… Standard Vulcan cloaked-link strategy. Used when tlTarget is omitted.
rbo /go/<legacyId>.html RBO legacy strategy. Uses each brand’s legacyId; no query params are appended.
  • The value is case-insensitive (RBO, Rbo, rbo all work) and any unrecognized value falls back to vulcan.
  • For rbo, each brand’s legacyId is read from the brands[] entry in the configuration JSON (it falls back to the brand’s Sanity reference legacyId when omitted). If no legacyId can be resolved for a brand, that link safely falls back to the Vulcan form.
  • legacyId is ignored when tlTarget is vulcan, so it is harmless to always include it.

Full attributes (all options)

Expand me...

World Cup 2026

SpainvsCape Verde
Mon, Jun 15 · 12:00

Compare prices across all your favourite sportsbooks

Minimal attributes (defaults applied)

Expand me...

World Cup 2026

SpainvsCape Verde
Mon, Jun 15 · 12:00

With CTA translation key (resolved server-side via i18n)

Expand me...

With CTA literal text (no translation lookup)

Expand me...

Fullwidth layout

Expand me...

World Cup 2026

SpainvsCape Verde
Mon, Jun 15 · 12:00

Full-width banner layout

Set tlTarget="rbo" and provide a legacyId for each brand. Every affiliate link in the widget (brand logo, odds cells, and the BET NOW button) is then built as /go/<legacyId>.html instead of the Vulcan /go/<cloakedLink> form.

Expand me...

World Cup 2026

SpainvsCape Verde
Mon, Jun 15 · 12:00

RBO tracking strategy