NAS syndication adapter (feature-flagged off): push banner/text to Network Ad Space, reconcile delivery into unified credit pool
- nas.js: direct-MySQL writer mirroring CTB's proven payments+sponsorads path (approved:1, pid 1/2, catid 5, remaining counts DOWN) - Create-time push for banner/text; pause/resume mirrors to NAS deactivate/topUp - reconcileNas() 5-min loop: reads served, charges delta credits to the shared budget, stops NAS ad when budget dry - Campaign row shows IAP + '+N net' network views (differentiated stats) - Inert unless NAS_DB_* env is set; zero prod impact until enabled - Also: rename Inbox sub-tab to 'Inbox Ads' Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -123,6 +123,13 @@ async function boot() {
|
||||
chatbot.init({ dataDir: DATA_DIR, chain });
|
||||
setTimeout(() => ads.dailySweep().catch(e => console.error('sweep', e.message)), 60 * 1000);
|
||||
setInterval(() => ads.dailySweep().catch(e => console.error('sweep', e.message)), 60 * 60 * 1000);
|
||||
// NAS reconcile: pull syndicated delivery into the unified credit pool
|
||||
// (inert unless NAS_DB_* is set). Every 5 min after a short warm-up.
|
||||
if (ads.nasEnabled()) {
|
||||
console.log('NAS syndication enabled');
|
||||
setTimeout(() => ads.reconcileNas().catch(e => console.error('nas reconcile', e.message)), 90 * 1000);
|
||||
setInterval(() => ads.reconcileNas().catch(e => console.error('nas reconcile', e.message)), 5 * 60 * 1000);
|
||||
}
|
||||
}
|
||||
|
||||
function siteConfig() {
|
||||
|
||||
Reference in New Issue
Block a user