For ADMENSION Project
Goal: Get approved for AdSense to unlock $6-20 RPM revenue
Before applying, verify ALL items are complete:
- ✅ Privacy Policy Live:
/privacy-policy.htmlexists and accessible - ✅ Ad Containers Added: 23/23 containers in place (Stats, Docs, Manage, Admin rails completed)
- ✅ Consent System Working: GDPR/CCPA banner shows and blocks ads until consent
- ✅ Site Deployed: Live URL accessible (not localhost)
- ✅ Original Content: Your landing pages have unique content
- ✅ Navigation Works: All pages load properly
- ✅ Mobile Responsive: Site works on mobile devices
- ✅ No Prohibited Content: No adult content, violence, copyright violations
- Go to https://accounts.google.com/signup
- Use a professional email (not temporary/disposable)
- Important: Use the same email you'll use for payments
- Verify your email address
- Go to https://www.google.com/adsense/start/
- Click "Sign Up Now" or "Get Started"
- Fill out the application form:
Application Form Details:
Website URL: https://[your-domain].com
↳ Enter your live production URL (no http://, just domain)
↳ Must be publicly accessible
↳ Cannot be localhost or staging subdomain
Email: [your-professional-email]
↳ Gmail recommended for easier account management
↳ This will be your AdSense account email
Country/Territory: [Your Country]
↳ Must match your payment address
↳ Cannot change after account creation
Receive customized help: ☑ Yes (recommended)
↳ Google will send optimization tips
Terms and Conditions: ☑ I accept
- Click "Save and Continue"
Google will provide an AdSense code snippet. DO NOT add this manually.
For ADMENSION (already configured):
- AdSense will give you a publisher ID like:
ca-pub-1234567890123456 - Copy the 16-digit number after
ca-pub- - Open
ads-config.jsin your code editor - Find line 18:
client: 'ca-pub-XXXXXXXXXXXXXXXX', - Replace
XXXXXXXXXXXXXXXXwith your 16-digit ID - Save and deploy
Verification Code (if required):
- Google may show: "Add this code between
<head>and</head>" - Our ads-config.js already loads AdSense correctly
- The script at line 190 in ads-config.js handles this:
script.src = `https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=${AD_CONFIG.adsense.client}`;
- Once you update line 18, the verification will pass automatically
Google will check if your site loads their AdSense script.
How to verify it's working:
- Deploy your updated
ads-config.jswith your real publisher ID - Visit your site in a browser
- Open Developer Tools (F12)
- Go to Console tab
- Look for:
[AdManager] Loading AdSense - Go to Network tab
- Filter for
adsbygoogle.js - You should see the script loading successfully
Alternative: View Page Source
- Right-click on your site → "View Page Source"
- Search for
adsbygoogle.js?client=ca-pub- - Confirm your 16-digit ID is present
Timeline: 3-7 days typically (can be up to 14 days)
What Google Reviews:
- ✅ Privacy policy exists and is accessible
- ✅ Site has substantial original content
- ✅ Navigation is clear and functional
- ✅ No prohibited content (adult, violence, etc.)
- ✅ Site complies with AdSense Program Policies
- ✅ Site loads properly on desktop and mobile
During Review - DO NOT:
- ❌ Change your site structure dramatically
- ❌ Add prohibited content
- ❌ Remove privacy policy
- ❌ Make the site inaccessible
- ❌ Use invalid traffic methods (bots, click farms)
During Review - DO:
- ✅ Keep site live and accessible
- ✅ Add more quality content if possible
- ✅ Fix any broken links
- ✅ Test mobile responsiveness
You'll receive an email: "Your AdSense account has been approved"
Immediate Next Steps:
- Log in to https://adsense.google.com
- Go to Ads → By ad unit
- Click "+ New ad unit"
- Create 7 ad units (one at a time):
Ad Unit Setup (repeat 7 times):
Unit 1: Sticky Footer
Ad unit name: ADMENSION-Sticky-Footer
Ad type: Display ads
Ad size: Responsive
↳ Or manually set: 728x90, 970x90, 320x50
→ Click "Create"
→ Copy the Ad unit code (looks like /12345678/admension-sticky-footer)
→ Paste into your notes
Unit 2: Top Banner
Ad unit name: ADMENSION-Top-Banner
Ad type: Display ads
Ad size: Responsive
Unit 3: Rail Right
Ad unit name: ADMENSION-Rail-Right
Ad type: Display ads
Ad size: 300x600 or 300x250
Unit 4: In-Content Tall
Ad unit name: ADMENSION-In-Content-Tall
Ad type: Display ads
Ad size: 300x600, 300x250, 336x280
Unit 5: Footer Banner
Ad unit name: ADMENSION-Footer-Banner
Ad type: Display ads
Ad size: 728x90, 320x50
Unit 6: Create Page Rail
Ad unit name: ADMENSION-Create-Rail
Ad type: Display ads
Ad size: 300x600
Unit 7: Manage Page Rail
Ad unit name: ADMENSION-Manage-Rail
Ad type: Display ads
Ad size: 300x600
- Update
ads-config.jslines 78-144 with your ad unit codes:
// Line 78
adsenseSlot: '/12345678/admension-sticky-footer', // Replace with YOUR slot
// Line 88
adsenseSlot: '/12345678/admension-top-banner',
// Line 98 (rail-left can use same as rail-right)
adsenseSlot: '/12345678/admension-rail-right',
// Line 109
adsenseSlot: '/12345678/admension-rail-right',
// Line 120
adsenseSlot: '/12345678/admension-in-content-tall',
// Line 130 (side-left uses own slot)
adsenseSlot: '/12345678/admension-side-left',
// Line 141 (side-right uses own slot)
adsenseSlot: '/12345678/admension-side-right',- Update
ads.txtfile:
google.com, pub-1234567890123456, DIRECT, f08c47fec0942fa0
Replace pub-1234567890123456 with your actual publisher ID.
-
Deploy updated code to production
-
Test First Impression:
- Visit your site
- Accept cookies/consent
- Open browser DevTools → Console
- Look for:
[AdManager] Consent granted, proceeding with ad initialization - Wait 5-10 seconds for ads to load
- You should see ad placeholders or real ads
- Monitor AdSense Dashboard:
- Log in to https://adsense.google.com
- Go to Reports → Overview
- Within 24-48 hours you should see impressions
- Initial fill rate: 50-60% (improves over 7-14 days)
You'll receive an email with rejection reason(s).
Common Rejection Reasons & Fixes:
"Insufficient content"
- Fix: Add 10-15 more pages of unique content (300+ words each)
- Wait 2 weeks, then reapply
"Site navigation is difficult"
- Fix: Ensure all navigation links work
- Add breadcrumbs or footer navigation
- Test on mobile devices
"Policy violation"
- Fix: Review AdSense Program Policies: https://support.google.com/adsense/answer/48182
- Remove any prohibited content
- Ensure privacy policy is complete
"Website not accessible"
- Fix: Ensure site is live 24/7 (not on localhost)
- Check DNS settings
- Test from different devices/locations
"Misleading content"
- Fix: Remove any clickbait, false claims, or deceptive elements
- Ensure transparency about how payouts work
Reapplication:
- Fix all issues mentioned in rejection email
- Wait minimum 7 days before reapplying
- Do NOT reapply immediately (will be auto-rejected)
Expected Metrics:
- Impressions: Should start within 24 hours
- Fill rate: 40-50% initially
- CPM: $1-2 (will improve)
- RPM: $3-5 baseline
Actions:
- Monitor Console for errors
- Check that all 23 ad containers load
- Verify consent banner works properly
- Test on mobile and desktop
Watch AdSense Dashboard:
- Go to Reports → Ad units
- Identify high-performing units (high CPM, high CTR)
- Identify low-performing units
Optimize:
- Disable any units with <30% fill rate
- Test different ad sizes for low performers
- Ensure viewability >50% (use browser DevTools)
Expected Improvement:
- Fill rate: 50% → 70%
- CPM: $1-2 → $2-3
- RPM: $3-5 → $6-8
Week 1-2: Initial Revenue Unlock
- RPM: $3-6 (learning phase)
- At 100 DAU: $0.30-0.60/day = $9-18/month
- At 1,000 DAU: $3-6/day = $90-180/month
Week 3-4: Baseline Achievement
- RPM: $6-11 (optimized)
- At 100 DAU: $0.60-1.10/day = $18-33/month
- At 1,000 DAU: $6-11/day = $180-330/month
Week 8-12: Header Bidding Prep
- RPM: $11-16 (mature account)
- At 1,000 DAU: $11-16/day = $330-480/month
Month 4+: Header Bidding Live
- RPM: $20-25 (with Prebid.js)
- At 1,000 DAU: $20-25/day = $600-750/month
- At 2,000 DAU: $40-50/day = $1,200-1,500/month
Causes:
- Consent not granted → Check consent banner works
- Ad blocker active → Test in incognito without extensions
- Fill rate low → Normal for first 48 hours
- Geo-restricted → AdSense may not serve in all countries
- Publisher ID wrong → Verify line 18 in ads-config.js
Debug:
Open DevTools Console:
- Look for: [AdManager] Loading AdSense
- Look for: [AdManager] Consent granted
- Check Network tab for adsbygoogle.js (should load)
- Check for errors mentioning "adsbygoogle"
Normal Fill Rates:
- Days 1-7: 40-60%
- Days 8-14: 60-75%
- Days 15-30: 75-85%
- Month 2+: 85-90%
Improvement Actions:
- Enable "Auto ads" in AdSense dashboard (optional)
- Test different ad sizes
- Improve viewability (50%+ visible for 1+ second)
- Focus on Tier-1 traffic (US, CA, UK, AU)
AdSense Payment Threshold: $100
- You must earn $100 before first payout
- Set up payment method at $10 earned
- Payouts occur monthly (21st-26th)
Time to $100:
- At 100 DAU, baseline: ~6-12 months
- At 1,000 DAU, baseline: ~1 month
- At 1,000 DAU, optimized: ~2 weeks
AdSense Help Center: https://support.google.com/adsense
Policy Center: https://support.google.com/adsense/answer/48182
Community Forum: https://support.google.com/adsense/community
Contact AdSense Support:
- Log in to https://adsense.google.com
- Click Help (?) icon in top right
- Choose "Contact us"
- Select your issue category
- Options: Email, Chat, or Phone (depends on account status)
Once AdSense is live and generating revenue:
-
Week 2-4: Baseline Optimization
- Implement viewability tracking (PROJECT_REVIEW_EXECUTION_PLAN.md)
- Enable navigation-based refresh
- Monitor fill rates daily
-
Week 5-8: Traffic Quality
- Focus on Tier-1 geo traffic (US/CA/UK)
- A/B test ad placements
- Optimize for session depth (pages/session)
-
Week 9-12: Header Bidding Prep
- Reach 100+ DAU minimum
- Build custom Prebid.js bundle
- Apply for SSP accounts (Index Exchange, OpenX, Sovrn, PubMatic)
-
Month 4+: Scale to $20+ RPM
- Enable Prebid.js on 25% traffic (test)
- Scale to 100% traffic
- Implement advanced strategies from plan
Once approved, you've unlocked the foundation for $6-20+ RPM revenue. The architecture is production-ready, ads are policy-compliant, and the path to $20 RPM is validated.
Your project is 90% complete. The last 10% is AdSense credentials.
Apply today at: https://www.google.com/adsense/start/