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 ReviewPageHeader3 widget is the most advanced review page header variant, featuring enhanced styling with custom background themes, refined bonus label positioning, mobile-first responsive design, and optimized tracking link architecture. Built on the modular foundation of v2 with premium visual enhancements.
background attributenormalizeBackgroundMain() for consistent themingbuildTrackingUrl() utility for cleaner link generation<nw-blocks id="reviewpageheader3"
cloakedlink="greatwin-casino"
language="fr"
country="DE"
rating="5.0"
socialproofkey="wgt-reviewPageHeader-socialproof-sp"
exclusivebonuskey="wgt-social-ribbon-sp" \>
</nw-blocks>
Use Case: Brands with highest traffic/engagement
<nw-blocks id="reviewpageheader3"
cloakedlink="greatwin-casino"
language="fr"
country="DE"
rating="5.0"
socialproofkey="wgt-reviewPageHeader-socialproof-tr"
exclusivebonuskey="wgt-social-ribbon-tr" \>
</nw-blocks>
Use Case: Brands with highest user ratings
<nw-blocks id="reviewpageheader3"
cloakedlink="greatwin-casino"
language="fr"
country="DE"
rating="5.0"
socialproofkey="wgt-reviewPageHeader-socialproof-ec"
exclusivebonuskey="wgt-social-ribbon-ec" \>
</nw-blocks>
Use Case: Editorial team recommendations
<nw-blocks id="reviewpageheader3"
cloakedlink="greatwin-casino"
language="fr"
country="ZZ"
rating="5.0"
background="light"
socialproofkey="wgt-reviewPageHeader-socialproof-sp" \>
</nw-blocks>
Use Case: Sites with light color schemes
<nw-blocks id="reviewpageheader3"
cloakedlink="greatwin-casino"
language="fr"
country="ZZ"
rating="5.0"
background="dark"
socialproofkey="wgt-reviewPageHeader-socialproof-sp" \>
</nw-blocks>
Use Case: Sites with dark/night mode themes
| Attribute | Type | Required | Default | Description |
|---|---|---|---|---|
id |
string | Yes | - | Unique widget identifier |
cloakedlink |
string | Yes | - | Brand identifier for tracking and data lookup |
language |
string | No | "en" |
Language code (ISO 639-1) |
country |
string | No | "ZZ" |
Country code with optional state (e.g., “US-NJ”, “CA-ON”) |
rating |
string | No | "5.0" |
Brand rating (0.0-5.0 scale) |
votes |
string | No | "153" |
Number of user votes/reviews |
votescountkey |
string | No | "wgt-reviewPageHeader-votecount" |
Translation key for vote count text |
socialproofkey |
string | No | - | Translation key for social proof ribbon |
exclusivebonuskey |
string | No | "wgt-toplist-exclusive" |
Translation key for bonus label |
ctakey |
string | No | - | Translation key for CTA button text |
ctatext |
string | No | - | Override CTA button text (bypasses translation) |
ctacolors |
string/JSON | No | "#05842A" |
CTA button color (solid or array for gradient) |
ctahovercolors |
string/JSON | No | "#096725" |
CTA button hover color |
background |
string | No | - | Widget background theme (“light”, “dark”, or custom value) |
trackinglinktarget |
string | No | - | Tracking link target path segment |
trackingdata |
string | No | - | Additional tracking metadata |
target |
string | No | "_blank" |
Link target attribute |
rel |
string | No | "nofollow" |
Link relationship attribute |
referer |
string | No | - | Referrer identifier for attribution |
fullwidth |
boolean/string | No | true |
Enable full-width container layout |
<LabelBonus3>data-bonus attribute for CSS targeting.label-has-bonus when bonus text existsbonusTagText is provided<Logo3><Rating3> + <StarSprite>.show-mobile and .show-desktopnormalizedBgMain for theme adaptation<Bonuses3> wrapped in <a> tagaria-label="Open {brandName}" for accessibilitydata-tracking and data-referer for analytics<CtaButton3>ctahovercolors<Disclaimer3>hasDisclaimer is trueThe widget uses a normalization function to handle background values:
normalizeBackgroundMain(background, backgroundMain)
Behavior:
background="light" → Returns light theme valuebackground="dark" → Returns dark theme valuebackground="custom-value" → Returns custom valuebackgroundMain prop if background not providedUsage in Component:
const normalizedBgMain = normalizeBackgroundMain(
data.background,
data.backgroundMain
);
Dedicated utility function for clean tracking URL generation:
buildTrackingUrl({
trackingLink: string,
trackingTarget?: string,
id: string,
trackingData?: string,
referer?: string
})
Returns: /go/{trackingLink}/{trackingTarget}?wid={id}&trackingData={trackingData}&referer={referer}
Usage in Bonuses Section:
<a
href={trackingHref}
target={data.target || '_blank'}
rel={data.rel ?? 'nofollow'}
aria-label={`Open ${data.brandName}`}
>
<Bonuses3 bonus={data.bonusText} bonusExtra={data.additionalBonusText} />
</a>
.show-mobile).show-mobile).show-desktop).show-desktop)| Class | Condition | Purpose |
|---|---|---|
is-fw |
fullwidth="true" |
Full-width container layout |
no-label-bonus |
No bonusTagText |
Hide bonus label section |
label-has-bonus |
bonusTagText exists |
Style bonus label container |
show-mobile |
CSS media query | Display only on mobile |
show-desktop |
CSS media query | Display only on desktop/tablet |
<nw-blocks id="reviewpageheader3"
cloakedlink="betway-casino"
language="en"
country="US"
rating="4.7"
votes="234"
background="light"
ctacolors="#4a90e2"
ctahovercolors="#357abd"
socialproofkey="wgt-reviewPageHeader-socialproof-sp" \>
</nw-blocks>
<nw-blocks id="reviewpageheader3"
cloakedlink="draftkings-sports"
language="en"
country="US"
rating="4.9"
votes="512"
background="dark"
ctacolors="#ff6b35"
ctahovercolors="#e85a2a"
socialproofkey="wgt-reviewPageHeader-socialproof-tr" \>
</nw-blocks>
<nw-blocks id="reviewpageheader3"
cloakedlink="cresus-casino"
language="fr"
country="FR"
rating="4.5"
votes="153"
background="#f5f5f5"
ctakey="cta-jouer-maintenant"
socialproofkey="wgt-reviewPageHeader-socialproof-ec" \>
</nw-blocks>
<nw-blocks id="reviewpageheader3"
cloakedlink="fanduel-casino"
language="en"
country="US"
rating="4.6"
votes="378"
background="light"
ctatext="Play in New Jersey"
trackingdata="nj-review"
socialproofkey="wgt-reviewPageHeader-socialproof-so" \>
</nw-blocks>
<nw-blocks id="reviewpageheader3"
cloakedlink="fresh-casino"
language="de"
country="DE"
rating="4.3"
votes="89"
fullwidth="true"
background="dark"
socialproofkey="wgt-reviewPageHeader-socialproof-ec"
exclusivebonuskey="wgt-editors-pick" \>
</nw-blocks>
<nw-blocks id="reviewpageheader3"
cloakedlink="betmgm-casino"
language="en"
country="CA-ON"
rating="4.8"
votes="421"
background="light"
ctatext="Play in Ontario"
trackingdata="on-review" \>
</nw-blocks>
<nw-blocks id="reviewpageheader3"
cloakedlink="unibet-sports"
language="en"
country="UK"
rating="4.8"
votes="421"
trackinglinktarget="review-page"
trackingdata="player-choice-click"
referer="comparison-table"
socialproofkey="wgt-reviewPageHeader-socialproof-pc" \>
</nw-blocks>
<nw-blocks id="reviewpageheader3"
cloakedlink="williamhill-casino"
language="en"
country="US"
rating="4.7"
votes="298"
background="#1a1a1a"
ctacolors="#d4af37"
ctahovercolors="#c9a22b"
socialproofkey="wgt-reviewPageHeader-socialproof-eo"
exclusivebonuskey="wgt-site-exclusive" \>
</nw-blocks>
background attribute to site design systemexclusivebonuskey to customize bonus ribbon textbuildTrackingUrl() reduces code duplicationrel="nofollow" for affiliate links_blank targets<nw-blocks id="reviewpageheader3"
cloakedlink="casino-brand"
language="en"
country="US"
rating="4.5"
background="#2c3e50"
ctacolors="#e74c3c"
ctahovercolors="#c0392b" \>
</nw-blocks>
<nw-blocks id="reviewpageheader3"
cloakedlink="casino-brand"
language="en"
country="US"
rating="4.5"
background="dark"
ctacolors='["#667eea", "#764ba2"]'
ctahovercolors='["#5568d3", "#63408b"]' \>
</nw-blocks>
<!-- Primary: Light Theme -->
<nw-blocks id="review-header-primary"
cloakedlink="top-casino"
language="en"
country="US"
rating="4.9"
background="light"
fullwidth="true"
socialproofkey="wgt-reviewPageHeader-socialproof-ec" \>
</nw-blocks>
<!-- Alternative: Dark Theme -->
<nw-blocks id="review-header-alternative"
cloakedlink="runner-up-casino"
language="en"
country="US"
rating="4.7"
background="dark"
socialproofkey="wgt-reviewPageHeader-socialproof-pc" \>
</nw-blocks>
<nw-blocks id="reviewpageheader3"
cloakedlink="betmgm-sports"
language="en"
country="US-PA"
rating="4.6"
votes="287"
background="light"
ctatext="Bet in Pennsylvania"
trackinglinktarget="review-page"
trackingdata="pa-header-click"
referer="best-pa-sportsbooks"
ctacolors="#004d00"
ctahovercolors="#003300" \>
</nw-blocks>
{
brandName: string; // Brand display name
imgUrl: string; // Logo image URL
trackingLink: string; // Base tracking link
bonusText: string; // Main bonus text
additionalBonusText?: string; // Extra bonus details
bonusTagText?: string; // Bonus label text
socialRibbonText?: string; // Social proof ribbon text
complianceDisclaimer: {
disclaimer: string | null; // HTML disclaimer content
};
isActive: boolean; // Brand availability status
hasTrackingLink: boolean; // Whether to show T&C link
minimumAge?: string; // Age requirement
}
KV Key Format: {cloakedlink}#{language}#{country}#default#tc
Example: greatwin-casino#fr#DE#default#tc
| Key Pattern | Example | Purpose |
|---|---|---|
| Vote Count | wgt-reviewPageHeader-votecount |
“{count} votes” |
| Social Proof (sp) | wgt-reviewPageHeader-socialproof-sp |
“Super Popular” |
| Social Proof (tr) | wgt-reviewPageHeader-socialproof-tr |
“Top Rated” |
| Social Proof (ec) | wgt-reviewPageHeader-socialproof-ec |
“Editor’s Choice” |
| Bonus Label | wgt-social-ribbon-sp |
“Exclusive” / ribbon-specific |
| CTA Button | cta-claim-bonus |
“Claim Bonus” |
If isActive === false, 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 V3 widget..)
</p>
bonusTagText: .no-label-bonus class applied, label hiddenbonusText/additionalBonusText: Bonus section still renders but emptybackground: Falls back to backgroundMain prop| Feature | v1 | v2 | v3 (Current) |
|---|---|---|---|
| Architecture | Fixed 3-layout | Modular components | Enhanced modular |
| Background Themes | No | No | ✅ Light/Dark/Custom |
| Social Proof | Single pill | 6 ribbon types | 6 ribbon types |
| Clickable Bonus | No | No | ✅ Entire section |
| Button Colors | JSON config | Direct attribute | Solid or gradient |
| State Parsing | Manual | Manual | ✅ Hyphen format (US-NJ) |
| Tracking URLs | Inline | Inline | ✅ Utility function |
| Background Normalization | No | No | ✅ Utility function |
| Mobile Layout | Fixed | Responsive | ✅ Optimized separate |
| CSS Classes | Static | Dynamic | ✅ Enhanced dynamic |
| ARIA Labels | Basic | Basic | ✅ Enhanced accessibility |
| Component Naming | Standard | Standard | ✅ Versioned (Logo3, Rating3) |
| Best For | Legacy sites | Modern sites | Premium showcases |
All examples using <bw-widget> remain fully functional:
<bw-widget id="reviewpageheader3"
cloakedlink="greatwin-casino"
language="fr"
country="DE"
rating="5.0"
background="light"
ctacolors="#05842A"
ctahovercolors="#096725">
</bw-widget>
Migration Path: Replace <bw-widget> with <nw-blocks> - all attributes compatible.
Supports both camelCase and lowercase:
cloakedLink / cloakedlink ✅trackingLinkTarget / trackinglinktarget ✅ctaKey / ctakey ✅votesCountKey / votescountkey ✅socialProofKey / socialproofkey ✅exclusiveBonusKey / exclusivebonuskey ✅