// Velo code (Wix Studio) // IDs used below: // Desktop button: #ctaDesktop // Mobile button: #ctaMobile // Username labels: #usernameText (desktop), #usernameTextm (mobile) // Feel free to rename; just keep them consistent here. import wixLocation from 'wix-location'; import wixWindow from 'wix-window'; $w.onReady(function () { const q = wixLocation.query || {}; // Normalize query values (support both r and R, and username aliases if you ever change) const ref = (q.r || q.R || '').toString().trim(); const username = (q.username || q.user || '').toString().trim(); console.log("r = " + ref); console.log("username = " + username); // --- Utilities ------------------------------------------------------------- // Safe element getter (won't throw if element ID not on the page) const maybe = (id) => { try { return $w(id); } catch (e) { return null; } }; // Merge params into a base URL (keeps existing query if present) const buildUrl = (base, params = {}) => { // Handle relative bases (rare here, but safe) const u = base.startsWith('http') ? new URL(base) : new URL(base, 'https://dummy.local'); Object.entries(params).forEach(([k, v]) => { if (v !== undefined && v !== null && v !== '') u.searchParams.set(k, v); }); const out = u.toString(); // Strip dummy origin if we used one return base.startsWith('http') ? out : out.replace('https://dummy.local', ''); }; // Collect & pass through any optional trackers you care about const collectOptional = (keys) => { const obj = {}; keys.forEach((k) => { if (q[k]) obj[k] = q[k]; }); return obj; }; // --- Visual username fill (optional) -------------------------------------- // If you show the username on page, populate either/both text elements if present const usernameTargets = ['#usernameText', '#usernameTextm'] .map(maybe) .filter(Boolean); usernameTargets.forEach(el => { if (username) el.text = username; }); // --- DESTINATIONS ---------------------------------------------------------- // Change these two bases only: const WEB_SIGNUP_BASE = 'https://app.ownersbox.com/wfs/signup'; // desktop web signup page const ONELINK_BASE = 'https://ownersbox.onelink.me/1fLb/rirl6tr4'; // replace XXXX/landing with your real OneLink path // (A) DESKTOP BUTTON: add ?r= to the web signup URL const desktopBtn = maybe('#ctaDesktop'); if (desktopBtn) { const desktopParams = ref ? { r: ref } : {}; // If you also want to propagate other trackers on web: Object.assign(desktopParams, collectOptional(['btag','mbsy','utm_source','utm_medium','utm_campaign'])); const desktopUrl = buildUrl(WEB_SIGNUP_BASE, desktopParams); // Either set the .link or force navigation on click; using .link lets it behave like a normal anchor. desktopBtn.link = desktopUrl; // Optional: ensure most up-to-date link at click time (helpful if you later add dynamic changes) desktopBtn.onClick(() => wixLocation.to(desktopBtn.link)); } // (B) MOBILE BUTTON via AppsFlyer OneLink: // Goal: maintain attribution through install and still deliver `r` into the app and web fallback. // Best practice: // - Put `r` as a regular param AND in af_sub1 (passthrough). // - Put `r` inside your deep link (af_dp) so the app gets it on open. // - Provide af_ios_url / af_android_url fallbacks WITH ?r for users who don’t have the app. // - Keep your deep_link_value consistent with the app routing (“signup” here). const mobileBtn = maybe('#ctaMobile'); if (mobileBtn) { const baseWebWithRef = buildUrl(WEB_SIGNUP_BASE, ref ? { r: ref } : {}); const mobileParams = { // Custom + passthrough values: ...(ref ? { r: ref, af_sub1: ref } : {}), // App deep link (your app must route this; example scheme below) ...(ref ? { af_dp: `ownersbox://signup?r=ref` } : {}), // Deep link routing hint (depends on your app’s logic) deep_link_value: 'signup', // Attribution & fallback safety: af_ios_url: baseWebWithRef, af_android_url: baseWebWithRef, // Optional settings you might already use: // af_xp: 'custom', // pid, c, af_channel, af_ad, etc. can live in your OneLink template, or pass them from q if present. ...collectOptional(['pid','c','af_channel','af_ad','btag','mbsy','utm_source','utm_medium','utm_campaign']) }; const oneLinkUrl = buildUrl(ONELINK_BASE, mobileParams); // As above, set .link and also navigate on click for freshness mobileBtn.link = oneLinkUrl; mobileBtn.onClick(() => wixLocation.to(mobileBtn.link)); } // Optional: Choose which button to show based on form factor. // If you keep both on the page, you can auto-hide the "other" one: const isMobile = wixWindow.formFactor === 'Mobile'; if (desktopBtn) desktopBtn.hidden = isMobile; if (mobileBtn) mobileBtn.hidden = !isMobile; });
top of page
Glow.png

PLAYER PICKS

QUICK PICKS,
QUICK PAYOUTS.

Now available on OwnersBox!

Apple Button
Android Button
Player Picks Phone Screen
Player Picks Phone UI
FIRST TIME DEPOSITS GET UP TO $500 IN BONUS REWARDS
Glow.png

HOW TO PLAY

PLAYER PICKS

2 or more players 2.png
One
PICK 2 OR MORE PLAYERS

The more players you pick, the higher the potential payout.

More or less 2.png
number-2.png
CHOOSE “MORE” OR “LESS”

Pick either option on each player & submit your entry. It’s that easy!

Watch & Win 3.jpg
number-3.png
WATCH YOUR PLAYERS LIVE & WIN

Experience the results real-time as the games unfold!

Arrow
Arrow
OB_PLAYER-PICKS_LOGO_1.01.png

OUR PAYOUTS ARE BEST-IN-CLASS

We offer two ways to win your entry: Protected Picks and Perfect Picks. Perfect means you have to get all of your picks correct, while Protected allows you to get one wrong. Whichever one you choose, we're confident our payouts can't be beat.

Perfect Pick
Payout Comparison
2 PICK
3 PICK
4 PICK
5 PICK
6 PICK
White Wordmark
The Other Guys
5x
20x
3x
10x
35x
3x
6x
10x
20x
35x
Protected Pick
Payout Comparison
2 PICK
3 PICK
4 PICK
5 PICK
6 PICK
White Wordmark
The Other Guys
1x
0.5x
2.5x
1.5x
2x
X
1x
1.5x
2.5x
3x

= Pick Hit

= Pick Did Not Hit

AVAILABLE ACROSS 4 MAJOR SPORTS

NFL PANEL.png
OB_Football.png
FANTASY
FOOTBALL

Season starts September

MLB PANEL.png
OB_Baseball.png
FANTASY
BASEBALL

🟢 Active Contests

NHL PANEL.png
OB_Puck.png
FANTASY
HOCKEY

🟢 Active Contests

NBA PANEL.png
OB_Basketball.png
FANTASY
BASKETBALL

🟢 Active Contests

Where Can I Play Player Picks?

PLAY IN 21 STATES, DC + ALL OF CANADA

If your state is highlighted in orange below, you're good to go!

Player Picks States Map
WHAT ARE YOU WAITING FOR? MAKE YOUR PICKS!
bottom of page