Migration Notice: We are transitioning from <bw-widget> to <nw-blocks> tags. While both are currently supported for backward compatibility, <nw-blocks> is now the recommended tag for all new implementations. Existing <bw-widget> implementations will continue to function.
Hero2 is an enhanced hero widget built on the Toplist3 component architecture. Unlike the standard Hero widget, Hero2 supports social proof ribbons, vote counts, and advanced styling options. It’s designed for review pages, landing pages, and sections where social validation enhances credibility.
Key Features:
| Attribute | Type | Required | Default | Description |
|---|---|---|---|---|
id |
string | Yes | - | Must be “hero2” |
cloakedlink |
string | Yes | - | Brand identifier/cloaked link |
language |
string | No | “en” | ISO 639-1 language code |
currency |
string | No | “EUR” | ISO 4217 currency code |
country |
string | No | “fr” | ISO 3166-1 country code (supports state: US-CA) |
countrystate |
string | No | - | State/province code (auto-parsed from country) |
maxrows |
number | No | 9999 | Number of brands to display (1-4 typical for hero) |
rating |
number | No | 5.0 | Star rating (0-5) |
product |
string | No | “default” | Product filter |
short |
string | No | “default” | Short name filter |
sellingpointtype |
string | No | “general” | Type of selling points to display |
bonustype |
string | No | “tb” | Bonus type filter (tb=table, wb=welcome) |
headingtext |
string | No | "" | Custom heading text |
headinglevel |
string | No | “h2” | Heading level (h1, h2, h3, h4, h5, h6, p) |
headingalignment |
string | No | “Center” | Heading alignment (Left, Center, Right) |
showsubheading |
boolean | No | true | Show/hide heading and intro text |
headingkey |
string | No | "" | Translation key for heading |
introtext |
string | No | "" | Introduction text below heading |
introtextalignment |
string | No | “Center” | Intro text alignment (Left, Center, Right) |
ctatext |
string | No | "" | Custom CTA button text |
ctakey |
string | No | “wgt-cta-claim-bonus” | Translation key for CTA text |
ctacolors |
string/array | No | ["#05842A", “#05842A”] | CTA button background gradient colors |
ctahovercolors |
string/array | No | ["#096725", “#096725”] | CTA button hover gradient colors |
minwidth |
string | No | - | Minimum button width (e.g., “200px”) |
socialproofkey |
string | No | - | Translation key for social proof message |
trackinglinktarget |
string | No | "" | Tracking target parameter |
trackingdata |
string | No | "" | Additional tracking data |
trackingtarget |
string | No | "" | Tracking parameter for analytics |
referer |
string | No | - | Referrer tracking parameter |
rel |
string | No | “nofollow” | Link rel attribute |
target |
string | No | “_blank” | Link target attribute |
configuration |
JSON | No | {} | Advanced configuration object |
The socialproofkey attribute enables display of trust indicators:
<nw-blocks
id="hero2"
cloakedlink="trusted-casino"
socialproofkey="wgt-reviewPageHeader-socialproof-sp">
</nw-blocks>
Common Social Proof Keys:
wgt-reviewPageHeader-socialproof-sp: Review page social proofwgt-hero-social-proof: Generic hero social proofwgt-top-casinos-proof: Top casinos trust badgewgt-expert-choice: Expert recommendation badgeSocial proof appears as:
Example Output:
π Trusted by 50,000+ Players
β Expert's Choice 2025
Hero2 leverages the Toplist3 component with isHero: true flag, inheriting:
<Toplist3
id={id}
data={[{...data, isHero: true}]}
/>
Advanced configuration via JSON object:
{
"component": {
"images": {
"base_url": "/logo250"
},
"href": {
"rel": "nofollow",
"target": "_blank",
"cta": "homepage"
},
"theme": {
"containerWidth": "1000",
"cta": {
"colors": ["#05842A", "#096725"]
}
}
}
}
| Property | Type | Default | Description |
|---|---|---|---|
base_url |
string | “/logo250” | Base URL path for brand logos |
| Property | Type | Default | Description |
|---|---|---|---|
rel |
string | “nofollow” | Link rel attribute |
target |
string | “_blank” | Link target attribute |
cta |
string | “homepage” | CTA tracking parameter |
| Property | Type | Default | Description |
|---|---|---|---|
containerWidth |
string | “1000” | Container width in pixels |
cta.colors |
array | ["#05842A", “#096725”] | Button gradient [start, end] |
<nw-blocks
id="hero2"
cloakedlink="premium-casino"
language="en"
currency="usd"
maxrows="1"
rating="4.9"
headingtext="#1 Online Casino 2025"
headinglevel="h1"
headingalignment="center"
introtext="Join 1 million+ satisfied players worldwide"
introtextalignment="center"
ctatext="Claim $1000 Bonus"
ctacolors="['#FFD700', '#FFA500']"
ctahovercolors="['#FFA500', '#FF8C00']"
socialproofkey="wgt-hero-trusted-players" \>
</nw-blocks>
<nw-blocks
id="hero2"
cloakedlink="casino-review"
language="en"
currency="eur"
maxrows="1"
rating="4.7"
headingtext="888 Casino Full Review"
headinglevel="h1"
headingalignment="left"
introtext="Updated December 2025 β’ Expert Analysis"
introtextalignment="left"
socialproofkey="wgt-reviewPageHeader-socialproof-sp"
trackinglinktarget="review-hero" \>
</nw-blocks>
<nw-blocks
id="hero2"
cloakedlink="nj-casino"
language="en"
currency="usd"
country="US"
maxrows="1"
rating="4.6"
headingtext="Best NJ Online Casino"
headinglevel="h1"
introtext="Licensed by NJ Division of Gaming Enforcement"
socialproofkey="wgt-nj-licensed"
trackinglinktarget="nj-hero" \>
</nw-blocks>
<!-- French version -->
<nw-blocks
id="hero2"
cloakedlink="cresus-casino"
language="fr"
currency="eur"
rating="4.8"
headingtext="Meilleur Casino en Ligne"
introtext="ApprouvΓ© par 100 000+ joueurs"
socialproofkey="wgt-trusted-fr" \>
</nw-blocks>
<!-- German version -->
<nw-blocks
id="hero2"
cloakedlink="betsson-casino"
language="de"
currency="eur"
rating="4.7"
headingtext="Bestes Online Casino"
introtext="Vertraut von 50 000+ Spielern"
socialproofkey="wgt-trusted-de" \>
</nw-blocks>
<nw-blocks
id="hero2"
cloakedlink="exclusive-casino"
language="en"
currency="usd"
rating="4.9"
headingtext="VIP Exclusive Offer"
ctatext="Get VIP Access"
ctacolors="['#8B00FF', '#4B0082']"
ctahovercolors="['#4B0082', '#2E0854']"
socialproofkey="wgt-vip-members" \>
</nw-blocks>
wgt-reviewPageHeader-socialproof-sp for credibilitywgt-hero-trusted-playersheadinglevel="h1" for primary page headingsheadinglevel="h2" for section-level heroesmaxrows="1" for hero sectionsmaxrows="3-4" for featured listsmaxrows low (1-4) for hero sections<nw-blocks
id="hero2"
cloakedlink="casino-brand"
ctacolors="['#1E88E5', '#1565C0']"
ctahovercolors="['#1565C0', '#0D47A1']"
configuration='{
"component": {
"images": {"base_url": "/logo250"},
"href": {"rel": "nofollow", "target": "_blank", "cta": "homepage"},
"theme": {
"containerWidth": "1200",
"cta": {"colors": ["#1E88E5", "#1565C0"]}
}
}
}' \>
</nw-blocks>
<!-- Green to dark green (default) -->
<nw-blocks id="hero2"
ctacolors="['#4CAF50', '#2E7D32']"
ctahovercolors="['#2E7D32', '#1B5E20']" \>
</nw-blocks>
<!-- Gold gradient -->
<nw-blocks id="hero2"
ctacolors="['#FFD700', '#FFA500']"
ctahovercolors="['#FFA500', '#FF8C00']" \>
</nw-blocks>
<!-- Blue gradient -->
<nw-blocks id="hero2"
ctacolors="['#2196F3', '#1976D2']"
ctahovercolors="['#1976D2', '#1565C0']" \>
</nw-blocks>
<!-- Purple gradient -->
<nw-blocks id="hero2"
ctacolors="['#9C27B0', '#7B1FA2']"
ctahovercolors="['#7B1FA2', '#6A1B9A']" \>
</nw-blocks>
<nw-blocks
id="hero2"
cloakedlink="..."
configuration='{
"component": {
"theme": {"containerWidth": "1400"}
}
}' \>
</nw-blocks>
<!-- Show only table bonuses -->
<nw-blocks id="hero2" bonustype="tb" \>
</nw-blocks>
<!-- Show welcome bonuses -->
<nw-blocks id="hero2" bonustype="wb" \>
</nw-blocks>
Hero2 fetches brand data with social proof:
{
brand: {
cloakedLink: "greatwin-casino",
brandName: "GreatWin Casino",
brandId: "brand-123",
imgUrl: "/brands/greatwin-logo.png",
alt: "GreatWin Casino Logo",
rating: 4.5,
bonus: "$1000",
bonusExtra: "100 FS",
bonusText: "Welcome Bonus",
additionalBonusText: "Free Spins",
minimumAge: "18+",
product: "casino",
trackingLink: "greatwin-casino",
trackingTarget: "homepage",
trackingData: "hero2-widget",
hasTrackingLink: true,
isActive: true,
votes: "5000",
voteCountKey: "wgt-vote-count",
socialProofKey: "wgt-hero-social-proof",
socialRibbonText: "Trusted by 50,000+ players",
complianceDisclaimer: {
disclaimer: "18+. T&Cs apply. Play responsibly."
},
hideBonuses: false,
hideBonusRibbon: false,
hideBonusText: false,
introTextValues: [
"Fast Withdrawals",
"24/7 Support",
"Licensed & Secure"
]
}
}
Required Fields:
cloakedLink: Brand identifierbrandName: Casino namebrandId: Unique brand IDimgUrl: Logo pathtrackingLink: Cloaked linkOptional Social Proof Fields:
votes: Number of votes/reviewsvoteCountKey: Translation key for vote countsocialProofKey: Social proof message keysocialRibbonText: Custom social proof textOther Optional Fields:
rating: Star ratingbonus, bonusExtra: Bonus informationminimumAge: Age requirementcomplianceDisclaimer: Legal textintroTextValues: Selling points arrayRequired i18n keys:
{
"wgt-cta-claim-bonus": "Claim Bonus",
"wgt-reviewPageHeader-socialproof-sp": "Trusted by {count}+ players",
"wgt-hero-social-proof": "Expert's Choice 2025",
"wgt-vote-count": "{votes} reviews",
"wgt-top-casinos-proof": "Top Rated Casino",
"wgt-expert-choice": "Expert Recommended"
}
Brand data is cached:
BRAND_HERO2:{cloakedLink}:{country}:{language}:{product}| Feature | Hero | Hero2 |
|---|---|---|
| Architecture | PuzzleTop-based | Toplist3-based |
| Social Proof | β No | β Yes |
| Vote Counts | β No | β Yes |
| Multi-Row | β οΈ Limited | β Full support |
| Gradient CTA | β Yes | β Yes |
| Social Ribbons | β No | β Yes |
| Product Filter | β Not needed | β Yes |
| Use Case | Simple hero | Advanced hero with social proof |
When to use Hero:
When to use Hero2:
If brand is inactive or not allowed:
<p id="inactive-brand" style="display: none;">
The brand with name {brandName} is currently inactive or not allowed in this country!(loaded with Hero2 widget..)
</p>
Handling:
isActive status in CMSIf socialproofkey has no translation:
Brand Not Found:
cloakedlink is correctNo Vote Count:
Missing Selling Points:
All examples above use the new <nw-blocks> tag. For backward compatibility, you can still use <bw-widget>:
<!-- Old syntax (still supported) -->
<bw-widget
id="hero2"
cloakedlink="greatwin-casino"
language="en"
maxrows="1"
headingtext="Featured Casino"
socialproofkey="wgt-hero-social-proof" \>
</bw-widget>
<!-- New syntax (recommended) -->
<nw-blocks
id="hero2"
cloakedlink="greatwin-casino"
language="en"
maxrows="1"
headingtext="Featured Casino"
socialproofkey="wgt-hero-social-proof" \>
</nw-blocks>
Both tags work identically, but <nw-blocks> is recommended for all new implementations.