{"id":539,"date":"2026-10-18T12:54:27","date_gmt":"2026-10-18T12:54:27","guid":{"rendered":"https:\/\/ongroundmedia.com\/?page_id=539"},"modified":"2026-10-18T12:55:44","modified_gmt":"2026-10-18T12:55:44","slug":"social-ads-links-influencer-tools","status":"publish","type":"page","link":"https:\/\/ongroundmedia.com\/?page_id=539","title":{"rendered":"Social Ads, Links &#038; Influencer Tools"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"539\" class=\"elementor elementor-539\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f13bb68 e-con e-atomic-element e-flexbox-base e-default-div e-ec47a39 \" data-id=\"f13bb68\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"f13bb68\">\n    \t\t<div class=\"elementor-element elementor-element-335f832 elementor-widget elementor-widget-html\" data-id=\"335f832\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n<meta charset=\"utf-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n<title>Social Ads, Link & Influencer Tools | Free<\/title>\r\n<meta name=\"description\" content=\"Build UTM and WhatsApp links, write Meta ad copy, calculate ROAS and CPC, and price influencer deals. Free tools.\">\r\n<!--\r\nPER-TOOL SEO (use these on each tool's own page):\r\nwhatsapp-link-generator | Free WhatsApp Link Generator | Click-to-Chat | Create a WhatsApp click-to-chat link with a pre-filled message. Perfect for Instagram bios, ads and websites. Free tool.\r\nutm-link-builder | Free UTM Link Builder | Campaign URL Generator | Build UTM links to track campaigns in Google Analytics. Add source, medium and campaign, then copy. Free tool.\r\nroas-cpc-calculator | ROAS & CPC Calculator | Free Ad Performance Tool | Calculate ROAS and CPC for your Meta and Google ads. See what your ad spend is returning. Free ad calculator.\r\nmeta-ad-copy-generator | Free Meta Ad Copy Generator | Facebook & Instagram | Generate primary text, headlines and descriptions for Facebook and Instagram ads. Free ad copy generator.\r\ninfluencer-rate-calculator | Influencer Rate Calculator | Estimate Collab Price | Estimate how much to pay or charge for an influencer post using followers and engagement. Free calculator.\r\n-->\r\n<style>\r\n:root{--ind:#4F46E5;--navy:#0F172A;--org:#FF6B35;--em:#10B981;--bg:#F8FAFC;--sf:#fff;--tx:#1E293B;--mu:#64748B;--bd:#E2E8F0;--r:14px}\r\n@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0B1120;--sf:#131C31;--tx:#E2E8F0;--mu:#94A3B8;--bd:#25314D}}\r\n*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:76px}\r\nbody{margin:0;font:16px\/1.55 system-ui,-apple-system,\"Segoe UI\",Roboto,sans-serif;background:var(--bg);color:var(--tx)}\r\nheader.nav{position:sticky;top:0;z-index:10;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:12px 24px}\r\n.logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:19px;letter-spacing:-.3px;color:#fff;text-decoration:none}\r\n.logo b{color:var(--org)}\r\n.nav a.back{color:#CBD5E1;font-size:14px;text-decoration:none}\r\n.hero{background:linear-gradient(135deg,var(--navy),#1e1b4b 60%,var(--ind));color:#fff;padding:56px 24px 72px;text-align:center}\r\n.hero h1{margin:0 0 12px;font-size:clamp(28px,5vw,44px);letter-spacing:-1px}\r\n.hero p{max-width:620px;margin:0 auto;color:#CBD5E1;font-size:18px}\r\n.wrap{max-width:1040px;margin:0 auto;padding:0 20px}\r\n.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:-40px;position:relative}\r\n.card{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r);padding:20px;text-decoration:none;color:inherit;box-shadow:0 4px 14px rgba(15,23,42,.08);transition:.2s}\r\n.card:hover{transform:translateY(-3px);border-color:var(--ind)}\r\n.card .ic{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;font-size:21px;background:#EEF2FF;margin-bottom:10px}\r\n.card h3{margin:0 0 4px;font-size:17px}.card p{margin:0;color:var(--mu);font-size:14px}\r\n.tag{display:inline-block;font-size:12px;font-weight:600;border-radius:99px;padding:2px 9px;margin-top:10px;background:#D1FAE5;color:#047857}\r\nsection.tool{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r);margin:32px 0;padding:26px;box-shadow:0 2px 10px rgba(15,23,42,.05)}\r\nsection.tool h2{margin:0 0 2px;font-size:24px;letter-spacing:-.4px}\r\nsection.tool>p.sub{margin:0 0 20px;color:var(--mu)}\r\n.cols{display:grid;grid-template-columns:1fr 1fr;gap:26px}@media(max-width:760px){.cols{grid-template-columns:1fr}}\r\nlabel{display:block;font-size:13px;font-weight:600;margin:12px 0 5px}\r\ninput,select,textarea{width:100%;padding:10px 12px;border:1px solid var(--bd);border-radius:10px;font:inherit;background:var(--bg);color:var(--tx)}\r\ninput:focus,select:focus,textarea:focus{outline:2px solid var(--ind);outline-offset:0;border-color:var(--ind)}\r\ntextarea{min-height:84px;resize:vertical}\r\n.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}\r\n.btn{border:0;border-radius:10px;padding:10px 18px;font:inherit;font-weight:700;cursor:pointer;background:var(--org);color:#fff;transition:.15s}\r\n.btn:hover{filter:brightness(1.08)}.btn.alt{background:var(--ind)}.btn.ghost{background:transparent;color:var(--ind);border:1px solid var(--ind)}\r\n.btn.sm{padding:5px 11px;font-size:13px}\r\n.out{background:var(--bg);border:1px dashed var(--bd);border-radius:12px;padding:16px}\r\n.out h4{margin:0 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.6px;color:var(--mu)}\r\n.linkbox{word-break:break-all;font-family:ui-monospace,Menlo,monospace;font-size:14px;background:var(--sf);border:1px solid var(--bd);border-radius:10px;padding:12px;min-height:48px}\r\n.acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}\r\n.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}\r\n.stat{background:var(--sf);border:1px solid var(--bd);border-radius:12px;padding:12px}\r\n.stat span{display:block;font-size:12px;color:var(--mu);font-weight:600}.stat b{font-size:22px;letter-spacing:-.5px}\r\n.good{color:var(--em)}.bad{color:#DC2626}\r\n.note{font-size:13px;color:var(--mu);margin-top:10px}\r\n.item{background:var(--sf);border:1px solid var(--bd);border-radius:10px;padding:10px 12px;margin-bottom:8px;display:flex;gap:10px;justify-content:space-between;align-items:flex-start;font-size:14px}\r\n.item small{color:var(--mu);display:block;margin-top:2px}\r\n.big{font-size:32px;font-weight:800;letter-spacing:-1px;color:var(--ind)}\r\nfooter{text-align:center;color:var(--mu);font-size:13px;padding:30px 20px 50px}\r\n.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(80px);background:var(--navy);color:#fff;padding:10px 18px;border-radius:99px;font-size:14px;transition:.25s;z-index:20}\r\n.toast.on{transform:translateX(-50%) translateY(0)}\r\n<\/style>\r\n<\/head>\r\n<body>\r\n<header class=\"nav\">\r\n  <a class=\"logo\" href=\"#top\"><svg width=\"30\" height=\"30\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><circle cx=\"16\" cy=\"16\" r=\"11\" fill=\"none\" stroke=\"#FF6B35\" stroke-width=\"5\"\/><path d=\"M12 20l8-8m0 0h-5m5 0v5\" stroke=\"#fff\" stroke-width=\"2.4\" fill=\"none\" stroke-linecap=\"round\"\/><\/svg><span><b>On<\/b>ground Media<\/span><\/a>\r\n  <a class=\"back\" href=\"#tools\">All tools \u2193<\/a>\r\n<\/header>\r\n\r\n<div class=\"hero\" id=\"top\">\r\n  <h1>Social Ads, Links &amp; Influencer Tools<\/h1>\r\n  <p>Create trackable links, write better ad copy and work out your costs and returns before you spend.<\/p>\r\n<\/div>\r\n\r\n<main class=\"wrap\" id=\"tools\">\r\n  <div class=\"grid\">\r\n    <a class=\"card\" href=\"#whatsapp-link-generator\"><div class=\"ic\">\ud83d\udcac<\/div><h3>WhatsApp Click-to-Chat Link Generator<\/h3><p>Make a WhatsApp link with your message already typed.<\/p><span class=\"tag\">\ud83d\udfe2 Easy<\/span><\/a>\r\n    <a class=\"card\" href=\"#utm-link-builder\"><div class=\"ic\">\ud83d\udd17<\/div><h3>UTM Link Builder<\/h3><p>Add tracking tags to your links in seconds.<\/p><span class=\"tag\">\ud83d\udfe2 Easy<\/span><\/a>\r\n    <a class=\"card\" href=\"#roas-cpc-calculator\"><div class=\"ic\">\ud83d\udcc8<\/div><h3>ROAS &amp; CPC Calculator<\/h3><p>Calculate return on ad spend and cost per click.<\/p><span class=\"tag\">\ud83d\udfe2 Easy<\/span><\/a>\r\n    <a class=\"card\" href=\"#meta-ad-copy-generator\"><div class=\"ic\">\u270d\ufe0f<\/div><h3>Meta Ad Copy Generator<\/h3><p>Get primary text, headlines and descriptions for your ads.<\/p><span class=\"tag\">\ud83d\udfe2 Easy<\/span><\/a>\r\n    <a class=\"card\" href=\"#influencer-rate-calculator\"><div class=\"ic\">\u2b50<\/div><h3>Influencer Rate Calculator<\/h3><p>Estimate a fair price from followers and engagement.<\/p><span class=\"tag\">\ud83d\udfe2 Easy<\/span><\/a>\r\n  <\/div>\r\n\r\n  <!-- 7 WhatsApp -->\r\n  <section class=\"tool\" id=\"whatsapp-link-generator\">\r\n    <h2>\ud83d\udcac WhatsApp Click-to-Chat Link Generator<\/h2>\r\n    <p class=\"sub\">Make a WhatsApp link with your message already typed. Great for Instagram bios, ads and websites.<\/p>\r\n    <div class=\"cols\"><div>\r\n      <div class=\"row\"><div><label for=\"wa-cc\">Country code<\/label><input id=\"wa-cc\" value=\"91\" inputmode=\"numeric\" placeholder=\"91\"><\/div>\r\n      <div><label for=\"wa-num\">Phone number<\/label><input id=\"wa-num\" inputmode=\"numeric\" placeholder=\"9876543210\"><\/div><\/div>\r\n      <label for=\"wa-msg\">Pre-filled message<\/label><textarea id=\"wa-msg\" placeholder=\"Hi! I'd like to know more about your services.\"><\/textarea>\r\n    <\/div><div class=\"out\"><h4>Your link<\/h4><div class=\"linkbox\" id=\"wa-out\">Enter a phone number\u2026<\/div>\r\n      <div class=\"acts\"><button class=\"btn\" data-copy=\"wa-out\">Copy link<\/button><a class=\"btn ghost\" id=\"wa-test\" target=\"_blank\" rel=\"noopener\" style=\"text-decoration:none\">Test it<\/a><\/div>\r\n      <p class=\"note\">Use digits only. No +, spaces or leading zeros.<\/p><\/div><\/div>\r\n  <\/section>\r\n\r\n  <!-- 9 UTM -->\r\n  <section class=\"tool\" id=\"utm-link-builder\">\r\n    <h2>\ud83d\udd17 UTM Link Builder<\/h2>\r\n    <p class=\"sub\">Add tracking tags to your links in seconds, then see results in Google Analytics.<\/p>\r\n    <div class=\"cols\"><div>\r\n      <label for=\"u-url\">Website URL *<\/label><input id=\"u-url\" placeholder=\"https:\/\/example.com\/offer\">\r\n      <div class=\"row\"><div><label for=\"u-src\">Source *<\/label><input id=\"u-src\" placeholder=\"instagram\"><\/div><div><label for=\"u-med\">Medium *<\/label><input id=\"u-med\" placeholder=\"paid_social\"><\/div><\/div>\r\n      <label for=\"u-cmp\">Campaign *<\/label><input id=\"u-cmp\" placeholder=\"diwali_sale\">\r\n      <div class=\"row\"><div><label for=\"u-trm\">Term<\/label><input id=\"u-trm\" placeholder=\"optional\"><\/div><div><label for=\"u-cnt\">Content<\/label><input id=\"u-cnt\" placeholder=\"optional\"><\/div><\/div>\r\n      <label style=\"display:flex;gap:8px;align-items:center;font-weight:500\"><input type=\"checkbox\" id=\"u-tidy\" checked style=\"width:auto\"> Lowercase and use underscores<\/label>\r\n    <\/div><div class=\"out\"><h4>Tracked link<\/h4><div class=\"linkbox\" id=\"u-out\">Fill in the required fields\u2026<\/div>\r\n      <div class=\"acts\"><button class=\"btn\" data-copy=\"u-out\">Copy link<\/button><\/div><\/div><\/div>\r\n  <\/section>\r\n\r\n  <!-- 20 ROAS -->\r\n  <section class=\"tool\" id=\"roas-cpc-calculator\">\r\n    <h2>\ud83d\udcc8 ROAS &amp; CPC Calculator<\/h2>\r\n    <p class=\"sub\">See what your Meta or Google ad spend is returning. Fill what you have; results update live.<\/p>\r\n    <div class=\"cols\"><div>\r\n      <div class=\"row\"><div><label for=\"r-spend\">Ad spend<\/label><input id=\"r-spend\" type=\"number\" min=\"0\" placeholder=\"10000\"><\/div><div><label for=\"r-rev\">Revenue from ads<\/label><input id=\"r-rev\" type=\"number\" min=\"0\" placeholder=\"35000\"><\/div><\/div>\r\n      <div class=\"row\"><div><label for=\"r-clk\">Clicks<\/label><input id=\"r-clk\" type=\"number\" min=\"0\" placeholder=\"1200\"><\/div><div><label for=\"r-imp\">Impressions<\/label><input id=\"r-imp\" type=\"number\" min=\"0\" placeholder=\"60000\"><\/div><\/div>\r\n      <div class=\"row\"><div><label for=\"r-conv\">Purchases \/ leads<\/label><input id=\"r-conv\" type=\"number\" min=\"0\" placeholder=\"40\"><\/div><div><label for=\"r-mar\">Profit margin % (optional)<\/label><input id=\"r-mar\" type=\"number\" min=\"0\" max=\"100\" placeholder=\"40\"><\/div><\/div>\r\n    <\/div><div><div class=\"stats\" id=\"r-out\"><\/div><p class=\"note\" id=\"r-note\"><\/p><\/div><\/div>\r\n  <\/section>\r\n\r\n  <!-- 28 Ad copy -->\r\n  <section class=\"tool\" id=\"meta-ad-copy-generator\">\r\n    <h2>\u270d\ufe0f Meta Ad Copy Generator<\/h2>\r\n    <p class=\"sub\">Get primary text, headlines and descriptions for Facebook and Instagram ads.<\/p>\r\n    <div class=\"cols\"><div>\r\n      <label for=\"a-prod\">Product or service *<\/label><input id=\"a-prod\" placeholder=\"Handmade soy candles\">\r\n      <label for=\"a-aud\">Who is it for?<\/label><input id=\"a-aud\" placeholder=\"busy home decor lovers\">\r\n      <label for=\"a-ben\">Main benefit *<\/label><input id=\"a-ben\" placeholder=\"a calm, cozy home\">\r\n      <div class=\"row\"><div><label for=\"a-off\">Offer (optional)<\/label><input id=\"a-off\" placeholder=\"20% off this week\"><\/div>\r\n      <div><label for=\"a-cta\">Call to action<\/label><select id=\"a-cta\"><option>Shop now<\/option><option>Learn more<\/option><option>Sign up<\/option><option>Book now<\/option><option>Get a quote<\/option><option>Message us<\/option><\/select><\/div><\/div>\r\n      <label for=\"a-tone\">Tone<\/label><select id=\"a-tone\"><option value=\"friendly\">Friendly<\/option><option value=\"bold\">Bold<\/option><option value=\"urgent\">Urgent<\/option><option value=\"pro\">Professional<\/option><\/select>\r\n      <div class=\"acts\"><button class=\"btn\" id=\"a-go\">Generate copy<\/button><button class=\"btn ghost\" id=\"a-more\">Shuffle<\/button><\/div>\r\n    <\/div><div id=\"a-out\"><div class=\"out\"><h4>Results<\/h4><p class=\"note\" style=\"margin:0\">Fill the form and click Generate.<\/p><\/div><\/div><\/div>\r\n  <\/section>\r\n\r\n  <!-- 29 Influencer -->\r\n  <section class=\"tool\" id=\"influencer-rate-calculator\">\r\n    <h2>\u2b50 Influencer Rate Calculator<\/h2>\r\n    <p class=\"sub\">Estimate a fair price per post from followers and engagement, whether you pay or charge.<\/p>\r\n    <div class=\"cols\"><div>\r\n      <div class=\"row\"><div><label for=\"i-fol\">Followers *<\/label><input id=\"i-fol\" type=\"number\" min=\"0\" placeholder=\"50000\"><\/div><div><label for=\"i-eng\">Engagement rate % *<\/label><input id=\"i-eng\" type=\"number\" min=\"0\" step=\"0.1\" placeholder=\"3.5\"><\/div><\/div>\r\n      <div class=\"row\"><div><label for=\"i-plat\">Platform<\/label><select id=\"i-plat\"><option value=\"10\">Instagram<\/option><option value=\"6\">TikTok<\/option><option value=\"20\">YouTube<\/option><option value=\"5\">Facebook<\/option><option value=\"8\">X \/ Twitter<\/option><\/select><\/div>\r\n      <div><label for=\"i-fmt\">Content type<\/label><select id=\"i-fmt\"><option value=\"1\">Feed post<\/option><option value=\"1.5\">Reel \/ short video<\/option><option value=\"0.5\">Story<\/option><option value=\"2.5\">Dedicated long video<\/option><\/select><\/div><\/div>\r\n      <div class=\"row\"><div><label for=\"i-niche\">Niche<\/label><select id=\"i-niche\"><option value=\"1\">Lifestyle \/ general<\/option><option value=\"1.3\">Beauty \/ fashion<\/option><option value=\"1.5\">Tech \/ finance<\/option><option value=\"1.1\">Food \/ travel<\/option><option value=\"1.2\">Fitness \/ health<\/option><\/select><\/div>\r\n      <div><label for=\"i-cur\">Currency<\/label><select id=\"i-cur\"><option value=\"1\">USD ($)<\/option><option value=\"83\">INR (\u20b9)<\/option><option value=\"0.92\">EUR (\u20ac)<\/option><option value=\"0.79\">GBP (\u00a3)<\/option><\/select><\/div><\/div>\r\n    <\/div><div class=\"out\"><h4>Estimated fair rate<\/h4><div class=\"big\" id=\"i-big\">\u2014<\/div><p id=\"i-rng\" class=\"note\" style=\"margin:4px 0 14px\"><\/p><div class=\"stats\" id=\"i-st\"><\/div>\r\n      <p class=\"note\">A starting point only. Real prices also depend on audience quality, usage rights, exclusivity and negotiation.<\/p><\/div><\/div>\r\n  <\/section>\r\n<\/main>\r\n<footer>\u00a9 Onground Media \u00b7 Free marketing tools<\/footer>\r\n<div class=\"toast\" id=\"toast\">Copied!<\/div>\r\n\r\n<script>\r\nconst $=id=>document.getElementById(id);\r\nconst toast=m=>{const t=$('toast');t.textContent=m;t.classList.add('on');setTimeout(()=>t.classList.remove('on'),1400)};\r\nasync function copyText(s){try{await navigator.clipboard.writeText(s)}catch(e){const a=document.createElement('textarea');a.value=s;document.body.appendChild(a);a.select();document.execCommand('copy');a.remove()}toast('Copied!')}\r\ndocument.addEventListener('click',e=>{const b=e.target.closest('[data-copy]');if(b){const t=$(b.dataset.copy).textContent;if(!\/^(Enter|Fill)\/.test(t))copyText(t)}const c=e.target.closest('[data-txt]');if(c)copyText(c.dataset.txt)});\r\nconst num=id=>parseFloat($(id).value)||0, fmt=(n,d=2)=>isFinite(n)?n.toLocaleString(undefined,{maximumFractionDigits:d,minimumFractionDigits:d}):'\u2014';\r\n\r\n\/* WhatsApp *\/\r\nfunction wa(){const n=($('wa-cc').value+$('wa-num').value).replace(\/\\D\/g,'').replace(\/^0+\/,'');const m=$('wa-msg').value.trim();\r\n if($('wa-num').value.replace(\/\\D\/g,'').length<6){$('wa-out').textContent='Enter a phone number\u2026';$('wa-test').removeAttribute('href');return}\r\n const u='https:\/\/wa.me\/'+n+(m?'?text='+encodeURIComponent(m):'');$('wa-out').textContent=u;$('wa-test').href=u}\r\n['wa-cc','wa-num','wa-msg'].forEach(i=>$(i).addEventListener('input',wa));\r\n\r\n\/* UTM *\/\r\nfunction utm(){const tidy=$('u-tidy').checked,cl=v=>{v=v.trim();return tidy?v.toLowerCase().replace(\/\\s+\/g,'_'):v};\r\n let url=$('u-url').value.trim();const need=['u-src','u-med','u-cmp'].every(i=>$(i).value.trim());\r\n if(!url||!need){$('u-out').textContent='Fill in the required fields\u2026';return}\r\n if(!\/^https?:\\\/\\\/\/i.test(url))url='https:\/\/'+url;\r\n let hash='';const hi=url.indexOf('#');if(hi>-1){hash=url.slice(hi);url=url.slice(0,hi)}\r\n const p=[['utm_source','u-src'],['utm_medium','u-med'],['utm_campaign','u-cmp'],['utm_term','u-trm'],['utm_content','u-cnt']].filter(x=>$(x[1]).value.trim()).map(x=>x[0]+'='+encodeURIComponent(cl($(x[1]).value)));\r\n $('u-out').textContent=url+(url.includes('?')?'&':'?')+p.join('&')+hash}\r\n['u-url','u-src','u-med','u-cmp','u-trm','u-cnt','u-tidy'].forEach(i=>$(i).addEventListener('input',utm));\r\n\r\n\/* ROAS *\/\r\nfunction roas(){const s=num('r-spend'),r=num('r-rev'),c=num('r-clk'),im=num('r-imp'),cv=num('r-conv'),mg=num('r-mar');\r\n const cells=[];const add=(l,v,cls='')=>cells.push(`<div class=\"stat\"><span>${l}<\/span><b class=\"${cls}\">${v}<\/b><\/div>`);\r\n if(s&&r){const x=r\/s;add('ROAS',fmt(x)+'x',mg?(x>=100\/mg?'good':'bad'):'')}\r\n if(s&&c)add('CPC (cost per click)',fmt(s\/c));\r\n if(c&&im)add('CTR',fmt(c\/im*100)+'%');\r\n if(s&&im)add('CPM',fmt(s\/im*1000));\r\n if(s&&cv)add('Cost per purchase \/ lead',fmt(s\/cv));\r\n if(c&&cv)add('Conversion rate',fmt(cv\/c*100)+'%');\r\n if(r&&cv)add('Avg. order value',fmt(r\/cv));\r\n if(s&&r&&mg)add('Profit after ads',fmt(r*mg\/100-s),(r*mg\/100-s)>=0?'good':'bad');\r\n $('r-out').innerHTML=cells.join('')||'<div class=\"out\" style=\"grid-column:1\/-1\"><p class=\"note\" style=\"margin:0\">Enter ad spend and revenue or clicks to see results.<\/p><\/div>';\r\n $('r-note').textContent=mg?`Break-even ROAS at ${mg}% margin: ${fmt(100\/mg)}x. Above this you make a profit.`:'Add your profit margin to see your break-even ROAS.'}\r\n['r-spend','r-rev','r-clk','r-imp','r-conv','r-mar'].forEach(i=>$(i).addEventListener('input',roas));\r\n\r\n\/* Ad copy *\/\r\nlet seed=0;const pick=(a,n)=>a[(seed+n)%a.length];\r\nfunction trunc(s,n){return s.length>n?s.slice(0,n-1).trimEnd()+'\u2026':s}\r\nfunction copy(){const p=$('a-prod').value.trim(),b=$('a-ben').value.trim();\r\n if(!p||!b){toast('Add product and benefit');return}\r\n const aud=$('a-aud').value.trim(),off=$('a-off').value.trim(),cta=$('a-cta').value,t=$('a-tone').value;\r\n const au=aud?aud:'you',O=off?` ${off[0].toUpperCase()+off.slice(1)}.`:'';\r\n const T={friendly:{o:[`Looking for ${b}? Meet ${p}, made for ${au}.`,`Hey ${au}, ready for ${b}? ${p} makes it easy.`,`We made ${p} so ${au} can enjoy ${b} every day.`],h:[`Say hello to ${p}`,`${b[0].toUpperCase()+b.slice(1)}, made simple`,`${p} you'll love`,`Treat yourself to ${p}`,`Made for ${au}`]},\r\n  bold:{o:[`Stop settling. ${p} delivers ${b}. Period.`,`${p}: the fastest way to ${b}.`,`${au[0].toUpperCase()+au.slice(1)} deserve more. Get ${b} with ${p}.`],h:[`${p}. No compromises.`,`Get ${b} today`,`The ${p} everyone wants`,`Upgrade to ${p}`,`${b[0].toUpperCase()+b.slice(1)}. Done.`]},\r\n  urgent:{o:[`Don't miss out on ${p}. ${b[0].toUpperCase()+b.slice(1)} starts now.`,`Limited time: ${p} for ${au}.`,`Your chance for ${b} won't last. Grab ${p} today.`],h:[`Last chance: ${p}`,`Only for a limited time`,`Get ${p} before it's gone`,`Act now for ${b}`,`Don't wait on ${p}`]},\r\n  pro:{o:[`${p} helps ${au} achieve ${b} with a proven, reliable approach.`,`Introducing ${p}: a trusted solution for ${b}.`,`Designed for ${au} who value quality. Discover ${p}.`],h:[`${p}: trusted quality`,`A smarter way to ${b}`,`Introducing ${p}`,`Built for ${au}`,`Achieve ${b}`]}}[t];\r\n const prim=[0,1,2].map(i=>pick(T.o,i)+O+` ${cta} \u2192`);\r\n const heads=[0,1,2,3,4].map(i=>trunc(pick(T.h,i),40));\r\n const descs=[off?trunc(off[0].toUpperCase()+off.slice(1),30):trunc(cta+' today',30),trunc(`Made for ${au}`,30),trunc(`${cta} now`,30)];\r\n const blk=(title,arr,lim)=>`<div class=\"out\" style=\"margin-bottom:14px\"><h4>${title}<\/h4>${arr.map(x=>`<div class=\"item\"><div>${esc(x)}<small>${x.length} chars${lim?` \u00b7 suggested max ${lim}`:''}<\/small><\/div><button class=\"btn sm alt\" data-txt=\"${esc(x)}\">Copy<\/button><\/div>`).join('')}<\/div>`;\r\n $('a-out').innerHTML=blk('Primary text',prim,125)+blk('Headlines',heads,40)+blk('Descriptions',descs,30)}\r\nfunction esc(s){return s.replace(\/[&<>\"]\/g,c=>({'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;'}[c]))}\r\n$('a-go').onclick=()=>{seed=0;copy()};$('a-more').onclick=()=>{seed++;copy()};\r\n\r\n\/* Influencer *\/\r\nfunction inf(){const f=num('i-fol'),e=num('i-eng');if(!f||!e){$('i-big').textContent='\u2014';$('i-rng').textContent='';$('i-st').innerHTML='';return}\r\n const em=e<1?.6:e<3?1:e<6?1.3:1.6,fx=parseFloat($('i-cur').value),sym={1:'$',83:'\u20b9',.92:'\u20ac',.79:'\u00a3'}[fx];\r\n const base=f\/1000*parseFloat($('i-plat').value)*em*parseFloat($('i-fmt').value)*parseFloat($('i-niche').value)*fx;\r\n const rd=v=>sym+Math.round(v\/(v>1000?10:1)*(v>1000?10:1)).toLocaleString();\r\n $('i-big').textContent=rd(base);$('i-rng').textContent=`Typical range: ${rd(base*.75)} \u2013 ${rd(base*1.3)}`;\r\n const eng=f*e\/100;\r\n $('i-st').innerHTML=[['Engagements per post',Math.round(eng).toLocaleString()],['Cost per engagement',sym+fmt(base\/eng)],['Cost per 1,000 followers',sym+fmt(base\/f*1000)],['Tier',f<10000?'Nano':f<100000?'Micro':f<500000?'Mid-tier':f<1e6?'Macro':'Mega']].map(x=>`<div class=\"stat\"><span>${x[0]}<\/span><b style=\"font-size:18px\">${x[1]}<\/b><\/div>`).join('')}\r\n['i-fol','i-eng','i-plat','i-fmt','i-niche','i-cur'].forEach(i=>$(i).addEventListener('input',inf));\r\nroas();\r\n<\/script>\r\n<\/body>\r\n<\/html>\r\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Social Ads, Link &#038; Influencer Tools | Free Onground Media All tools \u2193 Social Ads, Links &amp; Influencer Tools Create [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-539","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ongroundmedia.com\/index.php?rest_route=\/wp\/v2\/pages\/539","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ongroundmedia.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ongroundmedia.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ongroundmedia.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ongroundmedia.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=539"}],"version-history":[{"count":4,"href":"https:\/\/ongroundmedia.com\/index.php?rest_route=\/wp\/v2\/pages\/539\/revisions"}],"predecessor-version":[{"id":543,"href":"https:\/\/ongroundmedia.com\/index.php?rest_route=\/wp\/v2\/pages\/539\/revisions\/543"}],"wp:attachment":[{"href":"https:\/\/ongroundmedia.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=539"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}