Monetag mini app create free।। Telegram monetag Miniapp create 2025।। নিজেই তৈরি করুন মনিট্যাগ App

 

Monetag mini app create free।। Telegram monetag Miniapp create 2025।। নিজেই তৈরি করুন মনিট্যাগ App


More details Wach Now 




Monetag Mini App Create Free | Telegram Monetag Mini App 2025

Want to earn passive income in 2025? Learn how to create a free Monetag Mini App and monetize your Telegram channel, blog, or any online platform using Monetag advertising. This detailed guide will show you how to build your own income-generating app from scratch—without coding skills or expensive tools.

🚀 What is a Monetag Mini App?

A Monetag Mini App is a lightweight HTML and JavaScript-based web app that integrates Monetag ads to generate CPM, CPC, and CPA income. It can be used as a Telegram Mini App, on Blogger, or any website. With Monetag, every impression or click earns you money.

💡 Why Create a Telegram Monetag Mini App?

  • ✅ 100% Free to Build and Launch
  • ✅ Compatible with Telegram Bots and Web Apps
  • ✅ Monetize Traffic with Banner, Popunder, or Native Ads
  • ✅ Works on Blogger, WordPress, or Static Hosting
  • ✅ Earn from every visitor or action

📱 How to Create Your Monetag Mini App (Step-by-Step)

  1. Create a Monetag Account: Visit  and sign up for free.

  1. Monetage Account create link : Click Here

  1. Generate Ad Codes: From your dashboard, create banner/popunder/native ad codes.
  2. Build a Mini App: Create a basic HTML page with your ad scripts and custom content.
  3. Host Your App: Upload the file to Blogger, Netlify, GitHub Pages, or any free host.
  4. Integrate with Telegram: Use Telegram’s Bot API or Web App API to embed or open your app inside Telegram chats.

📄 Sample Mini App Code (HTML)

<!DOCTYPE html>
<html>
<head>
  <title>Monetag App</title>
</head>
<body>
  <h1>Welcome to My Monetag Mini App</h1>
  <p>Start earning by sharing this app.</p>
  <!-- Insert Your Monetag Ads Here -->
</body>
</html>

📣 Where to Get Traffic for Your App?

To earn more from your app, you need consistent traffic. Here are top platforms to share and promote your Monetag Mini App:

  • 📌 Telegram Groups & Channels
  • 📌 Facebook Pages and Reels (Comment Section)
  • 📌 YouTube Shorts or Video Descriptions
  • 📌 WhatsApp & Messenger Groups
  • 📌 Reddit, Quora, Twitter (X), Pinterest
  • 📌 Blog Posts, Free Classified Ads

📊 Monetization Tips

  • Use more than one ad format: popunder + banner + native
  • Always place one ad at the top, one in the middle, one at the bottom
  • Keep your app simple and mobile responsive
  • Track performance from Monetag Dashboard
  • Promote with trending keywords and SEO posts

🎯 Final Thoughts

Creating a Telegram Monetag Mini App in 2025 is a smart move for anyone looking to earn passive income online. Whether you're a student, freelancer, or content creator—Monetag gives you the tools to generate revenue from every visitor. Don’t wait! Start building your own Monetag Mini App today and turn traffic into dollars.

Hashtags:
#MonetagMiniApp #TelegramMonetag #EarnOnline2025 #PassiveIncome #FreeMiniApp #MonetagEarnings #HTMLAdsApp


Html code

<!DOCTYPE html>

<html lang="en">

<head>

  <meta charset="UTF-8" />

  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"/>

  <title>Easy Earning Bot</title>

  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">

  <style>

    :root {

      --primary-color: #2ed914;

      --primary-hover: #3bff21;

      --secondary-color: #2a2a2e;

      --background-color: #1c1c1f;

      --text-color: #f0f0f0;

      --text-muted-color: #a0a0a0;

      --accent-color: #ff8c00;

      --card-bg: #252528;

    }

    * { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }

    body {

      margin: 0; padding: 0; background-color: var(--background-color); color: var(--text-color);

      font-family: 'Segoe UI', 'Roboto', sans-serif; display: flex; justify-content: center; align-items: center;

      height: 100vh; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;

    }

    .container {

      width: 100%; height: 100%; max-width: 400px; background: var(--background-color);

      display: flex; flex-direction: column; overflow: hidden; position: relative;

    }

    main {

      flex-grow: 1; overflow-y: auto; padding: 20px; padding-bottom: 80px; /* Space for footer nav */

    }

    .view { display: none; animation: fadeIn 0.4s ease-in-out; }

    .view.active { display: block; }

    @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }

    .user-header-card {

      background: var(--card-bg); border-radius: 16px; padding: 15px; margin-bottom: 25px;

      display: flex; align-items: center; border: 1px solid rgba(255, 255, 255, 0.05);

    }

    .user-avatar {

      width: 50px; height: 50px; border-radius: 50%; margin-right: 15px; overflow: hidden;

      background: linear-gradient(135deg, var(--primary-color), #00a651);

      display: flex; align-items: center; justify-content: center; font-weight: bold; font-size: 20px;

    }

    .user-avatar img { width: 100%; height: 100%; object-fit: cover; }

    .user-info .username { font-size: 18px; font-weight: 700; margin: 0; }

    .user-info .title { font-size: 14px; color: var(--text-muted-color); margin: 0; }

    .balance-card {

      background: linear-gradient(135deg, #00a651, #00753a); border-radius: 16px; padding: 20px;

      text-align: center; margin-bottom: 25px;

    }

    .balance-card .label { font-size: 16px; opacity: 0.8; margin-bottom: 5px; }

    .balance-card .balance-value { font-size: 36px; font-weight: 800; margin: 0; letter-spacing: 1px; }

    .balance-card .points-value { font-size: 16px; font-weight: 600; color: var(--accent-color); margin-top: 10px; }

    .section-title { font-size: 20px; font-weight: 700; margin-bottom: 15px; padding-left: 5px; border-left: 4px solid var(--primary-color); }

    .task-card {

      background: var(--card-bg); border-radius: 12px; padding: 20px; margin-bottom: 15px;

      display: flex; align-items: center; cursor: pointer; transition: transform 0.2s ease, background-color 0.2s ease;

      border: 1px solid rgba(255, 255, 255, 0.05);

    }

    .task-card:hover { transform: translateY(-3px); background-color: var(--secondary-color); }

    .task-icon { font-size: 24px; color: var(--primary-color); margin-right: 20px; width: 30px; text-align: center; }

    .task-details h3 { margin: 0; font-size: 16px; font-weight: 600; }

    .task-details p { margin: 3px 0 0; font-size: 13px; color: var(--text-muted-color); }

    .task-arrow { margin-left: auto; font-size: 18px; color: var(--text-muted-color); }

    .list-item {

      display: flex; align-items: center; background: var(--card-bg); padding: 12px 15px;

      border-radius: 10px; margin-bottom: 10px; border: 1px solid rgba(255, 255, 255, 0.05);

    }

    .list-item .rank { font-size: 16px; font-weight: 700; color: var(--text-muted-color); width: 30px; }

    .list-item .avatar { width: 40px; height: 40px; border-radius: 50%; background: var(--secondary-color); margin-right: 15px; object-fit: cover; }

    .list-item .info { flex-grow: 1; }

    .list-item .info .name { font-weight: 600; font-size: 15px; }

    .list-item .info .detail { font-size: 13px; color: var(--text-muted-color); }

    .list-item .score { font-size: 16px; font-weight: 700; color: var(--accent-color); }

    .history-icon { color: var(--primary-color); margin-right: 15px; font-size: 18px; }

    .footer-nav {

      position: fixed; bottom: 0; left: 0; right: 0; width: 100%; max-width: 400px; margin: 0 auto;

      display: flex; justify-content: space-around; background: var(--secondary-color);

      padding: 10px 0; border-top: 1px solid rgba(255, 255, 255, 0.1);

    }

    .nav-button {

      display: flex; flex-direction: column; align-items: center; color: var(--text-muted-color);

      background: none; border: none; font-size: 12px; transition: color 0.2s ease, transform 0.2s ease;

      cursor: pointer; padding: 5px 10px;

    }

    .nav-button .icon { font-size: 22px; margin-bottom: 4px; }

    .nav-button:hover { color: var(--text-color); }

    .nav-button.active { color: var(--primary-color); transform: scale(1.1); }

    .action-button {

      width: 100%; padding: 15px; border-radius: 12px; border: none; font-size: 16px; font-weight: 700;

      margin-top: 15px; cursor: pointer; transition: all 0.3s ease; text-transform: uppercase; letter-spacing: 1px;

    }

    .primary-button { background: var(--primary-color); color: #000; }

    .primary-button:hover { background: var(--primary-hover); transform: translateY(-2px); box-shadow: 0 5px 15px rgba(46, 217, 20, 0.3); }

    .secondary-button { background: var(--secondary-color); color: var(--primary-color); }

    .secondary-button:hover { background: #3a3a3e; }

    .modal-overlay {

      position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.7);

      display: none; align-items: center; justify-content: center; z-index: 1000; animation: fadeIn 0.3s;

    }

    .modal-overlay.active { display: flex; }

    .modal-content {

      background: var(--card-bg); padding: 25px; border-radius: 16px; width: 90%; max-width: 320px;

      text-align: center; animation: slideIn 0.3s;

    }

    @keyframes slideIn { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }

    .modal-content h3 { margin-top: 0; font-size: 20px; }

    .modal-content p { color: var(--text-muted-color); margin-bottom: 25px; }

    .modal-actions { display: flex; gap: 10px; }

  </style>


  <script src='//libtl.com/sdk.js' data-zone='9459352' data-sdk='show_9459352'></script>

  <script src="https://telegram.org/js/telegram-web-app.js"></script>

</head>

<body>

  <div class="container">

    <main id="main-content">


      <!-- HOME VIEW -->

      <div id="home-view" class="view active">

        <div class="user-header-card">

          <div class="user-avatar" id="profile-pic">EE</div>

          <div class="user-info">

            <h2 class="username" id="username">Loading...</h2>

            <p class="title">Welcome Back!</p>

          </div>

        </div>

        <div class="balance-card">

            <p class="label">Total Balance</p>

            <h1 class="balance-value" id="balance-value">$0.00</h1>

            <p class="points-value"><i class="fa-solid fa-coins"></i> <span id="points-value">0</span> Points</p>

        </div>

        <h2 class="section-title">Quick Actions</h2>

        <div class="task-card" onclick="showView('tasks-view')">

            <div class="task-icon"><i class="fa-solid fa-list-check"></i></div>

            <div class="task-details"><h3>View Tasks</h3><p>Watch ads and complete tasks to earn points.</p></div>

            <div class="task-arrow"><i class="fa-solid fa-chevron-right"></i></div>

        </div>

        <div class="task-card" onclick="openWithdrawModal()">

            <div class="task-icon"><i class="fa-solid fa-wallet"></i></div>

            <div class="task-details"><h3>Withdraw Funds</h3><p>Request to withdraw your available balance.</p></div>

            <div class="task-arrow"><i class="fa-solid fa-chevron-right"></i></div>

        </div>

      </div>


      <!-- TASKS VIEW -->

      <div id="tasks-view" class="view">

        <h2 class="section-title">Earning Tasks</h2>

        <div class="task-card" onclick="showRewardedInterstitial()">

            <div class="task-icon"><i class="fa-solid fa-rectangle-ad"></i></div>

            <div class="task-details"><h3>Rewarded Interstitial</h3><p>Watch a full-screen ad to earn rewards.</p></div>

            <div class="task-arrow"><i class="fa-solid fa-play"></i></div>

        </div>

        <div class="task-card" onclick="showRewardedPopup()">

            <div class="task-icon"><i class="fa-solid fa-window-restore"></i></div>

            <div class="task-details"><h3>Rewarded Popup</h3><p>View a popup ad for quick points.</p></div>

            <div class="task-arrow"><i class="fa-solid fa-play"></i></div>

        </div>

        <!-- In-App Interstitial Button Removed as it now runs automatically -->

      </div>


      <!-- LEADERBOARD VIEW -->

      <div id="leaderboard-view" class="view">

        <h2 class="section-title">Top Earners</h2>

        <div id="leaderboard-list"><!-- Leaderboard items will be generated here by JS --></div>

      </div>


      <!-- HISTORY VIEW -->

      <div id="history-view" class="view">

        <h2 class="section-title">Recent Activity</h2>

        <div id="history-list"><!-- History items will be generated here by JS --></div>

      </div>


    </main>


    <nav class="footer-nav">

      <button class="nav-button active" onclick="showView('home-view')"><i class="icon fa-solid fa-house"></i>Home</button>

      <button class="nav-button" onclick="showView('tasks-view')"><i class="icon fa-solid fa-list-check"></i>Tasks</button>

      <button class="nav-button" onclick="showView('leaderboard-view')"><i class="icon fa-solid fa-trophy"></i>Leaders</button>

      <button class="nav-button" onclick="showView('history-view')"><i class="icon fa-solid fa-clock-rotate-left"></i>History</button>

      <button class="nav-button" onclick="shareApp()"><i class="icon fa-solid fa-share-nodes"></i>Share</button>

    </nav>

  </div>

  

  <!-- WITHDRAWAL MODAL -->

  <div class="modal-overlay" id="withdraw-modal">

    <div class="modal-content">

        <h3>Confirm Withdrawal</h3>

        <p>You are about to request a withdrawal of your entire balance. Please confirm.</p>

        <div class="modal-actions">

            <button class="action-button secondary-button" onclick="closeWithdrawModal()">Cancel</button>

            <button class="action-button primary-button" onclick="requestWithdraw()">Confirm</button>

        </div>

    </div>

  </div>



<script>

    // --- State Variables ---

    let points = 0;

    let balance = 0.00;

    let historyLog = [];

    let tgUser = null;

    const pointsPerAd = 1;

    const ratePerPoint = 0.05;


    // --- Core App Logic ---

    document.addEventListener('DOMContentLoaded', () => {

        initApp();

    });


    function initApp() {

        if (window.Telegram && Telegram.WebApp) {

            Telegram.WebApp.ready();

            Telegram.WebApp.expand();

            tgUser = Telegram.WebApp.initDataUnsafe.user;

        }

        

        loadData();

        loadTelegramUser();

        showView('home-view');

        renderLeaderboard();

        

        // <<< === ADDED AUTOMATIC IN-APP ADS INITIALIZATION HERE === >>>

        initializeInAppAds();

    }

    

    // --- Initialize Automatic Ads ---

    function initializeInAppAds() {

        if (typeof show_9459352 === 'function') {

            // In-App Interstitial - runs automatically in the background

            show_9459352({

              type: 'inApp',

              inAppSettings: {

                frequency: 2,

                capping: 0.1,

                interval: 30,

                timeout: 5,

                everyPage: false // `false` is important for single-page apps like this

              }

            });

            console.log("Automatic In-App Interstitial Ads Initialized.");

        } else {

            console.warn("Monetag SDK not ready for In-App Ads. Retrying...");

            setTimeout(initializeInAppAds, 2000); // Retry after 2 seconds if SDK is not loaded yet

        }

    }


    // --- View Management ---

    function showView(viewId) {

        document.querySelectorAll('.view').forEach(view => view.classList.remove('active'));

        document.getElementById(viewId).classList.add('active');

        

        document.querySelectorAll('.nav-button').forEach(btn => btn.classList.remove('active'));

        const activeBtn = document.querySelector(`.nav-button[onclick="showView('${viewId}')"]`);

        if(activeBtn) activeBtn.classList.add('active');

        

        if (viewId === 'history-view') renderHistory();

    }

    

    // --- Data Persistence ---

    function loadData() {

        const savedData = localStorage.getItem('easyEarningBotV2');

        if (savedData) {

            const data = JSON.parse(savedData);

            points = data.points || 0;

            balance = data.balance || 0.00;

            historyLog = data.historyLog || [];

        }

        updateDisplay();

    }


    function saveData() {

        localStorage.setItem('easyEarningBotV2', JSON.stringify({ points, balance, historyLog }));

    }


    function updateDisplay() {

        document.getElementById('points-value').textContent = points;

        document.getElementById('balance-value').textContent = `$${balance.toFixed(2)}`;

    }

    

    // --- User & Profile ---

    function loadTelegramUser() {

        if (tgUser) {

            document.getElementById('username').textContent = tgUser.first_name || 'Telegram User';

            const profilePicDiv = document.getElementById('profile-pic');

            if (tgUser.photo_url) {

                profilePicDiv.innerHTML = `<img src="${tgUser.photo_url}" alt="P">`;

            } else {

                profilePicDiv.textContent = (tgUser.first_name || 'U').charAt(0);

            }

        }

    }


    // --- History Logic ---

    function addToHistory(type, detail) {

        const timestamp = new Date().toISOString();

        historyLog.unshift({ type, detail, timestamp });

        if (historyLog.length > 50) historyLog.pop();

        saveData();

    }


    function renderHistory() {

        const list = document.getElementById('history-list');

        if (historyLog.length === 0) {

            list.innerHTML = `<div class="list-item"><div class="info"><div class="name">No activity yet.</div><div class="detail">Watch some ads to get started!</div></div></div>`;

            return;

        }

        

        list.innerHTML = historyLog.map(item => {

            const icon = item.type === 'earn' 

                ? '<i class="fa-solid fa-plus-circle" style="color: var(--primary-color);"></i>' 

                : '<i class="fa-solid fa-paper-plane" style="color: var(--accent-color);"></i>';

            return `

                <div class="list-item">

                    <div class="history-icon">${icon}</div>

                    <div class="info">

                        <div class="name">${item.detail}</div>

                        <div class="detail">${new Date(item.timestamp).toLocaleString()}</div>

                    </div>

                </div>`;

        }).join('');

    }


    // --- Leaderboard Logic ---

    function renderLeaderboard() {

        const leaderboardData = [

            { name: "CryptoKing", score: 2540, avatar: "https://i.pravatar.cc/150?img=1" },

            { name: "Elena", score: 2210, avatar: "https://i.pravatar.cc/150?img=2" },

            { name: "ProMiner", score: 1980, avatar: "https://i.pravatar.cc/150?img=3" },

            { name: "Aisha", score: 1750, avatar: "https://i.pravatar.cc/150?img=4" },

            { name: "BotMaster", score: 1530, avatar: "https://i.pravatar.cc/150?img=5" },

        ];

        

        document.getElementById('leaderboard-list').innerHTML = leaderboardData.map((user, index) => `

            <div class="list-item">

                <div class="rank">#${index + 1}</div>

                <img src="${user.avatar}" class="avatar" alt="Avatar">

                <div class="info"><div class="name">${user.name}</div></div>

                <div class="score">${user.score} pts</div>

            </div>

        `).join('');

    }


    // --- Earning Functions ---

    function grantReward() {

        points += pointsPerAd;

        balance = points * ratePerPoint;

        updateDisplay();

        addToHistory('earn', `+${pointsPerAd} Point(s) from Ad`);

        saveData();

        Telegram.WebApp.HapticFeedback.notificationOccurred('success');

        alert(`Congratulations! You've earned +${pointsPerAd} point. Your new balance is $${balance.toFixed(2)}.`);

    }


    function showRewardedInterstitial() {

        if (typeof show_9459352 !== 'function') return alert('Ad provider is not ready.');

        show_9459352().then(grantReward).catch(e => alert('Ad could not be shown.'));

    }


    function showRewardedPopup() {

        if (typeof show_9459352 !== 'function') return alert('Ad provider is not ready.');

        show_9459352('pop').then(grantReward).catch(e => alert('Ad could not be shown.'));

    }


    // --- Withdrawal Logic ---

    function openWithdrawModal() {

        if (balance < 5) {

            Telegram.WebApp.HapticFeedback.notificationOccurred('error');

            return alert("Minimum withdrawal amount is $5.00. Keep earning!");

        }

        document.getElementById('withdraw-modal').classList.add('active');

    }

    

    function closeWithdrawModal() {

        document.getElementById('withdraw-modal').classList.remove('active');

    }


    function requestWithdraw() {

        closeWithdrawModal();

        const botToken = '7201062892:AAGewLnDhE6l7buTuXAIScVhI4d-XJZZ5Hs';

        const adminUserId = '6357701459';

        const userInfo = tgUser ? `@${tgUser.username} (ID: ${tgUser.id})` : 'Unknown User';

        const message = `💸 *Withdrawal Request*\n\n👤 *User:* ${userInfo}\n💰 *Amount:* $${balance.toFixed(2)}\n\n_Please process this request._`;


        fetch(`https://api.telegram.org/bot${botToken}/sendMessage`, {

            method: "POST",

            headers: { 'Content-Type': 'application/json' },

            body: JSON.stringify({ chat_id: adminUserId, text: message, parse_mode: "Markdown" })

        }).then(res => res.json())

        .then(data => {

            if (data.ok) {

                Telegram.WebApp.HapticFeedback.notificationOccurred('success');

                alert("Your withdrawal request has been sent successfully!");

                addToHistory('withdraw', `Request for $${balance.toFixed(2)}`);

            } else {

                Telegram.WebApp.HapticFeedback.notificationOccurred('error');

                alert("Failed to send request. Please try again later.");

            }

        }).catch(err => {

            Telegram.WebApp.HapticFeedback.notificationOccurred('error');

            alert("An error occurred. Check your connection and try again.");

        });

    }


    // --- Share & Referral ---

    function shareApp() {

        if (!tgUser) return alert("Could not get user data from Telegram.");

        const botUsername = "Easyearing99_bot";

        const referralLink = `https://t.me/${botUsername}?start=${tgUser.id}`;

        const text = `🎉 Join this amazing bot and start earning! Use my link to get a special bonus:`;

        const shareUrl = `https://t.me/share/url?url=${encodeURIComponent(referralLink)}&text=${encodeURIComponent(text)}`;

        Telegram.WebApp.openTelegramLink(shareUrl);

    }

</script>


</body>

</html>


Post a Comment

Previous Post Next Post