Five Dollar Friday bridge page, with the member's link on it
Marty's ask: use the Friday promo as a tool where the sponsor gets the
credit, and as a bridge-page entry point. The sponsor part already worked
(any public page + ?ref sets the sponsor cookie, 2026-09-21); what was
missing was a page that is ABOUT the offer, so a click on a "20% bonus
credits today" image did not land on the general pitch and leak.
/friday: the banner as the hero, the live state from /api/friday (live now
with today's pack count and bonus credits issued, or the next date with a
countdown to midnight Central found by scanning minutes so DST cannot put it
an hour out), three steps, the email-first join with a new `friday` angle so
it shows as its own row in Admin > Traffic, and the credit definition. No
attribution logic added: last touch, walk-up, as everywhere.
Promo tools: a {{FRIDAY}} token that turns the member's invite link into
/friday?ref=<username>; posts for X, Facebook and Telegram and a text that
carry it; the three new banners (loft 1200x630, dark 1200x630, square
1080x1080) as a group in the kit with a copy-my-Friday-link button on it.
Chatbot answer points at the page and drops the stale "first one is
September 25" line. /friday in the traffic list, the sitemap and the QA
public walk. Cache tags bumped on my.js, promo.js and site.css.
QA member walk: 0 bugs.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -2088,6 +2088,10 @@
|
||||
bwrap.dataset.filled = '1';
|
||||
// one collapsed accordion per size / use, so the kit stays scannable as it grows
|
||||
const GROUPS = [
|
||||
{ title: 'Five Dollar Friday · share with your /friday link', friday: true, items: [
|
||||
{ file: 'iap-five-dollar-friday-v2-1200x630.jpg', size: '1200×630 · Five Dollar Friday · loft, Central-time window' },
|
||||
{ file: 'iap-five-dollar-friday-dark-1200x630.jpg', size: '1200×630 · Five Dollar Friday · dark studio' },
|
||||
{ file: 'iap-five-dollar-friday-v2-1080x1080.jpg', size: '1080×1080 · Five Dollar Friday · square for Instagram and feeds' } ] },
|
||||
{ title: '1200×630 · social posts, link previews, Daily News covers', items: [
|
||||
{ file: 'iap-hero-1200x630.png', size: '1200×630 · hero · advertise and earn' },
|
||||
{ file: 'iap-advertise-earn-1200x630.jpg', size: '1200×630 · advertise and earn instantly, locked in code' },
|
||||
@@ -2135,6 +2139,19 @@
|
||||
det.className = 'pb-acc';
|
||||
det.innerHTML = '<summary><span>' + esc(g.title) + '</span><span class="pb-count">' + g.items.length + (g.items.length === 1 ? ' banner' : ' banners') + '</span></summary><div class="pb-grid"></div>';
|
||||
const grid = det.querySelector('.pb-grid');
|
||||
if (g.friday) {
|
||||
// the bridge page with this member's referral: any public page + ?ref sets the sponsor cookie
|
||||
const inv = (document.getElementById('inviteLine') || {}).textContent || '';
|
||||
const fl = inv.replace(/\/join\/([^/?#]+).*$/, '/friday?ref=$1');
|
||||
const note = document.createElement('div');
|
||||
note.className = 'pb-note';
|
||||
note.innerHTML = '<span>Post any of these with your Five Dollar Friday link: <b class="mono"></b></span>';
|
||||
note.querySelector('b').textContent = fl;
|
||||
const cp = document.createElement('button'); cp.className = 'btn small'; cp.textContent = 'Copy my Friday link';
|
||||
cp.addEventListener('click', async () => { try { await navigator.clipboard.writeText(fl); IAP.status('Friday link copied.', 'ok'); } catch (e) { IAP.status('Copy failed.', 'bad'); } });
|
||||
note.appendChild(cp);
|
||||
grid.before(note);
|
||||
}
|
||||
for (const b of g.items) {
|
||||
const url = location.origin + '/banners/' + b.file;
|
||||
const d = document.createElement('div');
|
||||
|
||||
Reference in New Issue
Block a user