diff --git a/accounts.js b/accounts.js index a0b2293..4eff736 100644 --- a/accounts.js +++ b/accounts.js @@ -34,7 +34,7 @@ function newCode(taken) { } const pub = a => a ? { email: a.email, sponsorRef: a.sponsorRef || '', code: a.code || null, username: a.username || null, memberId: a.memberId || 0, joinedVia: a.joinedVia || null, - lineBannerUrl: a.lineBannerUrl || null, lineTargetUrl: a.lineTargetUrl || null, + lineBannerUrl: a.lineBannerUrl || null, lineTargetUrl: a.lineTargetUrl || null, wallOffers: a.wallOffers || null, avatarUrl: a.avatarUrl || null, bio: a.bio || null, socials: a.socials || null, chatAvailable: a.chatAvailable === false ? false : true, lastSeen: a.lastSeen || 0, address: a.address || null, created: a.created } : null; @@ -109,6 +109,12 @@ const J = { this.save(); return { ok: true, account: pub(acct) }; }, + async setWallOffers(e, json) { + const acct = this.db.byEmail[e]; + if (!acct) return { error: 'No such account.' }; + acct.wallOffers = json || null; this.save(); + return { ok: true, account: pub(acct) }; + }, async setProfile(e, avatarUrl, bio, socials) { const acct = this.db.byEmail[e]; if (!acct) return { error: 'No such account.' }; @@ -172,7 +178,7 @@ const J = { // ---- MySQL mode ---- const rowPub = r => r ? pub({ email: r.email, sponsorRef: r.sponsor_ref, code: r.code, username: r.username, memberId: r.member_id || 0, joinedVia: r.joined_via || null, - lineBannerUrl: r.line_banner_url, lineTargetUrl: r.line_target_url, + lineBannerUrl: r.line_banner_url, lineTargetUrl: r.line_target_url, wallOffers: r.wall_offers || null, avatarUrl: r.avatar_url, bio: r.bio, socials: r.socials, chatAvailable: r.chat_available === 0 ? false : true, lastSeen: Number(r.last_seen || 0), address: r.address, created: Number(r.created) }) : null; @@ -224,6 +230,10 @@ const D = { await db.q('UPDATE accounts SET line_banner_url=?, line_target_url=? WHERE email=?', [bannerUrl || null, targetUrl || null, e]); return { ok: true, account: await this.byEmail(e) }; }, + async setWallOffers(e, json) { + await db.q('UPDATE accounts SET wall_offers=? WHERE email=?', [json || null, e]); + return { ok: true, account: await this.byEmail(e) }; + }, async setProfile(e, avatarUrl, bio, socials) { if (avatarUrl !== undefined) await db.q('UPDATE accounts SET avatar_url=? WHERE email=?', [avatarUrl || null, e]); if (bio !== undefined) await db.q('UPDATE accounts SET bio=? WHERE email=?', [bio || null, e]); @@ -375,6 +385,7 @@ async function getChatSettings(email) { module.exports = { init, signup, login, ensure, byEmail, byAddress, byCode, byUsername, listAll, setSponsorRef, setUsername, setMemberId, namesForMembers, listByReferrer, downline, linkWallet, count, setLineBanner: (e, b, t) => impl().setLineBanner(String(e || '').toLowerCase(), b, t), + setWallOffers: (e, j) => impl().setWallOffers(String(e || '').toLowerCase(), j), setProfile: (e, a, bio, socials) => impl().setProfile(String(e || '').toLowerCase(), a, bio, socials), touchSeen: e => impl().touchSeen(String(e || '').toLowerCase()), setChatAvailable: (e, v) => impl().setChatAvailable(String(e || '').toLowerCase(), v), diff --git a/chatbot.js b/chatbot.js index 5957cac..0900a96 100644 --- a/chatbot.js +++ b/chatbot.js @@ -37,6 +37,8 @@ const CANNED = [ a: 'Promo tools (Members > Promo tools) has pill menus for each kit: Social posts (X, Facebook, LinkedIn, Telegram or WhatsApp, with post and share buttons), Text a friend (SMS-sized messages with Text it, WhatsApp, Telegram and Copy), Email swipes (short, standard, long, follow-up), Banners (every standard ad size plus square, story and Telegram sizes, download or copy URL), your Banner wall link, and an Objection handling bank with the truth plus a ready-to-send reply. Everything is personalized with your invite link.' }, { re: /(drain (my|your) wallet|stop and go back|trust wallet.*(warn|block|red)|wallet (warning|blocked))/i, a: 'That red "this transaction will drain your wallet" screen is the wallet\'s own safety rule, not a problem with the purchase: Trust Wallet blocks any transaction that spends most of the POL in the wallet. Ways through: buy a smaller package first, add some POL so the purchase is well under half the balance, or connect a different wallet (MetaMask, Phantom, SafePal have no such block). Extra POL always stays yours. If the next try says WalletConnect disconnected, open Wallet, tap Disconnect, then Connect again. Phantom, SafePal and MetaMask do not have the hard block.' }, + { re: /(wall (page|slots?|positions?)|banner wall|my wall|three (ads|slots) on (my|the) wall)/i, + a: 'Your wall (instantadpay.com/wall/yourname) shows three ads. Position 1 is always your line banner. Positions 2 and 3 show your upline (or InstantAdPay) until you earn them: 2 qualifying buyers ($20 or more) make position 2 yours, 5 make position 3 yours, so a fully qualified member owns the whole page with their own links and offers. Set them in Profile > Your wall; an unlocked slot you leave empty keeps showing your upline until you fill it.' }, { re: /(solo ad|inbox ad|inbox)/i, a: 'Solo ads are full-message ads delivered straight into member inboxes on-site. Compose one under Campaigns (pick "Solo ad"): subject line, a rich-text message with a real editor (bold, headings, lists, links), an attached image or video if you want one, and a call-to-action button with your own label. You pay 5 credits per guaranteed delivery, 10 deliveries minimum. On the reading side, your Inbox section collects solos from other members — give one a real read (10 seconds on the open message) and claim 2 credits, up to 5 rewarded reads a day. You never receive your own solo.' }, { re: /(chat|message (my )?(sponsor|upline|team|downline)|talk to (my )?sponsor|contact (my )?sponsor|ask (my )?sponsor|reach (my )?sponsor)/i, @@ -60,6 +62,7 @@ FACTS: - PROMO TOOLS (Members > Promo tools, pill menu): Social posts for X/Facebook/LinkedIn/Telegram-WhatsApp with post/share buttons; Text a friend (5 SMS-sized messages with Text it / WhatsApp / Telegram / Copy); Email swipes (short, standard, long, follow-up); Banners in every standard ad size plus 1080x1080, 1080x1920 and 1280x720 (download or copy URL); the member's Banner wall link; an Objection handling bank (truth + ready-to-send reply); a Videos tab (hook videos in production). Every piece carries the member's invite link; angle links add ?v=instant|adspend|free|ledger. Members who want copy in their own voice can use mybrandedvoice.com. - INVITE PAGES: a member's link instantadpay.com/join/ opens a lead-capture page (email first, wallet later); add ?v=instant|adspend|free|ledger|two for an angle-matched headline. New free members get a short getting-started email series over the first week (unsubscribe link in every email; the admin edits the sequence in /admin > Settings). - WALLET DRAIN WARNING: Trust Wallet hard-blocks any purchase that spends most of the wallet's POL ("this transaction will drain your wallet", only "Stop and go back"). It is a balance-proportion heuristic, not a contract issue (there are no token approvals; a buy is one native-POL payable call). Advice: smaller package first, or add POL so the buy is well under half the balance, or use MetaMask/Phantom/SafePal (no hard block). The dashboard warns Trust Wallet users before sending when a buy would use more than ~55% of the balance; other wallets are not prompted. After a blocked attempt the WalletConnect session may be dead: Wallet tab > Disconnect > Connect again. +- WALL OWNERSHIP LADDER: the public wall has 3 positions. Position 1 = the member's line banner. Positions 2 and 3 show upline banners (then house ads) UNTIL the member earns them: 2 qualifying buyers ($20+) unlock position 2, 5 unlock position 3; a fully qualified member's wall is 100% their own links/offers (set in Profile > Your wall: label, https link, optional banner image). Empty unlocked slots fall back to upline banners, then house ads. - LINE BANNER (free, set in Profile): every member can set a destination URL (must allow framing) plus an optional banner image. It is shown to their next THREE levels of new members during welcome tours (position 1 for directs, 2, 3 below), and on their public BANNER WALL at /wall/ — a shareable page showing their line ladder with their join link. Free viral traffic that compounds as the team grows; no credits spent. - Ad packages: Micro $5/500 credits, Activation $20/2,000, Builder $50/5,500, Growth $100/12,000, Leader $250/32,500. Dollar-priced, settled in POL (Polygon) at the live Chainlink rate. 1 credit = 1 cent of ad delivery. - Live formats: display banners (per impression), text ads (per impression), full-screen LOGIN ADS (per day: right after a member signs in they land on a sponsor interstitial — they click "Open Ad", the advertiser's page opens in a NEW tab, a countdown runs on the interstitial, and at zero a "Go to dashboard" button appears. Just a CTA link is enough; an optional banner image can be the clickable creative. No framing requirement since it opens in its own tab), WATCH-TO-EARN VIDEO ADS (advertiser uploads an MP4/WebM or gives a direct https .mp4/.webm link and picks a required watch length — 10s/30s/60s — which sets the per-view price; viewers watch in an escape-proof player under Earn credits > Watch videos, the watch time is enforced on the server clock, and they earn credits per completed watch; you never see your own videos), and solo ads. Banner ads also require a size (standard IAB sizes like 728x90, 300x250). Coming: featured rotation with disclosed rotation size, verified-visit packs. diff --git a/db.js b/db.js index e3e3bc9..521f7db 100644 --- a/db.js +++ b/db.js @@ -185,6 +185,7 @@ async function bootstrap() { INDEX (stopped, next_at) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4`); await alterSafe('ALTER TABLE accounts ADD COLUMN joined_via VARCHAR(20) NULL'); // ?v= angle the lead came in on + await alterSafe('ALTER TABLE accounts ADD COLUMN wall_offers VARCHAR(2000) NULL'); // JSON [{title,bannerUrl,targetUrl}] for wall positions 2-3 (unlock at 2 / 5 qualifying buyers) } // one-time import: only when the tables are empty and JSON files exist diff --git a/drip-defaults.json b/drip-defaults.json index 847920c..9f0fa0d 100644 --- a/drip-defaults.json +++ b/drip-defaults.json @@ -1,37 +1,37 @@ -[ - { - "hours": 24, - "subject": "What you already own on InstantAdPay", - "body": "If you created an InstantAdPay account yesterday and then got busy, no worries. It happens.\n\nBut I want to circle back on something you may have missed. Right now, sitting in your free account, you already have three things most people never realize they own.\n\n1. Your username is your invite link.\n\nThat free account came with a link that is already set to go. Pick a username, share the link, and anyone who joins through it is in your line. It is yours from day one.\n\n2. Welcome credits that unlock in minutes.\n\nTake the short welcome tour inside your dashboard and the system adds credits to your account. You can use them {{paid:on top of the ad credits you already bought|to run a small test campaign and see how everything works}}.\n\n3. Promo tools with the posts already written.\n\nYour dashboard has a Promo tools section. Inside it: social posts, text messages, email swipes, even banners, all already carrying your invite link. You do not have to write a word.\n\n{{paid:You already jumped in on a package, which is great. The Promo tools make sharing your link the easy part. Everything is set up and ready to go.|This email is not asking you to buy anything. I just wanted to show you what is already in your account, waiting.}}\n\nOne thing to do today: sign in at {{site}}/my, pick your username if you have not yet, and copy your invite link. Just knowing it is there makes everything else easier.\n\nYour link right now: {{link}}\n\nMore tomorrow.\n\nMarty\n\n{{footer}}" - }, - { - "hours": 48, - "subject": "You can watch every payment live", - "body": "A couple of days ago you joined InstantAdPay. Free account. Nothing to lose.\n\nMaybe you have looked around. Maybe you have not.\n\nHere is what matters about this platform. The thing that is different from every other traffic system you have seen.\n\nThe money.\n\nWhen anyone on InstantAdPay buys an ad package, a verified smart contract on Polygon splits it in the same transaction. No holding. No waiting. Nobody touches the funds before they move.\n\n50 percent goes to their direct sponsor. 20 percent to level two. 10 percent to level three. 20 percent stays with the platform.\n\nEvery cent lands in real wallets within seconds.\n\n{{paid:You have already bought a package, so you have seen this firsthand.|You have not bought a package yet, and here is the thing. You can verify all of this without spending a dime.}}\n\nOpen {{site}}/ledger. Every transaction is on the public ledger. No wallet needed. No login. Just every ad package, every split, every payment, in the order it happened.\n\nScroll through it. Pick a transaction. Follow it.\n\nThis is proof you can check yourself. Not a screenshot. Not a promise in an email. A live blockchain you can inspect right now.\n\nThe money does not sit in a company wallet waiting to be released. It just moves. Instantly. Permanently. On-chain.\n\nSpend a few minutes on the ledger. Then you will understand why this model works differently.\n\nYour link: {{link}}\n\nMarty\n\n{{footer}}" - }, - { - "hours": 96, - "subject": "That pending feeling..", - "body": "A few days ago you signed up for InstantAdPay.\n\nMaybe you have already bought an ad package. Maybe you have not. Either way, I want to talk about something most of us in this business have gotten way too used to.\n\nThe hold.\n\nYou make a sale. You wait. Your account says pending. Or under review. Or funds released on the 15th. You refresh the page. Nothing. You email support. They say 3 to 5 business days. Or 7.\n\nIt is so normal we do not even question it anymore.\n\nA platform holds your money for days or weeks. They say it is for security. Or processing. Or some other reason that sounds fine until you think about it.\n\nWho is holding it? And what are they doing with it while you wait?\n\nInstantAdPay works differently. It runs on a public blockchain called Polygon. When someone buys a package, a verified smart contract splits the payment in that same transaction. 50 percent goes to their sponsor. 20 to level two. 10 to level three. 20 to the platform.\n\nIt lands in real wallets in seconds.\n\nNothing is ever held. There is nothing to withdraw. Every payment is public on the live ledger.\n\n{{paid:You have already seen it happen. Your purchase paid your sponsor's line instantly. No pending. No waiting. No support ticket. It just showed up.|You can see this for yourself right now. The live ledger is public at {{site}}/ledger. Every transaction. Every split. Every payout. No login, no under review. Just a contract that does what it says, every time. And the $5 package is the cheapest way to watch it happen with your own purchase.}}\n\nYour dashboard is waiting at {{site}}/my.\n\nMarty\n\n{{footer}}" - }, - { - "hours": 144, - "subject": "What your free account can actually do..", - "body": "So you signed up for InstantAdPay about a week ago.\n\nFree account, no password, no fuss. Maybe you checked the dashboard, thought okay, cool, and moved on.\n\nLet me show you what is actually sitting in that account.\n\nInstantAdPay is an ad platform on the Polygon blockchain. In plain English: people buy ad credits, people view ads and earn credits, and the whole thing runs on a smart contract that pays out instantly.\n\nNow, the ads themselves.\n\nSeven formats: banners, text ads, full-screen login ads, solo ads delivered into member inboxes, video ads, featured links, and verified visits.\n\nEvery single view is dwell-timed on the server. That means a real person sat there long enough for it to count. Not bots. Not drive-bys.\n\nOne credit equals one cent of ad delivery. Simple math.\n\nAnd here is the part that makes it work: members earn credits by viewing ads. So when you run a campaign, your ad is shown to people who are actively watching. They have a reason to pay attention.\n\n{{paid:You already bought a package. Good. Your credits are sitting in your account. Go to the Campaigns tab and launch your first real campaign today. Pick a format and let it run. Watch what happens.|You have not bought a package yet, and you do not have to start with one. Sign in at {{site}}/my. Take the welcome tour for your welcome credits, earn more by viewing ads, and launch a small test campaign with those. See how it feels. See the numbers.}}\n\nEither way, the best way to understand this thing is to actually use it.\n\nYour link: {{link}}\n\nMarty\n\n{{footer}}" - }, - { - "hours": 192, - "subject": "The one thing nobody tells you about ad platforms..", - "body": "This might be the most important email I send you about InstantAdPay.\n\nBecause there is a detail in how this works that most people do not notice until it is too late.\n\nIt is not about the ad credits, the formats, or even the commission structure.\n\nIt is about timing.\n\nHere is how it works. Your invite link is already live. If someone clicks it, signs up, and buys their first ad package, any package from $5 to $250, you receive 50 percent of that payment. The smart contract pays you in the same transaction. No holding tank, no withdrawal minimum, no waiting.\n\nThat is the upside everyone talks about.\n\nHere is what nobody mentions.\n\nThe moment a person buys their first package through any link, they are locked to that sponsor permanently. Every future package they buy pays that sponsor's line.\n\nSo if someone you know (a friend, a subscriber, a group contact) joins InstantAdPay through someone else's link and buys their first package there, they are locked to that other person for good.\n\n{{paid:You already bought, so your own placement is settled. Your link is live and paying.|If you have not bought yet, your link is still live. It still pays you 50 percent from anyone who clicks it today and buys.}}\n\nBut it will not capture the people you know unless you send it to them.\n\nOne person this week. Just put {{link}} where they will see it. That is all it takes.\n\n{{sponsor}} got their link from somewhere too. Same deal. Now it is your turn to pass it forward.\n\nMarty\n\n{{footer}}" - }, - { - "hours": 264, - "subject": "Your link is live (and already loaded)", - "body": "That link of yours? It pays the moment someone buys.\n\n{{paid:You already know the feeling. Someone buys, the smart contract runs, and 50 percent lands in your wallet. In seconds.|It works like this: someone clicks your link, buys any package, and 50 percent of it lands in your wallet in the same transaction. In seconds.}}\n\nNobody has to wait. No holding period. No withdraw button, because nothing was ever held.\n\nThe money splits in the same transaction the buyer makes. It lands in real wallets. And every payment is public on the live ledger.\n\nBut here is what most people do not use right away. The Promo tools tab in your dashboard.\n\nOpen it and you will find social posts, text messages, email swipes, and banners. All carrying your link. All ready to copy and paste.\n\nPlus an objection bank with honest answers for when someone asks how it works.\n\nTwo qualifying buyers ($20 or more) open level two for you: 20 percent of what their people buy. Five open level three.\n\n{{paid:You are already in motion. Now use the tools to keep going.|You have not bought a package yet. That is fine. The tools work either way. Your link is live whether you buy or not.}}\n\nOne text from Promo tools today. That is all it takes to get your first buyer moving.\n\n{{site}}/my\n\nMarty\n\n{{footer}}" - }, - { - "hours": 336, - "subject": "Two weeks in. Here is where you are at.", - "body": "Two weeks since you joined InstantAdPay. Thought it was time for a quick recap of where things stand.\n\nYou have a free account that is already working for you. Your invite link is live. Anyone who joins through it is in your line, and locks to you as their sponsor at their first purchase.\n\n{{paid:You grabbed a package and have credits to advertise with. Every ad you run reaches real people with dwell-timed views across banners, text ads, solo inbox ads, video ads and more. Your budget delivers exactly what you paid for.|You have not picked up an ad package yet, and that is fine. Your free account is ready when you are. Packages start at $5.}}\n\nHere is the referral side, exactly as the contract has it. When someone in your line buys a package, a smart contract splits their payment instantly, and 50 percent goes to you as their direct sponsor. No waiting, no withdrawal step.\n\nTwo qualifying buyers (people you referred who bought $20 or more) open level two: 20 percent of what the people they refer buy. Five qualifying buyers open level three: 10 percent from one level deeper.\n\nEvery payment lands in real wallets in seconds and is public on the ledger. Nothing held, nothing to withdraw.\n\nYour sponsor {{sponsor}} is right there in your dashboard. Open Messages any time.\n\nAnd the Promo tools are loaded: social posts, text messages, email swipes, banners, an objection bank, all with your invite link baked in.\n\nFrom here, the InstantAdPay newsletter takes over with updates and new features.\n\nYou know where your dashboard is: {{site}}/my\nYour link: {{link}}\n\nMarty\n\n{{footer}}" - } -] +[ + { + "hours": 24, + "subject": "What you already own on InstantAdPay", + "body": "If you created an InstantAdPay account yesterday and then got busy, no worries. It happens.\n\nBut I want to circle back on something you may have missed. Right now, sitting in your free account, you already have three things most people never realize they own.\n\n1. Your username is your invite link.\n\nThat free account came with a link that is already set to go. Pick a username, share the link, and anyone who joins through it is in your line. It is yours from day one.\n\n2. Welcome credits that unlock in minutes.\n\nTake the short welcome tour inside your dashboard and the system adds credits to your account. You can use them {{paid:on top of the ad credits you already bought|to run a small test campaign and see how everything works}}.\n\n3. Promo tools with the posts already written.\n\nYour dashboard has a Promo tools section. Inside it: social posts, text messages, email swipes, even banners, all already carrying your invite link. You do not have to write a word.\n\n{{paid:You already jumped in on a package, which is great. The Promo tools make sharing your link the easy part. Everything is set up and ready to go.|This email is not asking you to buy anything. I just wanted to show you what is already in your account, waiting.}}\n\nOne thing to do today: sign in at {{site}}/my, pick your username if you have not yet, and copy your invite link. Just knowing it is there makes everything else easier.\n\nYour link right now: {{link}}\n\nMore tomorrow.\n\nMarty\n\n{{footer}}" + }, + { + "hours": 48, + "subject": "You can watch every payment live", + "body": "A couple of days ago you joined InstantAdPay. Free account. Nothing to lose.\n\nMaybe you have looked around. Maybe you have not.\n\nHere is what matters about this platform. The thing that is different from every other traffic system you have seen.\n\nThe money.\n\nWhen anyone on InstantAdPay buys an ad package, a verified smart contract on Polygon splits it in the same transaction. No holding. No waiting. Nobody touches the funds before they move.\n\n50 percent goes to their direct sponsor. 20 percent to level two. 10 percent to level three. 20 percent stays with the platform.\n\nEvery cent lands in real wallets within seconds.\n\n{{paid:You have already bought a package, so you have seen this firsthand.|You have not bought a package yet, and here is the thing. You can verify all of this without spending a dime.}}\n\nOpen {{site}}/ledger. Every transaction is on the public ledger. No wallet needed. No login. Just every ad package, every split, every payment, in the order it happened.\n\nScroll through it. Pick a transaction. Follow it.\n\nThis is proof you can check yourself. Not a screenshot. Not a promise in an email. A live blockchain you can inspect right now.\n\nThe money does not sit in a company wallet waiting to be released. It just moves. Instantly. Permanently. On-chain.\n\nSpend a few minutes on the ledger. Then you will understand why this model works differently.\n\nYour link: {{link}}\n\nMarty\n\n{{footer}}" + }, + { + "hours": 96, + "subject": "That pending feeling..", + "body": "A few days ago you signed up for InstantAdPay.\n\nMaybe you have already bought an ad package. Maybe you have not. Either way, I want to talk about something most of us in this business have gotten way too used to.\n\nThe hold.\n\nYou make a sale. You wait. Your account says pending. Or under review. Or funds released on the 15th. You refresh the page. Nothing. You email support. They say 3 to 5 business days. Or 7.\n\nIt is so normal we do not even question it anymore.\n\nA platform holds your money for days or weeks. They say it is for security. Or processing. Or some other reason that sounds fine until you think about it.\n\nWho is holding it? And what are they doing with it while you wait?\n\nInstantAdPay works differently. It runs on a public blockchain called Polygon. When someone buys a package, a verified smart contract splits the payment in that same transaction. 50 percent goes to their sponsor. 20 to level two. 10 to level three. 20 to the platform.\n\nIt lands in real wallets in seconds.\n\nNothing is ever held. There is nothing to withdraw. Every payment is public on the live ledger.\n\n{{paid:You have already seen it happen. Your purchase paid your sponsor's line instantly. No pending. No waiting. No support ticket. It just showed up.|You can see this for yourself right now. The live ledger is public at {{site}}/ledger. Every transaction. Every split. Every payout. No login, no under review. Just a contract that does what it says, every time. And the $5 package is the cheapest way to watch it happen with your own purchase.}}\n\nYour dashboard is waiting at {{site}}/my.\n\nMarty\n\n{{footer}}" + }, + { + "hours": 144, + "subject": "What your free account can actually do..", + "body": "So you signed up for InstantAdPay about a week ago.\n\nFree account, no password, no fuss. Maybe you checked the dashboard, thought okay, cool, and moved on.\n\nLet me show you what is actually sitting in that account.\n\nInstantAdPay is an ad platform on the Polygon blockchain. In plain English: people buy ad credits, people view ads and earn credits, and the whole thing runs on a smart contract that pays out instantly.\n\nNow, the ads themselves.\n\nSeven formats: banners, text ads, full-screen login ads, solo ads delivered into member inboxes, video ads, featured links, and verified visits.\n\nEvery single view is dwell-timed on the server. That means a real person sat there long enough for it to count. Not bots. Not drive-bys.\n\nOne credit equals one cent of ad delivery. Simple math.\n\nAnd here is the part that makes it work: members earn credits by viewing ads. So when you run a campaign, your ad is shown to people who are actively watching. They have a reason to pay attention.\n\n{{paid:You already bought a package. Good. Your credits are sitting in your account. Go to the Campaigns tab and launch your first real campaign today. Pick a format and let it run. Watch what happens.|You have not bought a package yet, and you do not have to start with one. Sign in at {{site}}/my. Take the welcome tour for your welcome credits, earn more by viewing ads, and launch a small test campaign with those. See how it feels. See the numbers.}}\n\nEither way, the best way to understand this thing is to actually use it.\n\nYour link: {{link}}\n\nMarty\n\n{{footer}}" + }, + { + "hours": 192, + "subject": "The one thing nobody tells you about ad platforms..", + "body": "This might be the most important email I send you about InstantAdPay.\n\nBecause there is a detail in how this works that most people do not notice until it is too late.\n\nIt is not about the ad credits, the formats, or even the commission structure.\n\nIt is about timing.\n\nHere is how it works. Your invite link is already live. If someone clicks it, signs up, and buys their first ad package, any package from $5 to $250, you receive 50 percent of that payment. The smart contract pays you in the same transaction. No holding tank, no withdrawal minimum, no waiting.\n\nThat is the upside everyone talks about.\n\nHere is what nobody mentions.\n\nThe moment a person buys their first package through any link, they are locked to that sponsor permanently. Every future package they buy pays that sponsor's line.\n\nSo if someone you know (a friend, a subscriber, a group contact) joins InstantAdPay through someone else's link and buys their first package there, they are locked to that other person for good.\n\n{{paid:You already bought, so your own placement is settled. Your link is live and paying.|If you have not bought yet, your link is still live. It still pays you 50 percent from anyone who clicks it today and buys.}}\n\nBut it will not capture the people you know unless you send it to them.\n\nOne person this week. Just put {{link}} where they will see it. That is all it takes.\n\n{{sponsor}} got their link from somewhere too. Same deal. Now it is your turn to pass it forward.\n\nMarty\n\n{{footer}}" + }, + { + "hours": 264, + "subject": "Your link is live (and already loaded)", + "body": "That link of yours? It pays the moment someone buys.\n\n{{paid:You already know the feeling. Someone buys, the smart contract runs, and 50 percent lands in your wallet. In seconds.|It works like this: someone clicks your link, buys any package, and 50 percent of it lands in your wallet in the same transaction. In seconds.}}\n\nNobody has to wait. No holding period. No withdraw button, because nothing was ever held.\n\nThe money splits in the same transaction the buyer makes. It lands in real wallets. And every payment is public on the live ledger.\n\nBut here is what most people do not use right away. The Promo tools tab in your dashboard.\n\nOpen it and you will find social posts, text messages, email swipes, and banners. All carrying your link. All ready to copy and paste.\n\nPlus an objection bank with honest answers for when someone asks how it works.\n\nTwo qualifying buyers ($20 or more) open level two for you: 20 percent of what their people buy. Five open level three.\n\n{{paid:You are already in motion. Now use the tools to keep going.|You have not bought a package yet. That is fine. The tools work either way. Your link is live whether you buy or not.}}\n\nOne text from Promo tools today. That is all it takes to get your first buyer moving.\n\n{{site}}/my\n\nMarty\n\n{{footer}}" + }, + { + "hours": 336, + "subject": "Two weeks in. Here is where you are at.", + "body": "Two weeks since you joined InstantAdPay. Thought it was time for a quick recap of where things stand.\n\nYou have a free account that is already working for you. Your invite link is live. Anyone who joins through it is in your line, and locks to you as their sponsor at their first purchase.\n\n{{paid:You grabbed a package and have credits to advertise with. Every ad you run reaches real people with dwell-timed views across banners, text ads, solo inbox ads, video ads and more. Your budget delivers exactly what you paid for.|You have not picked up an ad package yet, and that is fine. Your free account is ready when you are. Packages start at $5.}}\n\nHere is the referral side, exactly as the contract has it. When someone in your line buys a package, a smart contract splits their payment instantly, and 50 percent goes to you as their direct sponsor. No waiting, no withdrawal step.\n\nTwo qualifying buyers (people you referred who bought $20 or more) open level two: 20 percent of what the people they refer buy. Five qualifying buyers open level three: 10 percent from one level deeper.\n\nEvery payment lands in real wallets in seconds and is public on the ledger. Nothing held, nothing to withdraw.\n\nOne more thing those buyers unlock: your public wall. Two qualifying buyers make the second ad position on your wall yours, five make the third. At that point the whole page runs your links and nobody else's.\n\nYour sponsor {{sponsor}} is right there in your dashboard. Open Messages any time.\n\nAnd the Promo tools are loaded: social posts, text messages, email swipes, banners, an objection bank, all with your invite link baked in.\n\nFrom here, the InstantAdPay newsletter takes over with updates and new features.\n\nYou know where your dashboard is: {{site}}/my\nYour link: {{link}}\n\nMarty\n\n{{footer}}" + } +] \ No newline at end of file diff --git a/public/admin.html b/public/admin.html index 2a0b906..f8be5c8 100644 --- a/public/admin.html +++ b/public/admin.html @@ -6,7 +6,7 @@ Admin | InstantAdPay - +