Test Checklist

Complete checklist to verify your BZZE Ads integration is production-ready. Test all scenarios before launching.

✅ Pre-Launch Checklist

1. Basic Integration (Required)

  • ☐ SDK loads without errors
  • RewardedAd.init() succeeds
  • ☐ Valid App ID and API Key configured
  • onReward callback grants reward correctly
  • ☐ Ad plays fullscreen
  • ☐ User can complete ad and earn reward

2. Error Handling (Required)

  • onNoFill callback shows user-friendly message
  • onError callback logs errors properly
  • onClose callback handles early exits
  • ☐ Network errors don't crash game
  • ☐ Invalid credentials show clear error

3. User Experience (Required)

  • ☐ Ad button shows reward preview ("100 coins")
  • ☐ Button disabled when no ads available
  • ☐ Loading state shown while fetching ads
  • ☐ Video plays smoothly without stuttering
  • ☐ Audio works correctly
  • ☐ Skip button appears after allowed time
  • ☐ CTA button works (if applicable)

4. Mobile Testing (Required)

  • ☐ Works on iOS (Safari)
  • ☐ Works on Android (Chrome)
  • ☐ Fullscreen works on mobile
  • ☐ Touch controls work
  • ☐ Rotation handled correctly

5. GDPR/COPPA (If Applicable)

  • ☐ Consent popup shows for EU users
  • gdprConsent passed to SDK
  • ☐ Ads respect user's consent choice
  • ☐ COPPA flags set if child-directed

6. Analytics (Recommended)

  • ☐ Impressions tracking in dashboard
  • ☐ Completions tracking correctly
  • ☐ Revenue appearing in dashboard
  • ☐ Fill rate makes sense

Testing Script

Copy this script to test your integration:

JavaScript - Test Script
// Enable debug mode
RewardedAd.enableDebug();

// Track test results
const testResults = {
    init: false,
    adLoaded: false,
    adShown: false,
    rewardGranted: false,
    errors: []
};

// Initialize SDK
RewardedAd.init({
    appId: "YOUR_APP_ID",
    apiKey: "YOUR_API_KEY",
    userId: "test_user_" + Date.now(),
    
    onAdLoaded: function(count) {
        console.log('✅ TEST PASS: Ad preloaded (' + count + ')');
        testResults.adLoaded = true;
    },
    
    onAdShown: function() {
        console.log('✅ TEST PASS: Ad is playing');
        testResults.adShown = true;
    },
    
    onReward: function(reward) {
        console.log('✅ TEST PASS: Reward earned!', reward);
        testResults.rewardGranted = true;
        printTestResults();
    },
    
    onNoFill: function() {
        console.warn('⚠️ TEST WARNING: No ads available');
        printTestResults();
    },
    
    onError: function(error) {
        console.error('❌ TEST FAIL: Error occurred', error);
        testResults.errors.push(error);
        printTestResults();
    }
});

testResults.init = true;
console.log('✅ TEST PASS: SDK initialized');

// Show ad after 2 seconds
setTimeout(() => {
    console.log('🎬 Showing test ad...');
    RewardedAd.showAd({
        rewardPreview: "TEST: 100 coins"
    });
}, 2000);

function printTestResults() {
    console.log('\n📊 TEST RESULTS:');
    console.log('Init:', testResults.init ? '✅' : '❌');
    console.log('Ad Loaded:', testResults.adLoaded ? '✅' : '❌');
    console.log('Ad Shown:', testResults.adShown ? '✅' : '❌');
    console.log('Reward Granted:', testResults.rewardGranted ? '✅' : '❌');
    console.log('Errors:', testResults.errors.length);
    
    if (testResults.errors.length > 0) {
        console.error('Error details:', testResults.errors);
    }
    
    const allPassed = testResults.init && testResults.adLoaded && 
                      testResults.adShown && testResults.rewardGranted && 
                      testResults.errors.length === 0;
    
    if (allPassed) {
        console.log('\n🎉 ALL TESTS PASSED! Ready for production.');
    } else {
        console.log('\n⚠️ SOME TESTS FAILED. Fix issues before launching.');
    }
}

Common Issues

  • Ads not loading: Check App ID and API Key
  • Reward not granted: Make sure reward code is in onReward
  • Black screen: CORS issue - add domain to dashboard
  • No sound: User interaction required before audio plays