Frequently Asked Questions
Quick answers to common questions about BZZE Ads SDK, integration, revenue, and more.
Table of Contents
- Getting Started
- Integration & Setup
- Platform & Framework Support
- Ad Behavior & Display
- Revenue & Payments
- Technical Questions
- GDPR, COPPA & Compliance
- Troubleshooting
- Analytics & Metrics
- Best Practices
Getting Started
Q: How do I get started with BZZE Ads?
A: Follow these steps:
- Sign up at the Publisher Dashboard
- Create a new app/game
- Copy your App ID and API Key
- Follow our Quick Start Guide
- Test with the Live Demo
Q: Is BZZE Ads free to use?
A: Yes! There are no upfront costs, monthly fees, or minimum requirements. We use a revenue share model: you keep 80% of ad revenue, we take 20% as our platform fee. Learn more about Revenue Share.
Q: What types of ads does BZZE Ads support?
A: Currently we support rewarded video ads only. These are full-screen video ads where users watch to earn in-game rewards (coins, lives, power-ups, etc.). Banner ads and interstitial ads may be added in the future based on demand.
Q: How long does integration take?
A: Most developers complete basic integration in 15-30 minutes. It's just 3 steps:
- Add our SDK script tag
- Call
RewardedAd.init() - Call
RewardedAd.showAd()when needed
Q: Do I need approval to start using BZZE Ads?
A: No approval needed! Once you sign up and create an app, you can start integrating immediately. Ads will start serving as soon as you go live.
Integration & Setup
Q: Do I need a server or backend to use BZZE Ads?
A: No! The SDK works entirely client-side. Just include our script tag in your HTML, and you're ready to go. No server, database, or backend required.
Q: Can I use BZZE Ads with multiple games/apps?
A: Yes! Create separate apps in your Publisher Dashboard. Each app gets its own App ID and API Key. You can track analytics and earnings separately for each app.
Q: Can I test ads before going live?
A: Absolutely! Use:
- Debug Mode:
RewardedAd.enableDebug()- See detailed console logs - Live Demo: Test on our demo page
- Test Checklist: Follow our Pre-Launch Checklist
Q: Where do I find my App ID and API Key?
A: Go to Publisher Dashboard → My Games → Click on your app → Copy the credentials from the settings panel.
Q: Can I regenerate my API Key?
A: Yes, in your Publisher Dashboard under app settings. Note that regenerating will invalidate the old key, so update all your integrations.
Q: Do I need to whitelist my domain?
A: Domain whitelisting is optional. If enabled in your app settings, only requests from whitelisted domains will be accepted. This adds an extra security layer but isn't required.
Platform & Framework Support
Q: Which platforms and frameworks are supported?
A: BZZE Ads works with any web-based platform that runs JavaScript:
- ✅ HTML5 Games (vanilla JavaScript)
- ✅ React (web apps and games)
- ✅ Phaser (HTML5 game engine)
- ✅ Godot (HTML5 export)
- ✅ Construct 3 (HTML5 games)
- ✅ Unity WebGL (browser games)
- ✅ Vue, Angular, Next.js (any JS framework)
See our Integration Guides for specific examples.
Q: Can I use BZZE Ads in native mobile apps (iOS/Android)?
A: If your app uses a WebView (like Cordova, Capacitor, or PhoneGap), then yes! The SDK works perfectly in WebViews. See our Mobile & WebView Guide.
For pure native apps (Swift/Kotlin), a native SDK is not available yet but may be added in the future.
Q: Does it work on mobile web browsers?
A: Yes! The SDK is fully mobile-responsive and works on:
- iOS Safari
- Android Chrome
- Mobile Firefox
- Any modern mobile browser
Q: What are the minimum browser requirements?
A: The SDK requires modern browser features:
| Browser | Minimum Version |
|---|---|
| Chrome | 60+ |
| Firefox | 55+ |
| Safari | 11+ (iOS 11+) |
| Edge | 79+ (Chromium) |
| IE 11 | Not supported |
Q: Can I use BZZE Ads with Unity?
A: Yes, for Unity WebGL builds! Export your game to WebGL and integrate using JavaScript interop. See our Unity WebGL Guide.
Ad Behavior & Display
Q: How do I show an ad?
A: Simply call RewardedAd.showAd():
// Show ad when user clicks button
document.getElementById('watchAdBtn').addEventListener('click', function() {
if (RewardedAd.isAdAvailable()) {
RewardedAd.showAd();
} else {
alert('No ad available right now');
}
});
Q: When do users earn rewards?
A: Users earn rewards when they complete the video ad (watch it fully to the end). Your onReward callback fires when the ad is completed.
Q: What happens if a user closes the ad early?
A: If the user closes the ad before completion:
- ❌ No reward is granted
- ✅
onClosecallback fires (instead ofonReward) - ✅ You can show a message like "Watch the full ad to earn reward!"
Q: Can users skip ads?
A: Some ads allow skipping after 5-10 seconds. This is controlled by the advertiser. If an ad is skipped:
- ❌ No reward granted (unless they watched enough)
- ✅
onClosecallback fires
Q: What if no ads are available?
A: When no ads are available (called "no fill"):
RewardedAd.isAdAvailable()returnsfalseonNoFillcallback fires- Show a friendly message: "No ads available right now, try again later!"
- Offer alternative ways to earn (complete quest, invite friend, etc.)
Q: How often can users watch ads?
A: There are frequency caps to prevent abuse:
- 60-second cooldown between ads
- 10 ads per hour maximum
- 50 ads per day maximum
These limits are enforced both client-side and server-side. See Frequency Capping.
Q: How do I check if an ad is available?
A: Use isAdAvailable():
if (RewardedAd.isAdAvailable()) {
// Ad is ready to show
showAdButton.disabled = false;
} else {
// No ad available or cooldown active
showAdButton.disabled = true;
}
Q: What's the difference between preloading and showing ads?
A:
- Preloading: Downloads ad in advance (in background) so it's ready instantly
- Showing: Displays the ad to the user
Enable autoPreload: true for the best user experience - ads show instantly with no loading delay.
Q: Can I customize the video player appearance?
A: The player UI is managed by BZZE Ads to ensure consistency and optimal performance. You control when ads show, but not the player design itself.
Q: How long are the video ads?
A: Most video ads are 15-30 seconds long. Some can be up to 60 seconds. The duration is set by the advertiser.
Q: Do I control what reward users get?
A: Yes! You manage rewards in your game logic. When onReward fires, you decide what to give (coins, lives, power-ups, etc.). BZZE Ads only tells you when to grant the reward, not what reward to give.
Revenue & Payments
Q: How much money can I make?
A: Revenue varies based on:
- Geography: US/UK/CA users = $10-25 CPM. Other regions = $2-8 CPM
- Impressions: More ad views = more revenue
- Completion Rate: Higher completion rates = higher CPM
Example: With 100,000 impressions/month at $10 CPM:
- Gross revenue: $1,000
- Your share (80%): $800/month
Use our Revenue Calculator to estimate earnings.
Q: What is CPM?
A: CPM = Cost Per Mille (per 1000 impressions). It's how much advertisers pay for 1000 ad views. Higher CPM = more money for you.
Q: What's the revenue split?
A:
- You: 80%
- BZZE Ads: 20%
This is industry-leading. Most platforms take 30-50%. Learn more about Revenue Share.
Q: When do I get paid?
A: Payments are processed monthly, within 30 days of month end. For example:
- January earnings → Paid by February 30th
- February earnings → Paid by March 30th
Q: What's the minimum payout threshold?
A: $50 USD. If you earn less than $50 in a month, your earnings automatically roll over to the next month until you reach the threshold.
Q: How do I get paid?
A: Currently PayPal only. Add your PayPal email in Publisher Dashboard → Settings → Payment Information. Wire transfers and other methods may be added later.
Q: Are there any payment fees?
A: No! We cover all PayPal fees. The amount shown in your dashboard is exactly what you receive.
Q: How do I maximize my earnings?
A: Follow these tips:
- ✅ Enable
autoPreloadfor higher fill rates - ✅ Show ads at natural breakpoints (level complete, game over)
- ✅ Encourage ad completion with valuable rewards
- ✅ Target Tier 1 countries (US, UK, CA, AU)
- ✅ Optimize for high viewability and completion rates
Read our complete guide: Maximize Your Earnings.
Q: Do I need to pay taxes on my earnings?
A: Yes, ad revenue is taxable income. We provide:
- US Publishers: 1099-MISC form (if earnings > $600/year)
- International Publishers: Payment receipts for your records
Consult with a tax professional for your specific situation. See Tax Information.
Technical Questions
Q: How do I enable debug mode?
A: Call RewardedAd.enableDebug() before initialization:
// Enable debug mode for detailed logs
RewardedAd.enableDebug();
RewardedAd.init({
appId: "YOUR_APP_ID",
apiKey: "YOUR_API_KEY",
userId: "user_123"
});
This shows detailed console logs for debugging. Disable in production with RewardedAd.disableDebug().
Q: What callbacks are available?
A: The SDK provides these callbacks:
| Callback | When It Fires |
|---|---|
onReward | Ad completed successfully - grant reward |
onAdLoaded | Ad preloaded and ready |
onAdShown | Ad started playing |
onAdClicked | User clicked CTA button |
onNoFill | No ads available |
onClose | Ad player closed |
onError | Error occurred |
See Callbacks & Events for details.
Q: How do I track analytics?
A: The SDK provides built-in analytics:
const analytics = RewardedAd.getAnalytics();
console.log(analytics);
// Output: {
// impressions: 10,
// completions: 8,
// clicks: 2,
// errors: { 480: 1 },
// viewableImpressions: 9
// }
See Analytics API.
Q: Can I pause my game during ads?
A: Yes, and you should! Use the onAdShown and onClose callbacks:
RewardedAd.init({
// ...config
onAdShown: function() {
pauseGame();
muteGameAudio();
},
onClose: function() {
resumeGame();
unmuteGameAudio();
}
});
Q: How do I check the cooldown time?
A: Use getCooldownRemaining():
const seconds = RewardedAd.getCooldownRemaining();
if (seconds > 0) {
console.log(`Wait ${seconds} seconds before next ad`);
} else {
console.log('Ready to show ad!');
}
Q: What are viewability tracking and why does it matter?
A: Viewability tracks if ads are actually seen by users (50%+ visible for 2+ seconds). Higher viewability = higher CPMs = more revenue for you. BZZE Ads automatically tracks viewability. See Viewability Tracking.
Q: Can I get SDK info programmatically?
A: Yes, use getInfo():
const info = RewardedAd.getInfo();
console.log(info);
// Output: {
// version: "2.0.0",
// isInitialized: true,
// appId: "app_123",
// userId: "user_456",
// rateLimits: { hourly: 5, daily: 20, maxPerHour: 10, maxPerDay: 50 }
// }
GDPR, COPPA & Compliance
Q: Do I need to implement GDPR consent?
A: Yes, if you have users in the European Union (EU). You must:
- Show a consent dialog to EU users
- Get explicit consent for personalized ads
- Pass consent status to the SDK
See our GDPR Compliance Guide.
Q: How do I pass GDPR consent to the SDK?
A:
RewardedAd.init({
appId: "YOUR_APP_ID",
apiKey: "YOUR_API_KEY",
userId: "user_123",
gdprApplies: true, // User is in EU
gdprConsent: "1YNN" // User's consent string
});
Q: What happens if a user declines GDPR consent?
A: They'll receive non-personalized (contextual) ads only. These have:
- Lower fill rates (60-75% vs 85-95%)
- Lower CPMs ($5-8 vs $10-15)
- But still generate revenue!
Q: Is BZZE Ads COPPA compliant?
A: Yes! If your app is directed at children under 13 (US law), set:
RewardedAd.init({
appId: "YOUR_APP_ID",
apiKey: "YOUR_API_KEY",
userId: "user_123",
coppaCompliant: true // OR isChildDirected: true
});
This ensures only COPPA-compliant ads are served. See COPPA Guide.
Q: Do you collect personal data?
A: We collect minimal data needed for ad serving:
- IP address (for geo-targeting)
- User agent (for device detection)
- Anonymous user ID (you provide)
No names, emails, or sensitive personal information. See our Privacy Policy.
Troubleshooting
Q: "RewardedAd is not defined" error - how do I fix it?
A: This means the SDK script hasn't loaded. Make sure:
- Script tag is correct:
<script src="https://ads.bzze.com/sdk/rewarded.min.js"></script> - Script loads before your code
- Or wait for page load:
window.addEventListener('load', function() {
RewardedAd.init({ ... });
});
Q: "401 Unauthorized" error - what does this mean?
A: Your App ID or API Key is incorrect. Double-check:
- ✅ App ID matches exactly (no typos)
- ✅ API Key matches exactly
- ✅ App is Active (not paused) in dashboard
- ✅ Domain is whitelisted (if domain restrictions enabled)
Q: Ads aren't filling - what should I check?
A: Low fill rates can be caused by:
- Low ad inventory in your geography
- Rate limits reached (10/hour, 50/day)
- Cooldown active (60 seconds between ads)
Enable debug mode and check console logs. See Troubleshooting Guide.
Q: "CORS error" - how do I fix this?
A: If domain restrictions are enabled:
- Go to Publisher Dashboard → My Games
- Click on your app
- Add your domain to "Allowed Domains"
- Include protocol:
https://yourgame.com
Q: Reward callback not firing - what's wrong?
A: Common causes:
- ❌
onRewardcallback not defined in init config - ❌ User didn't complete the ad (closed early)
- ❌ JavaScript error in your callback function
Enable debug mode to see detailed logs.
Q: Where can I find more troubleshooting help?
A: Check our comprehensive Troubleshooting Guide with solutions to 8+ common issues.
Analytics & Metrics
Q: How do I view my analytics?
A: Two ways:
- Publisher Dashboard: Real-time analytics with charts and detailed metrics
- SDK Analytics:
RewardedAd.getAnalytics()for client-side session data
Q: What metrics are tracked?
A: Key metrics include:
- Impressions: Number of ads shown
- Completions: Number of ads watched fully
- Completion Rate: % of ads completed
- Clicks: Number of CTA button clicks
- Fill Rate: % of requests that returned an ad
- Revenue: Total earnings
- CPM: Earnings per 1000 impressions
- Viewability: % of ads actually seen
Q: What's a good fill rate?
A: Target 80-95%. If yours is lower:
- Enable
autoPreload: true - Check for rate limit issues
- Verify your geography has good ad inventory
Q: What's a good completion rate?
A: Target 85-95%. To improve:
- Offer valuable rewards (motivates completion)
- Show ads at natural breakpoints
- Don't show too many ads (causes fatigue)
Q: How often do analytics update?
A: Publisher Dashboard analytics update every 5-15 minutes. It's near real-time but not instant.
Best Practices
Q: When should I show ads?
A: Show ads at natural breakpoints:
- ✅ After completing a level
- ✅ On game over screen
- ✅ Before boss battles (offer power-up)
- ✅ Daily reward bonuses (2x coins for ad)
- ❌ Never mid-gameplay or during action
Q: How often should I show ads?
A: Balance revenue and user experience:
- Recommended: 1-2 ads per session
- Maximum: 3-4 ads per session
- Frequency: Every 5-10 minutes of gameplay
Too many ads = user frustration and uninstalls.
Q: Should I make ads optional or forced?
A: Optional (rewarded) ads perform better!
- ✅ Users choose to watch → higher completion rates
- ✅ Better user experience → higher retention
- ✅ Higher CPMs (advertisers pay more)
Forced ads are annoying and reduce retention.
Q: What makes a good reward?
A: Valuable but balanced rewards:
- ✅ Extra currency (50-100 coins)
- ✅ Extra lives (1-2 lives)
- ✅ Power-ups or boosts
- ✅ 2x daily bonus
- ❌ Too small (10 coins) - not motivating
- ❌ Too large (unlimited coins) - breaks game economy
Q: Should I enable auto-preload?
A: Yes, always!
RewardedAd.init({
appId: "YOUR_APP_ID",
apiKey: "YOUR_API_KEY",
userId: "user_123",
autoPreload: true, // ✅ Always enable
preloadCount: 2 // ✅ Keep 2 ads ready
});
Benefits:
- ✅ Ads show instantly (no loading)
- ✅ Higher fill rates
- ✅ Better user experience
Q: How do I test my integration properly?
A: Follow this checklist:
- ✅ Enable debug mode
- ✅ Test on multiple devices (mobile, desktop)
- ✅ Test on multiple browsers
- ✅ Test all callbacks (onReward, onNoFill, onError, etc.)
- ✅ Test cooldown behavior
- ✅ Test with slow network (3G simulation)
- ✅ Use our Pre-Launch Checklist
Still Have Questions?
Email us at support@bzze.com or visit Contact Support.
⏱️ Response Time: Within 24-48 hours
📝 Include in Your Email:
- App ID (first 8 characters)
- Browser and OS version
- Error messages (if any)
- Steps to reproduce the issue