Frequently Asked Questions

Quick answers to common questions about BZZE Ads SDK, integration, revenue, and more.

Quick Search: Use Ctrl+F (Windows) or ⌘+F (Mac) to search for keywords on this page.

Table of Contents


Getting Started

Q: How do I get started with BZZE Ads?

A: Follow these steps:

  1. Sign up at the Publisher Dashboard
  2. Create a new app/game
  3. Copy your App ID and API Key
  4. Follow our Quick Start Guide
  5. 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:

  1. Add our SDK script tag
  2. Call RewardedAd.init()
  3. 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:

Q: Where do I find my App ID and API Key?

A: Go to Publisher DashboardMy 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
Chrome60+
Firefox55+
Safari11+ (iOS 11+)
Edge79+ (Chromium)
IE 11Not 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():

JavaScript
// 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
  • onClose callback fires (instead of onReward)
  • ✅ 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)
  • onClose callback fires

Q: What if no ads are available?

A: When no ads are available (called "no fill"):

  • RewardedAd.isAdAvailable() returns false
  • onNoFill callback 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():

JavaScript
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 autoPreload for 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:

JavaScript
// 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
onRewardAd completed successfully - grant reward
onAdLoadedAd preloaded and ready
onAdShownAd started playing
onAdClickedUser clicked CTA button
onNoFillNo ads available
onCloseAd player closed
onErrorError occurred

See Callbacks & Events for details.

Q: How do I track analytics?

A: The SDK provides built-in analytics:

JavaScript
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:

JavaScript
RewardedAd.init({
    // ...config
    onAdShown: function() {
        pauseGame();
        muteGameAudio();
    },
    onClose: function() {
        resumeGame();
        unmuteGameAudio();
    }
});

Q: How do I check the cooldown time?

A: Use getCooldownRemaining():

JavaScript
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():

JavaScript
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:

  1. Show a consent dialog to EU users
  2. Get explicit consent for personalized ads
  3. Pass consent status to the SDK

See our GDPR Compliance Guide.

Q: How do I pass GDPR consent to the SDK?

A:

JavaScript
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:

JavaScript
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:

  1. Script tag is correct: <script src="https://ads.bzze.com/sdk/rewarded.min.js"></script>
  2. Script loads before your code
  3. Or wait for page load:
JavaScript
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:

  1. Go to Publisher Dashboard → My Games
  2. Click on your app
  3. Add your domain to "Allowed Domains"
  4. Include protocol: https://yourgame.com

Q: Reward callback not firing - what's wrong?

A: Common causes:

  • onReward callback 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:

  1. Publisher Dashboard: Real-time analytics with charts and detailed metrics
  2. 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!

JavaScript
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:

  1. ✅ Enable debug mode
  2. ✅ Test on multiple devices (mobile, desktop)
  3. ✅ Test on multiple browsers
  4. ✅ Test all callbacks (onReward, onNoFill, onError, etc.)
  5. ✅ Test cooldown behavior
  6. ✅ Test with slow network (3G simulation)
  7. ✅ Use our Pre-Launch Checklist

Still Have Questions?

📧 Contact Support:
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

Helpful Resources