| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Media Planning Tool</title> |
| <script src="https://cdn.tailwindcss.com"></script> |
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> |
| <style> |
| .gradient-bg { |
| background: linear-gradient(135deg, #6b73ff 0%, #000dff 100%); |
| } |
| .chart-container { |
| height: 300px; |
| position: relative; |
| } |
| .budget-bar { |
| transition: all 0.5s ease; |
| } |
| .fade-in { |
| animation: fadeIn 0.5s ease-in; |
| } |
| @keyframes fadeIn { |
| from { opacity: 0; transform: translateY(20px); } |
| to { opacity: 1; transform: translateY(0); } |
| } |
| </style> |
| </head> |
| <body class="bg-gray-50 min-h-screen"> |
| <div class="container mx-auto px-4 py-8"> |
| <header class="text-center mb-12"> |
| <h1 class="text-4xl font-bold text-gray-800 mb-2">Media Planning Tool</h1> |
| <p class="text-lg text-gray-600">Optimize your marketing budget allocation for maximum ROI</p> |
| </header> |
|
|
| <div class="grid grid-cols-1 lg:grid-cols-3 gap-8"> |
| |
| <div class="bg-white rounded-xl shadow-lg p-6 lg:col-span-1"> |
| <h2 class="text-2xl font-semibold text-gray-800 mb-6">Offer Details</h2> |
| <form id="mediaPlanForm" class="space-y-4"> |
| <div> |
| <label for="offerName" class="block text-sm font-medium text-gray-700 mb-1">Offer Name</label> |
| <input type="text" id="offerName" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500" placeholder="e.g. Summer Sale"> |
| </div> |
| |
| <div> |
| <label for="category" class="block text-sm font-medium text-gray-700 mb-1">Category</label> |
| <select id="category" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500"> |
| <option value="ecommerce">E-commerce</option> |
| <option value="saas">SaaS</option> |
| <option value="education">Education</option> |
| <option value="health">Health & Wellness</option> |
| <option value="finance">Finance</option> |
| <option value="other">Other</option> |
| </select> |
| </div> |
| |
| <div> |
| <label for="geo" class="block text-sm font-medium text-gray-700 mb-1">Target Geography</label> |
| <select id="geo" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500"> |
| <option value="global">Global</option> |
| <option value="north_america">North America</option> |
| <option value="europe">Europe</option> |
| <option value="asia">Asia</option> |
| <option value="latin_america">Latin America</option> |
| <option value="middle_east">Middle East</option> |
| </select> |
| </div> |
| |
| <div> |
| <label for="price" class="block text-sm font-medium text-gray-700 mb-1">Product/Service Price ($)</label> |
| <input type="number" id="price" min="0" step="0.01" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500" placeholder="e.g. 99.99"> |
| </div> |
| |
| <div> |
| <label for="cpa" class="block text-sm font-medium text-gray-700 mb-1">Desired CPA ($)</label> |
| <input type="number" id="cpa" min="0" step="0.01" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500" placeholder="e.g. 20.00"> |
| </div> |
| |
| <div> |
| <label for="budget" class="block text-sm font-medium text-gray-700 mb-1">Total Budget ($)</label> |
| <input type="number" id="budget" min="100" step="100" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500" placeholder="e.g. 5000"> |
| </div> |
| |
| <div> |
| <label for="duration" class="block text-sm font-medium text-gray-700 mb-1">Campaign Duration (weeks)</label> |
| <input type="number" id="duration" min="1" max="52" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500" placeholder="e.g. 4"> |
| </div> |
| |
| <div> |
| <label for="target" class="block text-sm font-medium text-gray-700 mb-1">Primary Target Audience</label> |
| <select id="target" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500"> |
| <option value="millennials">Millennials (25-40)</option> |
| <option value="gen_z">Gen Z (18-24)</option> |
| <option value="gen_x">Gen X (41-56)</option> |
| <option value="boomers">Boomers (57-75)</option> |
| <option value="women">Women</option> |
| <option value="men">Men</option> |
| <option value="business">Business Professionals</option> |
| </select> |
| </div> |
| |
| <button type="submit" class="w-full gradient-bg text-white py-3 px-6 rounded-lg font-medium hover:opacity-90 transition duration-300 flex items-center justify-center"> |
| <i class="fas fa-chart-pie mr-2"></i> Generate Media Plan |
| </button> |
| </form> |
| </div> |
| |
| |
| <div class="bg-white rounded-xl shadow-lg p-6 lg:col-span-2" id="resultsSection" style="display: none;"> |
| <div class="flex justify-between items-center mb-6"> |
| <h2 class="text-2xl font-semibold text-gray-800">Media Plan for <span id="planOfferName" class="text-blue-600"></span></h2> |
| <button id="printPlan" class="bg-gray-100 hover:bg-gray-200 text-gray-800 py-2 px-4 rounded-lg flex items-center"> |
| <i class="fas fa-print mr-2"></i> Print Plan |
| </button> |
| </div> |
| |
| <div class="grid grid-cols-1 md:grid-cols-2 gap-6 mb-8"> |
| <div class="bg-blue-50 rounded-xl p-4"> |
| <h3 class="font-medium text-blue-800 mb-2">Campaign Summary</h3> |
| <div class="space-y-2"> |
| <p><span class="font-medium">Budget:</span> $<span id="summaryBudget">0</span></p> |
| <p><span class="font-medium">Duration:</span> <span id="summaryDuration">0</span> weeks</p> |
| <p><span class="font-medium">Target CPA:</span> $<span id="summaryCPA">0</span></p> |
| <p><span class="font-medium">Geography:</span> <span id="summaryGeo">Global</span></p> |
| <p><span class="font-medium">Audience:</span> <span id="summaryAudience">All</span></p> |
| </div> |
| </div> |
| |
| <div class="bg-green-50 rounded-xl p-4"> |
| <h3 class="font-medium text-green-800 mb-2">Performance Projection</h3> |
| <div class="space-y-2"> |
| <p><span class="font-medium">Estimated Conversions:</span> <span id="projectedConversions">0</span></p> |
| <p><span class="font-medium">Projected Revenue:</span> $<span id="projectedRevenue">0</span></p> |
| <p><span class="font-medium">ROI:</span> <span id="projectedROI">0</span>%</p> |
| <p><span class="font-medium">Break-even Point:</span> <span id="breakEven">0</span> conversions</p> |
| </div> |
| </div> |
| </div> |
| |
| <h3 class="text-xl font-semibold text-gray-800 mb-4">Budget Allocation</h3> |
| <div class="chart-container mb-8"> |
| <div class="grid grid-cols-1 md:grid-cols-4 gap-4 h-full"> |
| <div class="flex flex-col justify-end"> |
| <div class="bg-blue-500 budget-bar rounded-t-lg" style="height: 0%;" id="paidAdsBar"> |
| <div class="text-center text-white py-1 font-medium">0%</div> |
| </div> |
| <div class="text-center mt-2 font-medium text-gray-700">Paid Ads</div> |
| </div> |
| <div class="flex flex-col justify-end"> |
| <div class="bg-purple-500 budget-bar rounded-t-lg" style="height: 0%;" id="socialMediaBar"> |
| <div class="text-center text-white py-1 font-medium">0%</div> |
| </div> |
| <div class="text-center mt-2 font-medium text-gray-700">Social Media</div> |
| </div> |
| <div class="flex flex-col justify-end"> |
| <div class="bg-green-500 budget-bar rounded-t-lg" style="height: 0%;" id="seoBar"> |
| <div class="text-center text-white py-1 font-medium">0%</div> |
| </div> |
| <div class="text-center mt-2 font-medium text-gray-700">SEO</div> |
| </div> |
| <div class="flex flex-col justify-end"> |
| <div class="bg-yellow-500 budget-bar rounded-t-lg" style="height: 0%;" id="contentBar"> |
| <div class="text-center text-white py-1 font-medium">0%</div> |
| </div> |
| <div class="text-center mt-2 font-medium text-gray-700">Content</div> |
| </div> |
| </div> |
| </div> |
| |
| <div class="grid grid-cols-1 md:grid-cols-2 gap-6 mb-8"> |
| <div class="bg-white border border-gray-200 rounded-xl p-4 fade-in"> |
| <h3 class="font-medium text-gray-800 mb-3 flex items-center"> |
| <i class="fas fa-ad mr-2 text-blue-500"></i> Paid Advertising |
| </h3> |
| <div class="space-y-3"> |
| <p><span class="font-medium">Budget:</span> $<span id="paidBudget">0</span></p> |
| <p><span class="font-medium">Recommended Platforms:</span></p> |
| <ul class="list-disc pl-5" id="paidPlatforms"> |
| |
| </ul> |
| <p class="text-sm text-gray-600 mt-2" id="paidNotes"> |
| |
| </p> |
| </div> |
| </div> |
| |
| <div class="bg-white border border-gray-200 rounded-xl p-4 fade-in"> |
| <h3 class="font-medium text-gray-800 mb-3 flex items-center"> |
| <i class="fas fa-share-alt mr-2 text-purple-500"></i> Social Media |
| </h3> |
| <div class="space-y-3"> |
| <p><span class="font-medium">Budget:</span> $<span id="socialBudget">0</span></p> |
| <p><span class="font-medium">Recommended Platforms:</span></p> |
| <ul class="list-disc pl-5" id="socialPlatforms"> |
| |
| </ul> |
| <p class="text-sm text-gray-600 mt-2" id="socialNotes"> |
| |
| </p> |
| </div> |
| </div> |
| |
| <div class="bg-white border border-gray-200 rounded-xl p-4 fade-in"> |
| <h3 class="font-medium text-gray-800 mb-3 flex items-center"> |
| <i class="fas fa-search mr-2 text-green-500"></i> SEO |
| </h3> |
| <div class="space-y-3"> |
| <p><span class="font-medium">Budget:</span> $<span id="seoBudget">0</span></p> |
| <p><span class="font-medium">Focus Areas:</span></p> |
| <ul class="list-disc pl-5" id="seoFocus"> |
| |
| </ul> |
| <p class="text-sm text-gray-600 mt-2" id="seoNotes"> |
| |
| </p> |
| </div> |
| </div> |
| |
| <div class="bg-white border border-gray-200 rounded-xl p-4 fade-in"> |
| <h3 class="font-medium text-gray-800 mb-3 flex items-center"> |
| <i class="fas fa-pen-fancy mr-2 text-yellow-500"></i> Content Marketing |
| </h3> |
| <div class="space-y-3"> |
| <p><span class="font-medium">Budget:</span> $<span id="contentBudget">0</span></p> |
| <p><span class="font-medium">Content Types:</span></p> |
| <ul class="list-disc pl-5" id="contentTypes"> |
| |
| </ul> |
| <p class="text-sm text-gray-600 mt-2" id="contentNotes"> |
| |
| </p> |
| </div> |
| </div> |
| </div> |
| |
| <div class="bg-gray-50 rounded-xl p-4 border border-gray-200 fade-in"> |
| <h3 class="font-medium text-gray-800 mb-3 flex items-center"> |
| <i class="fas fa-lightbulb mr-2 text-orange-500"></i> Strategic Recommendations |
| </h3> |
| <div class="space-y-2" id="recommendations"> |
| |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
|
|
| <script> |
| document.addEventListener('DOMContentLoaded', function() { |
| const form = document.getElementById('mediaPlanForm'); |
| const resultsSection = document.getElementById('resultsSection'); |
| const printButton = document.getElementById('printPlan'); |
| |
| form.addEventListener('submit', function(e) { |
| e.preventDefault(); |
| generateMediaPlan(); |
| resultsSection.style.display = 'block'; |
| window.scrollTo({ |
| top: document.getElementById('resultsSection').offsetTop - 20, |
| behavior: 'smooth' |
| }); |
| }); |
| |
| printButton.addEventListener('click', function() { |
| window.print(); |
| }); |
| |
| function generateMediaPlan() { |
| |
| const offerName = document.getElementById('offerName').value || 'Your Offer'; |
| const category = document.getElementById('category').value; |
| const geo = document.getElementById('geo').value; |
| const price = parseFloat(document.getElementById('price').value) || 0; |
| const cpa = parseFloat(document.getElementById('cpa').value) || 0; |
| const budget = parseFloat(document.getElementById('budget').value) || 0; |
| const duration = parseInt(document.getElementById('duration').value) || 1; |
| const target = document.getElementById('target').value; |
| |
| |
| document.getElementById('planOfferName').textContent = offerName; |
| document.getElementById('summaryBudget').textContent = budget.toLocaleString(); |
| document.getElementById('summaryDuration').textContent = duration; |
| document.getElementById('summaryCPA').textContent = cpa.toLocaleString(); |
| document.getElementById('summaryGeo').textContent = getGeoName(geo); |
| document.getElementById('summaryAudience').textContent = getAudienceName(target); |
| |
| |
| const estimatedConversions = Math.floor(budget / cpa); |
| const projectedRevenue = estimatedConversions * price; |
| const roi = ((projectedRevenue - budget) / budget * 100).toFixed(1); |
| const breakEven = Math.ceil(budget / price); |
| |
| document.getElementById('projectedConversions').textContent = estimatedConversions.toLocaleString(); |
| document.getElementById('projectedRevenue').textContent = projectedRevenue.toLocaleString(); |
| document.getElementById('projectedROI').textContent = roi; |
| document.getElementById('breakEven').textContent = breakEven.toLocaleString(); |
| |
| |
| const allocation = calculateAllocation(category, geo, target, budget, duration); |
| |
| |
| animateBudgetBars(allocation); |
| |
| |
| document.getElementById('paidBudget').textContent = allocation.paid.toLocaleString(); |
| document.getElementById('socialBudget').textContent = allocation.social.toLocaleString(); |
| document.getElementById('seoBudget').textContent = allocation.seo.toLocaleString(); |
| document.getElementById('contentBudget').textContent = allocation.content.toLocaleString(); |
| |
| |
| setPlatformRecommendations(category, geo, target, allocation); |
| |
| |
| setStrategicRecommendations(category, geo, target, budget, duration, price, cpa); |
| } |
| |
| function calculateAllocation(category, geo, target, budget, duration) { |
| |
| let paidPercent = 40; |
| let socialPercent = 30; |
| let seoPercent = 20; |
| let contentPercent = 10; |
| |
| |
| if (category === 'ecommerce') { |
| paidPercent = 50; |
| socialPercent = 25; |
| seoPercent = 15; |
| contentPercent = 10; |
| } else if (category === 'saas') { |
| paidPercent = 35; |
| socialPercent = 25; |
| seoPercent = 30; |
| contentPercent = 10; |
| } else if (category === 'education') { |
| paidPercent = 30; |
| socialPercent = 35; |
| seoPercent = 20; |
| contentPercent = 15; |
| } |
| |
| |
| if (geo === 'north_america' || geo === 'europe') { |
| paidPercent += 5; |
| socialPercent -= 5; |
| } else if (geo === 'asia') { |
| socialPercent += 10; |
| paidPercent -= 5; |
| seoPercent -= 5; |
| } |
| |
| |
| if (target === 'gen_z' || target === 'millennials') { |
| socialPercent += 10; |
| paidPercent -= 5; |
| seoPercent -= 5; |
| } else if (target === 'gen_x' || target === 'boomers') { |
| paidPercent += 10; |
| socialPercent -= 5; |
| contentPercent -= 5; |
| } |
| |
| |
| if (budget < 1000) { |
| paidPercent = 70; |
| socialPercent = 20; |
| seoPercent = 5; |
| contentPercent = 5; |
| } else if (budget > 10000) { |
| seoPercent += 5; |
| contentPercent += 5; |
| paidPercent -= 5; |
| socialPercent -= 5; |
| } |
| |
| |
| if (duration > 8) { |
| seoPercent += 5; |
| contentPercent += 5; |
| paidPercent -= 5; |
| socialPercent -= 5; |
| } |
| |
| |
| return { |
| paid: Math.round(budget * paidPercent / 100), |
| social: Math.round(budget * socialPercent / 100), |
| seo: Math.round(budget * seoPercent / 100), |
| content: Math.round(budget * contentPercent / 100), |
| paidPercent, |
| socialPercent, |
| seoPercent, |
| contentPercent |
| }; |
| } |
| |
| function animateBudgetBars(allocation) { |
| const paidBar = document.getElementById('paidAdsBar'); |
| const socialBar = document.getElementById('socialMediaBar'); |
| const seoBar = document.getElementById('seoBar'); |
| const contentBar = document.getElementById('contentBar'); |
| |
| setTimeout(() => { |
| paidBar.style.height = allocation.paidPercent + '%'; |
| paidBar.querySelector('div').textContent = allocation.paidPercent + '%'; |
| |
| socialBar.style.height = allocation.socialPercent + '%'; |
| socialBar.querySelector('div').textContent = allocation.socialPercent + '%'; |
| |
| seoBar.style.height = allocation.seoPercent + '%'; |
| seoBar.querySelector('div').textContent = allocation.seoPercent + '%'; |
| |
| contentBar.style.height = allocation.contentPercent + '%'; |
| contentBar.querySelector('div').textContent = allocation.contentPercent + '%'; |
| }, 100); |
| } |
| |
| function setPlatformRecommendations(category, geo, target, allocation) { |
| |
| const paidPlatforms = document.getElementById('paidPlatforms'); |
| paidPlatforms.innerHTML = ''; |
| |
| let paidItems = ['Google Ads (Search & Display)']; |
| if (category === 'ecommerce') paidItems.push('Google Shopping'); |
| if (target === 'gen_z' || target === 'millennials') paidItems.push('TikTok Ads'); |
| if (geo === 'north_america') paidItems.push('Facebook Ads', 'Instagram Ads'); |
| if (geo === 'asia') paidItems.push('Baidu Ads (China)', 'Naver Ads (Korea)'); |
| |
| paidItems.forEach(item => { |
| const li = document.createElement('li'); |
| li.textContent = item; |
| paidPlatforms.appendChild(li); |
| }); |
| |
| document.getElementById('paidNotes').textContent = getPaidNotes(category, geo, target, allocation.paid); |
| |
| |
| const socialPlatforms = document.getElementById('socialPlatforms'); |
| socialPlatforms.innerHTML = ''; |
| |
| let socialItems = ['Instagram']; |
| if (target === 'gen_z') socialItems.push('TikTok', 'Snapchat'); |
| if (target === 'millennials') socialItems.push('Facebook', 'LinkedIn'); |
| if (target === 'business') socialItems.push('LinkedIn', 'Twitter'); |
| if (geo === 'asia') socialItems.push('WeChat (China)', 'Line (Japan/Thailand)'); |
| |
| socialItems.forEach(item => { |
| const li = document.createElement('li'); |
| li.textContent = item; |
| socialPlatforms.appendChild(li); |
| }); |
| |
| document.getElementById('socialNotes').textContent = getSocialNotes(category, target, allocation.social); |
| |
| |
| const seoFocus = document.getElementById('seoFocus'); |
| seoFocus.innerHTML = ''; |
| |
| let seoItems = ['Keyword optimization', 'Technical SEO']; |
| if (category === 'ecommerce') seoItems.push('Product page optimization'); |
| if (category === 'saas') seoItems.push('Blog content strategy', 'Landing page optimization'); |
| if (allocation.seo > 1000) seoItems.push('Link building', 'Content marketing'); |
| |
| seoItems.forEach(item => { |
| const li = document.createElement('li'); |
| li.textContent = item; |
| seoFocus.appendChild(li); |
| }); |
| |
| document.getElementById('seoNotes').textContent = getSeoNotes(category, allocation.seo); |
| |
| |
| const contentTypes = document.getElementById('contentTypes'); |
| contentTypes.innerHTML = ''; |
| |
| let contentItems = ['Blog posts']; |
| if (target === 'gen_z') contentItems.push('Short-form videos', 'Memes'); |
| if (target === 'millennials') contentItems.push('How-to guides', 'Case studies'); |
| if (target === 'business') contentItems.push('Whitepapers', 'Webinars'); |
| if (category === 'ecommerce') contentItems.push('Product videos', 'User-generated content'); |
| |
| contentItems.forEach(item => { |
| const li = document.createElement('li'); |
| li.textContent = item; |
| contentTypes.appendChild(li); |
| }); |
| |
| document.getElementById('contentNotes').textContent = getContentNotes(target, allocation.content); |
| } |
| |
| function setStrategicRecommendations(category, geo, target, budget, duration, price, cpa) { |
| const recommendations = document.getElementById('recommendations'); |
| recommendations.innerHTML = ''; |
| |
| |
| addRecommendation(`Focus on platforms where your target audience (${getAudienceName(target)}) is most active.`); |
| |
| |
| if (budget < 1000) { |
| addRecommendation('With a limited budget, focus on 1-2 high-impact channels rather than spreading too thin.'); |
| } else if (budget > 5000) { |
| addRecommendation('Consider A/B testing different ad creatives and audiences to optimize performance.'); |
| } |
| |
| |
| if (duration < 4) { |
| addRecommendation('For short campaigns, prioritize paid channels for immediate results.'); |
| } else { |
| addRecommendation('With a longer campaign duration, invest in SEO and content marketing for sustainable growth.'); |
| } |
| |
| |
| if (cpa > price * 0.5) { |
| addRecommendation('Your target CPA is high relative to product price. Focus on higher conversion rate strategies.', 'warning'); |
| } |
| |
| |
| if (geo === 'asia') { |
| addRecommendation('Localize your content and ads for Asian markets, considering cultural differences.'); |
| } else if (geo === 'europe') { |
| addRecommendation('Be mindful of GDPR compliance in your marketing efforts.'); |
| } |
| |
| |
| if (category === 'ecommerce') { |
| addRecommendation('Implement retargeting ads to capture abandoned carts and boost conversions.'); |
| } else if (category === 'saas') { |
| addRecommendation('Develop a lead nurturing sequence to convert free trials to paid subscriptions.'); |
| } |
| } |
| |
| function addRecommendation(text, type = 'info') { |
| const rec = document.createElement('div'); |
| rec.className = `flex items-start p-3 rounded-lg ${type === 'warning' ? 'bg-yellow-50 text-yellow-800' : 'bg-blue-50 text-blue-800'}`; |
| |
| const icon = document.createElement('i'); |
| icon.className = `fas ${type === 'warning' ? 'fa-exclamation-circle mt-1 mr-3' : 'fa-info-circle mt-1 mr-3'}`; |
| |
| rec.appendChild(icon); |
| |
| const textNode = document.createElement('span'); |
| textNode.textContent = text; |
| rec.appendChild(textNode); |
| |
| document.getElementById('recommendations').appendChild(rec); |
| } |
| |
| function getGeoName(geo) { |
| const geoMap = { |
| 'global': 'Global', |
| 'north_america': 'North America', |
| 'europe': 'Europe', |
| 'asia': 'Asia', |
| 'latin_america': 'Latin America', |
| 'middle_east': 'Middle East' |
| }; |
| return geoMap[geo] || geo; |
| } |
| |
| function getAudienceName(target) { |
| const audienceMap = { |
| 'millennials': 'Millennials (25-40)', |
| 'gen_z': 'Gen Z (18-24)', |
| 'gen_x': 'Gen X (41-56)', |
| 'boomers': 'Boomers (57-75)', |
| 'women': 'Women', |
| 'men': 'Men', |
| 'business': 'Business Professionals' |
| }; |
| return audienceMap[target] || target; |
| } |
| |
| function getPaidNotes(category, geo, target, budget) { |
| let notes = ''; |
| |
| if (budget < 500) { |
| notes = 'Focus on search ads for high-intent traffic. Consider remarketing to maximize impact.'; |
| } else { |
| notes = 'Test multiple ad formats (search, display, video) and optimize based on performance.'; |
| |
| if (category === 'ecommerce') { |
| notes += ' Prioritize shopping ads and dynamic remarketing.'; |
| } |
| |
| if (target === 'gen_z') { |
| notes += ' Allocate a portion to TikTok ads for maximum reach with younger audiences.'; |
| } |
| } |
| |
| return notes; |
| } |
| |
| function getSocialNotes(category, target, budget) { |
| let notes = ''; |
| |
| if (budget < 300) { |
| notes = 'Focus on organic growth and 1-2 paid social campaigns. User-generated content works well.'; |
| } else { |
| notes = 'Test different content formats (images, videos, stories) and analyze engagement.'; |
| |
| if (target === 'business') { |
| notes += ' LinkedIn sponsored content can be highly effective for B2B.'; |
| } |
| |
| if (category === 'education') { |
| notes += ' Educational content and live Q&A sessions perform well in this category.'; |
| } |
| } |
| |
| return notes; |
| } |
| |
| function getSeoNotes(category, budget) { |
| let notes = ''; |
| |
| if (budget < 500) { |
| notes = 'Focus on on-page SEO improvements and basic technical fixes.'; |
| } else { |
| notes = 'Consider investing in content creation and link building for long-term growth.'; |
| |
| if (category === 'saas') { |
| notes += ' Create comprehensive guides and tutorials targeting relevant keywords.'; |
| } |
| } |
| |
| return notes; |
| } |
| |
| function getContentNotes(target, budget) { |
| let notes = ''; |
| |
| if (budget < 300) { |
| notes = 'Repurpose content across multiple platforms to maximize reach.'; |
| } else { |
| notes = 'Invest in high-quality, professional content that showcases your expertise.'; |
| |
| if (target === 'gen_z') { |
| notes += ' Short, engaging video content works best for this audience.'; |
| } |
| } |
| |
| return notes; |
| } |
| }); |
| </script> |
| <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=jaypatch/myhftools" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> |
| </html> |