Correct the DripOffers capacity figure and tighten the cap
I read campaigns.received_today as a per-day counter and told Marty the platform delivers about 2,700 clicks a day. It doesn't. That column is only a daily figure while the nightly cron resets it, and that reset has stopped running, so the value is an accumulation since it last ran. The permanent click ledger is unambiguous: roughly 40 to 50 clicks a day across the whole platform. It also agrees exactly with ordered-minus- remaining on every campaign, which is a good independent check that the read-never-derive design is reading the right thing. So MAX_CLICKS drops from 10,000 to 2,500. At the real volume a 10,000-click booking would hold the top of the offerwall for most of a year. The pack-2 placement is working as intended and is already measurable: the three backfilled campaigns took 14 of the platform's 17 clicks today. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+15
-7
@@ -25,18 +25,26 @@
|
|||||||
// 3. A SYNDICATION HICCUP NEVER BLOCKS THE MEMBER. Callers swallow errors; the IAP campaign
|
// 3. A SYNDICATION HICCUP NEVER BLOCKS THE MEMBER. Callers swallow errors; the IAP campaign
|
||||||
// goes live either way.
|
// goes live either way.
|
||||||
//
|
//
|
||||||
// Capacity note (2026-09-18): the offerwall is a menu, not a rotator - every eligible campaign
|
// Capacity note (2026-09-18, corrected same day): the offerwall is a menu, not a rotator -
|
||||||
// is listed at once, ordered by reward, and the member chooses. So adding campaigns does not
|
// every eligible campaign is listed at once, ordered by reward, and the earner chooses. So
|
||||||
// starve the others the way the AdRevLinks rotator does; it lengthens the menu. What is finite
|
// adding campaigns does not starve the others the way the AdRevLinks rotator does; it
|
||||||
// is total clicks, running around 2,700 a day across the whole platform. Hence MAX_CLICKS
|
// lengthens the menu.
|
||||||
// below: one campaign booking 50,000 clicks would sit in the list for weeks. Cost is not the
|
//
|
||||||
// reason for the caps - Marty owns the platform and treats these placements as free.
|
// What is finite is total clicks, and the real figure is SMALL: the permanent click ledger
|
||||||
|
// shows roughly 40-50 clicks A DAY across the whole platform. (An earlier read of 2,700/day
|
||||||
|
// was wrong - it came from campaigns.received_today, which is only a daily figure while the
|
||||||
|
// nightly cron resets it, and that reset has stopped running.) Pack 2 puts our offers above
|
||||||
|
// the house campaigns, and they are indeed taking the large majority of that trickle.
|
||||||
|
//
|
||||||
|
// Hence a deliberately small MAX_CLICKS: at this volume a 10,000-click booking would sit at
|
||||||
|
// the top of the list for most of a year and crowd everything else out. Cost is not the reason
|
||||||
|
// for the caps - Marty owns the platform and treats these placements as free.
|
||||||
'use strict';
|
'use strict';
|
||||||
const https = require('https');
|
const https = require('https');
|
||||||
const { URL } = require('url');
|
const { URL } = require('url');
|
||||||
|
|
||||||
const MIN_CREDITS = Number(process.env.DRIPOFFERS_MIN_CREDITS || 1000); // below this, not worth a listing
|
const MIN_CREDITS = Number(process.env.DRIPOFFERS_MIN_CREDITS || 1000); // below this, not worth a listing
|
||||||
const MAX_CLICKS = Number(process.env.DRIPOFFERS_MAX_CLICKS || 10000);
|
const MAX_CLICKS = Number(process.env.DRIPOFFERS_MAX_CLICKS || 2500);
|
||||||
const MIN_CLICKS = 500; // the platform's own floor
|
const MIN_CLICKS = 500; // the platform's own floor
|
||||||
const PACK_ID = Number(process.env.DRIPOFFERS_PACK_ID || 2); // 2 = a 10-second dwell
|
const PACK_ID = Number(process.env.DRIPOFFERS_PACK_ID || 2); // 2 = a 10-second dwell
|
||||||
const USER_ID = Number(process.env.DRIPOFFERS_USER_ID || 1); // the funding account
|
const USER_ID = Number(process.env.DRIPOFFERS_USER_ID || 1); // the funding account
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ t('tier 1+2 merges both lists', drip.countriesFor('1,2', tiers) === 'US,CA,GB,BR
|
|||||||
// worldwide would deliver the Tier 1 traffic its owner deliberately excluded
|
// worldwide would deliver the Tier 1 traffic its owner deliberately excluded
|
||||||
t('tier 3 alone is skipped, not silently widened', drip.countriesFor('3', tiers) === null, String(drip.countriesFor('3', tiers)));
|
t('tier 3 alone is skipped, not silently widened', drip.countriesFor('3', tiers) === null, String(drip.countriesFor('3', tiers)));
|
||||||
|
|
||||||
t('credits convert to clicks one for one', drip.clicksFor(4000) === 4000, String(drip.clicksFor(4000)));
|
t('credits convert to clicks one for one', drip.clicksFor(2000) === 2000, String(drip.clicksFor(2000)));
|
||||||
t('one campaign cannot swallow the platform', drip.clicksFor(500000) === drip.MAX_CLICKS, String(drip.clicksFor(500000)));
|
t('one campaign cannot swallow the platform', drip.clicksFor(500000) === drip.MAX_CLICKS, String(drip.clicksFor(500000)));
|
||||||
// the offerwall title a stranger actually reads (the platform's floor is 5 characters)
|
// the offerwall title a stranger actually reads (the platform's floor is 5 characters)
|
||||||
const T = (c, u) => drip.titleFor(c, u || 'https://www.mailer.gold/x');
|
const T = (c, u) => drip.titleFor(c, u || 'https://www.mailer.gold/x');
|
||||||
|
|||||||
Reference in New Issue
Block a user