Tag Migration Notice: This widget uses the legacy bw-widget tag. For new implementations, please use <nw-blocks> tags instead. The bw-widget tag remains supported for backward compatibility.
The ReviewPageHeader widget displays a comprehensive header section for casino/betting brand review pages. It combines brand logo, rating display, bonus information, social proof indicators, and call-to-action buttons in a responsive layout optimized for mobile, tablet, and desktop viewports.
<nw-blocks id="reviewPageHeader"
cloaked-link="greatwin-casino"
language="en"
country="US"
rating="4.5"
votes="153">
</nw-blocks>
<nw-blocks id="reviewPageHeader"
cloaked-link="betway-sports"
language="fr"
country="FR"
rating="4.8"
votes="287"
cta-key="cta-visit-site"
cta-text="Visiter le Site"
tracking-target="homepage"
target="_blank"
rel="nofollow">
</nw-blocks>
<nw-blocks id="reviewPageHeader"
cloaked-link="fresh-casino"
language="de"
country="DE"
rating="4.2"
votes="64"
vote-count-key="wgt-reviewPageHeader-votecount"
social-proof-key="wgt-reviewPageHeader-socialproof-sp">
</nw-blocks>
<nw-blocks id="reviewPageHeader"
cloaked-link="unibet-casino"
language="es"
country="ES"
rating="4.6"
votes="192"
cta-key="cta-claim-bonus"
configuration='{"component":{
"images":{"base_url":"/logo300"},
"button-colors":["#05842A", "#05842A"],
"font-size": "25px",
"font-color": "#FFFFFF",
"background": "#333A40",
"bonus-box-background": "#41484e"
}}'>
</nw-blocks>
<nw-blocks id=“reviewPageHeader"cloaked-link=“unibet-casino"language=“es"country=“ES"rating=“4.6"votes=“192"cta-key=“cta-claim-bonus"configuration='{“component”:{“images”:{“base_url”:"/logo300”},“button-colors”:["#05842A”, “#05842A”],“font-size”: “25px”,“font-color”: “#FFFFFF”,“background”: “#333A40”,“bonus-box-background”: “#41484e”}}'>
<nw-blocks id="reviewPageHeader"
cloaked-link="bet365-sports"
language="pt"
country="BR"
rating="4.9"
votes="421"
cta-text="Reivindicar Bônus"
tracking-target="review-page"
tracking-data="review-header-cta"
referer="blog-post-123">
</nw-blocks>
| Attribute | Type | Required | Default | Description |
|---|---|---|---|---|
id |
string | Yes | - | Unique widget identifier |
cloaked-link |
string | Yes | - | Brand identifier for tracking and data lookup |
language |
string | No | "en" |
Language code (ISO 639-1) for translations |
country |
string | No | "" |
Country code (ISO 3166-1) for regional content |
country-state |
string | No | - | US/CA state code (e.g., “NJ”, “ON”) for regional restrictions |
rating |
string | No | "5.0" |
Brand rating (0.0-5.0 scale) |
votes |
string | No | "153" |
Number of user votes/reviews |
vote-count-key |
string | No | "wgt-reviewPageHeader-votecount" |
Translation key for vote count text |
social-proof-key |
string | No | "wgt-reviewPageHeader-socialproof-sp" |
Translation key for “User Choice” pill |
cta-key |
string | No | - | Translation key for CTA button text |
cta-text |
string | No | - | Override CTA button text (bypasses translation) |
tracking-target |
string | No | - | Tracking link target (e.g., “homepage”, “review-page”) |
tracking-data |
string | No | - | Additional tracking metadata |
target |
string | No | "_blank" |
Link target attribute (_blank, _self, etc.) |
rel |
string | No | "nofollow" |
Link relationship attribute |
referer |
string | No | - | Referrer identifier for tracking attribution |
configuration |
JSON | No | - | Advanced styling and layout configuration (see below) |
{
"component": {
"images": {
"base_url": "/logo300" // Logo directory path
},
"button-colors": ["#05842A", "#05842A"], // CTA button gradient colors
"font-size": "25px", // Bonus label font size
"font-color": "#FFFFFF", // Bonus text color
"background": "#333A40", // Widget background color
"bonus-box-background": "#41484e" // Bonus container background
}
}
background property + {freespins})hideBonusRibbon, hideBonusText, hideBonuses flagscta-text attribute or cta-key translationhasTrackingLink is true
/go/{cloakedLink}/tc?wid={id}&trackingData={trackingData}rel="nofollow", target="_blank"All clickable elements use the following tracking URL pattern:
/go/{cloaked-link}/{tracking-target}?wid={id}&trackingData={tracking-data}&referer={referer}
Example:
/go/greatwin-casino/homepage?wid=reviewPageHeader&trackingData=header-cta&referer=blog-123
Special Links:
/go/{cloaked-link}/tc?wid={id}&trackingData={tracking-data}<nw-blocks id="reviewPageHeader"
cloaked-link="betway-casino"
language="en"
country="US"
rating="4.7"
votes="234"
cta-key="cta-claim-bonus"
tracking-target="review-header"
social-proof-key="wgt-reviewPageHeader-socialproof-sp">
</nw-blocks>
<nw-blocks id="reviewPageHeader"
cloaked-link="draftkings-sports"
language="en"
country="US"
country-state="NJ"
rating="4.9"
votes="512"
cta-text="Bet Now"
tracking-target="sportsbook-review">
</nw-blocks>
<nw-blocks id="reviewPageHeader"
cloaked-link="cresus-casino"
language="fr"
country="FR"
rating="4.5"
votes="153"
cta-key="wgt-cta-bet-now"
vote-count-key="wgt-reviewPageHeader-votecount"
social-proof-key="wgt-reviewPageHeader-socialproof-so">
</nw-blocks>
<nw-blocks id="reviewPageHeader"
cloaked-link="fresh-casino"
language="de"
country="DE"
rating="4.3"
votes="89"
configuration='{"component":{
"background": "#1a1a1a",
"bonus-box-background": "#2a2a2a",
"font-color": "#ffffff",
"button-colors": ["#d4af37", "#c9a22b"]
}}'>
</nw-blocks>
<nw-blocks id="reviewPageHeader"
cloaked-link="fanduel-casino"
language="en"
country="US-CO"
rating="4.6"
votes="378"
cta-text="Play in Pennsylvania"
tracking-data="co-review-header">
</nw-blocks>
<nw-blocks id="reviewPageHeader"
cloaked-link="unibet-sports"
language="en"
country="UK"
rating="4.8"
votes="421"
tracking-target="review-comparison"
tracking-data="header-click"
referer="best-bookmakers-2024">
</nw-blocks>
rel="nofollow" for affiliate links<nw-blocks id="reviewPageHeader"
cloaked-link="casino-brand"
language="en"
country="US"
rating="4.5"
configuration='{"component":{
"button-colors": ["#ff6b35", "#f7931e"]
}}'>
</nw-blocks>
<nw-blocks id="reviewPageHeader"
cloaked-link="casino-brand"
language="en"
country="US"
rating="4.5"
configuration='{"component":{
"background": "#0d0d0d",
"bonus-box-background": "#1a1a1a",
"font-color": "#e0e0e0",
"font-size": "22px",
"button-colors": ["#4a90e2", "#357abd"]
}}'>
</nw-blocks>
<nw-blocks id="reviewPageHeader"
cloaked-link="casino-brand"
language="en"
country="US"
rating="4.5"
configuration='{"component":{
"images": {"base_url": "/cdn/logos/review-headers"}
}}'>
</nw-blocks>
<!-- Top Recommended -->
<nw-blocks id="reviewHeader-top"
cloaked-link="top-casino"
language="en"
country="US"
rating="4.9"
tracking-data="top-recommendation">
</nw-blocks>
<!-- Runner-up -->
<nw-blocks id="reviewHeader-runner"
cloaked-link="runner-up-casino"
language="en"
country="US"
rating="4.7"
tracking-data="runner-up">
</nw-blocks>
The widget fetches brand data from Sanity CMS using the cloaked-link identifier:
{
brandName: string; // Brand display name
imgUrl: string; // Logo image URL
trackingLink: string; // Base tracking link
bonus: string; // Main bonus text (e.g., "100% up to $500")
bonusExtra?: string; // Additional bonus details
extraFreespins?: string; // Freespins count (e.g., "50 Free Spins")
complianceDisclaimer: {
disclaimer: string | null; // HTML disclaimer content
};
isActive: boolean; // Brand availability status
hasTrackingLink: boolean; // Whether to show T&C link
}
KV Key Format: {cloakedLink}#{language}#{country}#default#tc
Example: greatwin-casino#fr#DE#default#tc
Stored Data:
| Key | Default Text | Purpose |
|---|---|---|
wgt-reviewPageHeader-votecount |
“{count} votes” | Vote count display |
wgt-reviewPageHeader-socialproof-sp |
“User Choice” | Social proof pill text |
wgt-cta-claim-bonus |
“Claim Bonus” | Default CTA button |
wgt-cta-visit-site |
“Visit Site” | Alternative CTA |
wgt-toplist-exclusive |
“Exclusive” | Bonus exclusive indicator |
If isActive === false, the widget displays:
<p id="inactive-brand" style="display: none;">
The brand with name {brandName} is currently inactive or not allowed in this country! (loaded with Review Header widget..)
</p>
"5.0""153"#05842A)| Feature | ReviewPageHeader (v1) | ReviewPageHeader2 (v2) | ReviewPageHeader3 (v3) |
|---|---|---|---|
| Layout System | Fixed responsive (3 layouts) | Toplist3-based architecture | Enhanced Toplist3 with backgrounds |
| Social Proof | User Choice pill only | Enhanced social proof keys | Full social proof integration |
| Configuration | JSON configuration object | Simplified attributes | Background + simplified attributes |
| Button Colors | Via configuration | Direct ctacolors attribute |
Direct ctacolors attribute |
| Theme Support | Manual styling | Light/Dark themes | Custom background support |
| Bonus Display | Three device layouts | Unified responsive layout | Enhanced bonus styling |
| Full Width | No | Optional fullwidth |
Optional fullwidth |
| Best For | Legacy implementations | Modern review pages | Premium brand reviews |
<bw-widget id="reviewPageHeader"
cloaked-link="greatwin-casino"
language="fr"
country="DE"
rating="3.5"
configuration='{"component":{
"button-colors": ["#05842A", "#05842A"]
}}'>
</bw-widget>
Migration Path: Replace <bw-widget> with <nw-blocks> - all attributes remain compatible.
The widget continues to support the legacy configuration JSON attribute with kebab-case properties:
button-colors → parsed to buttonColors arrayfont-size → mapped to fontSizefont-color → mapped to fontColorbonus-box-background → mapped to bonusBoxBackground