Track the join funnel end-to-end through the self-enroll page
- Self-enroll pageviews now tracked as the "joinnow" event (track.js loaded on the page; server whitelist + admin tiles/columns extended) - A confirmed on-chain registration in the wallet-connect flow now auto-posts to the submit-id API, so every self-enroll join records a submission with source + clickid attribution and fires the purchase event and BeMob postback with no manual ID entry - Optional name/handle field on the join page feeds the submission and the team Telegram alert - Admin Traffic panel: Join-now views tile, Join-now -> Confirmed conversion, and a per-source Confirmed column for campaign-level ROI reading Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -93,6 +93,7 @@
|
||||
if(rc.status==='0x0'){ log('⚠️ The transaction reverted — no position created, and your POL was returned (minus gas). Please try again.','err'); $('joinBtn').disabled=false; return; }
|
||||
var newId=receiptEventId(rc);
|
||||
if(newId){
|
||||
reportJoin(newId);
|
||||
$('result').style.display='block';
|
||||
$('resultId').textContent='#'+newId;
|
||||
$('resultSub').innerHTML='Welcome to the team! Taking you to your position page…';
|
||||
@@ -108,6 +109,21 @@
|
||||
}
|
||||
function el_scroll(id){ var e=$(id); if(e&&e.scrollIntoView) e.scrollIntoView({behavior:'smooth',block:'center'}); }
|
||||
|
||||
// Auto-confirm the join server-side: records the submission (source + clickid
|
||||
// attribution), fires the purchase event + BeMob postback, enqueues rotation
|
||||
// joins, and alerts the team — same pipeline as the manual submit-ID form.
|
||||
function reportJoin(newId){
|
||||
try{
|
||||
var nameEl=$('memberName');
|
||||
var name=(nameEl&&nameEl.value?nameEl.value.trim().slice(0,60):'')||('Self-enrolled #'+newId);
|
||||
var src=(window.ctbGetSource?window.ctbGetSource():'(direct)');
|
||||
var cid=(window.ctbGetClickId?window.ctbGetClickId():'');
|
||||
fetch('/api/public/submit-id',{method:'POST',headers:{'Content-Type':'application/json'},
|
||||
body:JSON.stringify({newId:String(newId),memberName:name,sponsorId:String(sponsorId||'?'),source:src,clickid:cid})
|
||||
}).catch(function(){});
|
||||
}catch(e){}
|
||||
}
|
||||
|
||||
function attachWalletEvents(){
|
||||
if(!eth||!eth.on||eth.__rmcBound) return; eth.__rmcBound=true;
|
||||
eth.on('accountsChanged',function(accs){ account=(accs&&accs[0])||null; if(!account){ $('connected').style.display='none'; $('connectBtn').style.display=''; } else { $('wallet').textContent=account.slice(0,6)+'…'+account.slice(-4); refreshBalance(); } });
|
||||
|
||||
Reference in New Issue
Block a user