Creator Revenue Sharing & Subscriptions — Tutorial
Step-by-step guide to setting up creator subscriptions, configuring tiers, managing subscribers, and enrolling in ad revenue sharing on X/Twitter.
Works on: Browser Console | Node.js (Puppeteer)
Difficulty: Intermediate
Time: 10-20 minutes
Requirements: Logged into x.com, X Premium, 500+ followers
Prerequisites
- Logged into x.com in your browser
- Browser DevTools console (F12 or Cmd+Option+J on Mac)
- X Premium subscription (Premium or Premium+)
- At least 500 followers
- Active account for 30+ days
- No recent X Rules violations
Quick Start
- Go to any page on x.com
- Open DevTools Console (F12, then click the Console tab)
- Paste the script to check eligibility and view tier info
- Navigate to monetization settings
- Follow the on-screen prompts to enroll
Configuration
const CONFIG = {
autoNavigate: true, // Navigate to monetization settings
checkEligibility: true, // Check revenue sharing requirements
showTierInfo: true, // Display subscription tier details
scanSubscribers: false, // Scan subscriber list
maxSubscribersToScan: 100, // Max subscribers to scan
delayBetweenActions: 2000, // ms between UI actions
};
Step-by-Step Guide
Step 1: Check Eligibility
(() => {
console.log('💰 CREATOR REVENUE - XActions by nichxbt\n');
// Check Premium status
const isVerified = !!document.querySelector('[data-testid="icon-verified"]');
console.log(isVerified
? '✅ Verified badge detected — Premium requirement likely met.'
: '⚠️ No verified badge — you need X Premium for monetization.');
// Display requirements
console.log('\n📋 Creator Subscriptions Requirements:');
console.log('─'.repeat(45));
[
'X Premium subscription (Premium or Premium+)',
'At least 500 followers',
'Active account for 30+ days',
'No recent X Rules violations',
'Completed Stripe onboarding for payouts',
].forEach(r => console.log(` ☐ ${r}`));
console.log('\n📋 Revenue Sharing (Ads) Requirements:');
console.log('─'.repeat(45));
[
'X Premium subscription',
'At least 500 followers',
'At least 5 million organic impressions in the last 3 months',
'Active account for 3+ months',
'Completed Stripe onboarding',
'Content complies with Creator Monetization Standards',
].forEach(r => console.log(` ☐ ${r}`));
})();
Step 2: View Subscription Tier Options
(() => {
console.log('\n══════════════════════════════════════════════════');
console.log('💰 CREATOR SUBSCRIPTION TIERS');
console.log('══════════════════════════════════════════════════\n');
const tiers = {
'Basic Tier (suggested: $2.99/mo)': [
'Subscriber badge on profile',
'Subscriber-only posts',
'Priority replies',
],
'Standard Tier (suggested: $4.99/mo)': [
'Everything in Basic',
'Early access to content',
'Subscriber-only Spaces',
'Exclusive media content',
],
'Premium Tier (suggested: $9.99/mo)': [
'Everything in Standard',
'Direct message access',
'Behind-the-scenes content',
'Special recognition in community',
],
};
for (const [tier, benefits] of Object.entries(tiers)) {
console.log(`\n🏷️ ${tier}`);
console.log('─'.repeat(40));
benefits.forEach(b => console.log(` ✓ ${b}`));
}
console.log('\n💡 Tips:');
console.log(' • You set your own price (minimum $2.99/mo)');
console.log(' • X takes a commission on subscriptions');
console.log(' • Offer exclusive content to increase retention');
console.log(' • Promote your subscription link in your bio');
console.log('══════════════════════════════════════════════════\n');
})();
Step 3: Navigate to Monetization Settings
(async () => {
const sleep = (ms) => new Promise(r => setTimeout(r, ms));
console.log('🚀 Navigating to monetization settings...');
const monetizationLink = document.querySelector('a[href="/settings/monetization"]');
if (monetizationLink) {
monetizationLink.click();
console.log('✅ Clicked monetization settings link.');
} else {
console.log('⚠️ Monetization link not found. Navigating directly...');
window.location.href = 'https://x.com/settings/monetization';
}
await sleep(4000);
// Check for available tabs
const primaryColumn = document.querySelector('[data-testid="primaryColumn"]');
if (primaryColumn) {
const tabs = primaryColumn.querySelectorAll('[role="tab"], button[role="tab"]');
if (tabs.length > 0) {
console.log('\n📋 Available tabs:');
tabs.forEach((tab, i) => {
console.log(` ${i + 1}. ${tab.textContent.trim()}`);
});
}
const links = primaryColumn.querySelectorAll('a[href*="monetization"], a[href*="subscription"]');
links.forEach(link => {
console.log(` 🔗 ${link.textContent.trim()}: ${link.href}`);
});
}
console.log('\n💡 Follow the on-screen prompts to set up monetization.');
console.log('💡 Manage subscriptions: x.com/settings/monetization');
console.log('💡 View analytics: x.com/i/account_analytics');
})();
Step 4: Scan Subscribers (Node.js)
Script: src/creatorStudio.js
import { getSubscribers, getRevenue, getAccountAnalytics } from './src/creatorStudio.js';
import puppeteer from 'puppeteer-extra';
import StealthPlugin from 'puppeteer-extra-plugin-stealth';
puppeteer.use(StealthPlugin());
const browser = await puppeteer.launch({ headless: false });
const page = await browser.newPage();
await page.setCookie({
name: 'auth_token',
value: 'YOUR_AUTH_TOKEN',
domain: '.x.com',
});
// Get subscriber list
const subs = await getSubscribers(page, { limit: 50 });
console.log(`Subscribers: ${subs.count}`);
subs.subscribers.forEach(s => {
console.log(` @${s.username} (${s.name}) - since ${s.subscribedSince}`);
});
// Get revenue data
const revenue = await getRevenue(page);
console.log('Revenue:', revenue);
// Get account analytics
const analytics = await getAccountAnalytics(page);
console.log('Analytics:', analytics);
await browser.close();
Step 5: Check Revenue Sharing Eligibility (Node.js)
import { checkRevenueEligibility } from './src/premiumManager.js';
// ... browser setup ...
const eligibility = await checkRevenueEligibility(page, 'nichxbt');
console.log(eligibility);
// {
// username: 'nichxbt',
// followers: '12.5K',
// meetsFollowerMin: true,
// requirements: {
// minFollowers: '500+',
// minImpressions: '5M+ in last 3 months',
// premiumRequired: true,
// note: 'Must have Premium ($8/mo) or higher',
// },
// note: 'Impression data requires account owner access to verify',
// }
Expected Console Output
💰 CREATOR REVENUE - XActions by nichxbt
✅ Verified badge detected — Premium requirement likely met.
📋 Creator Subscriptions Requirements:
─────────────────────────────────────────────
☐ X Premium subscription (Premium or Premium+)
☐ At least 500 followers
☐ Active account for 30+ days
☐ No recent X Rules violations
☐ Completed Stripe onboarding for payouts
📋 Revenue Sharing (Ads) Requirements:
─────────────────────────────────────────────
☐ X Premium subscription
☐ At least 500 followers
☐ At least 5 million organic impressions in the last 3 months
☐ Active account for 3+ months
☐ Completed Stripe onboarding
☐ Content complies with Creator Monetization Standards
══════════════════════════════════════════════════
💰 CREATOR SUBSCRIPTION TIERS
══════════════════════════════════════════════════
🏷️ Basic Tier (suggested: $2.99/mo)
────────────────────────────────────────
✓ Subscriber badge on profile
✓ Subscriber-only posts
✓ Priority replies
🏷️ Standard Tier (suggested: $4.99/mo)
────────────────────────────────────────
✓ Everything in Basic
✓ Early access to content
✓ Subscriber-only Spaces
✓ Exclusive media content
🏷️ Premium Tier (suggested: $9.99/mo)
────────────────────────────────────────
✓ Everything in Standard
✓ Direct message access
✓ Behind-the-scenes content
✓ Special recognition in community
🚀 Navigating to monetization settings...
✅ Clicked monetization settings link.
Tips & Tricks
Stripe onboarding -- Both creator subscriptions and ad revenue sharing require Stripe for payouts. Complete Stripe onboarding early in the process.
5M impressions threshold -- The 5 million impressions requirement for ad revenue is calculated over a rolling 3-month period. Focus on consistent posting to maintain eligibility.
Subscriber-only content -- Create a mix of free and subscriber-only content. Use free posts to showcase value and drive subscription signups.
Promote in bio -- Add your subscription link to your bio. It is the most visible place for potential subscribers.
Revenue timing -- Payouts are processed monthly. There may be a delay of 30-60 days from earning to receiving payment.
Troubleshooting
| Problem | Solution |
|---|---|
| Monetization settings not visible | Ensure you have X Premium. Navigate directly to x.com/settings/monetization. |
| Not eligible for revenue sharing | Check that you have 500+ followers and 5M+ impressions in the last 3 months. |
| Stripe onboarding failing | Ensure your personal information matches your bank account details. |
| No subscribers showing | If you just enabled subscriptions, it takes time for people to subscribe. Promote your subscription link. |
Related Scripts
| Feature | Script | Description |
|---|---|---|
| View Analytics | src/viewAnalytics.js |
Check impressions and engagement |
| Premium Manager | src/premiumManager.js |
Check tier features and eligibility |
| Creator Studio | src/creatorStudio.js |
Combined analytics and revenue dashboard |
| Subscribe to Premium | src/subscribePremium.js |
Get Premium for monetization access |
⚡ Ready to try Creator Revenue Sharing & Subscriptions — Tutorial?
XActions is 100% free and open-source. No API keys, no fees, no signup.
Browse All Scripts