Debug Methods

Enable and disable detailed console logging for development and troubleshooting.

โš ๏ธ Development Only: Debug mode should only be enabled during development. Disable it in production to avoid performance impact and exposing internal details.

enableDebug()

Enables verbose console logging for all SDK operations.

Syntax

JavaScript
RewardedAd.enableDebug()

Parameters

None

Return Value

None (void)

What Gets Logged

When debug mode is enabled, you'll see detailed logs for:

  • โœ… SDK initialization
  • ๐Ÿ“ก API requests and responses
  • ๐ŸŽฌ Ad preloading operations
  • โ–ถ๏ธ Ad display events
  • ๐Ÿ’ฐ Reward callbacks
  • โŒ Errors and warnings
  • โฑ๏ธ Frequency capping checks
  • ๐Ÿ‘๏ธ Viewability tracking
  • ๐Ÿ” GDPR/COPPA consent

disableDebug()

Disables debug logging and returns to normal operation.

Syntax

JavaScript
RewardedAd.disableDebug()

Parameters

None

Return Value

None (void)

Examples

Basic Usage

JavaScript
// Enable debug mode
RewardedAd.enableDebug();

// Initialize SDK (you'll see detailed logs)
RewardedAd.init({
    appId: "YOUR_APP_ID",
    apiKey: "YOUR_API_KEY",
    userId: "user_123"
});

// Show ad (you'll see all internal operations)
RewardedAd.showAd();

// Disable when done debugging
RewardedAd.disableDebug();

Conditional Debug Mode

JavaScript
// Enable debug only in development
const isDevelopment = window.location.hostname === 'localhost' 
                   || window.location.hostname === '127.0.0.1';

if (isDevelopment) {
    console.log('๐Ÿ› Debug mode enabled for development');
    RewardedAd.enableDebug();
}

// Or use URL parameter
const urlParams = new URLSearchParams(window.location.search);
if (urlParams.has('debug')) {
    console.log('๐Ÿ› Debug mode enabled via URL parameter');
    RewardedAd.enableDebug();
}

Environment-Based Debug

JavaScript
// Using environment variables (webpack/vite)
if (process.env.NODE_ENV === 'development') {
    RewardedAd.enableDebug();
}

// Or use custom flag
const DEBUG_MODE = true; // Change to false for production

if (DEBUG_MODE) {
    RewardedAd.enableDebug();
    console.log('๐Ÿ› BZZE Ads debug mode active');
}

Toggle Debug at Runtime

JavaScript
// Add debug toggle to your game's dev menu
let debugEnabled = false;

function toggleDebugMode() {
    debugEnabled = !debugEnabled;
    
    if (debugEnabled) {
        RewardedAd.enableDebug();
        console.log('โœ… Debug mode ON');
    } else {
        RewardedAd.disableDebug();
        console.log('โŒ Debug mode OFF');
    }
    
    return debugEnabled;
}

// Usage: Press D key to toggle debug
document.addEventListener('keydown', (e) => {
    if (e.key === 'd' && e.ctrlKey) {
        e.preventDefault();
        toggleDebugMode();
    }
});

Debug Helper Class

JavaScript
class AdDebugger {
    constructor() {
        this.enabled = false;
    }
    
    enable() {
        RewardedAd.enableDebug();
        this.enabled = true;
        console.log('%c๐Ÿ› BZZE Ads Debug Mode ENABLED', 'color: lime; font-weight: bold');
        this.logStatus();
    }
    
    disable() {
        RewardedAd.disableDebug();
        this.enabled = false;
        console.log('%c๐Ÿ› BZZE Ads Debug Mode DISABLED', 'color: red; font-weight: bold');
    }
    
    logStatus() {
        if (!this.enabled) return;
        
        console.group('๐Ÿ“Š SDK Status');
        console.log('Ready:', RewardedAd.isReady());
        console.log('Ad Available:', RewardedAd.isAdAvailable());
        console.log('Preloaded Ads:', RewardedAd.getPreloadedAdCount());
        console.log('Cooldown:', RewardedAd.getCooldownRemaining(), 's');
        console.log('Info:', RewardedAd.getInfo());
        console.log('Analytics:', RewardedAd.getAnalytics());
        console.groupEnd();
    }
    
    testAd() {
        console.log('๐Ÿงช Testing ad display...');
        RewardedAd.showAd({
            rewardPreview: 'Test Reward'
        });
    }
}

// Usage
const debugger = new AdDebugger();
debugger.enable();
debugger.logStatus();

React Hook for Debug Mode

JavaScript
import { useEffect, useState } from 'react';

function useDebugMode(initialState = false) {
    const [debugEnabled, setDebugEnabled] = useState(initialState);
    
    useEffect(() => {
        if (debugEnabled) {
            RewardedAd.enableDebug();
        } else {
            RewardedAd.disableDebug();
        }
    }, [debugEnabled]);
    
    return [debugEnabled, setDebugEnabled];
}

// Usage in component
function GameComponent() {
    const [debug, setDebug] = useDebugMode(false);
    
    return (
        
); }

Example Debug Output

When debug mode is enabled, you'll see console logs like:

Console Output
๐Ÿš€ BZZE Ads SDK v2.0.0 initializing...
โœ… SDK initialized successfully
๐Ÿ“ก API Request: POST /v1/ads/request
  โ†’ App ID: APP_123
  โ†’ User ID: user_456
  โ†’ Intent: preload
โฑ๏ธ Frequency check: OK (0/10 hourly, 0/50 daily)
๐Ÿ“ฅ Preloading 2 ads...
โœ… Ad preloaded: session_abc123
โœ… Ad preloaded: session_def456
๐Ÿ“Š Total preloaded ads: 2

// When showing ad:
โ–ถ๏ธ showAd() called
โœ… Cooldown check: OK (60s elapsed)
โœ… Ad available: session_abc123
๐ŸŽฌ Displaying ad...
๐Ÿ‘๏ธ Viewability: Ad 50% visible for 2s
โœ… Ad completed
๐Ÿ’ฐ Reward callback triggered
๐Ÿ“Š Analytics updated: 1 impression, 1 completion

Best Practices

โœ… DO:
  • Enable debug mode during development and testing
  • Use environment checks to auto-enable in dev
  • Disable in production builds
  • Use URL parameters for testing in staging
  • Add keyboard shortcuts for quick toggle (Ctrl+D)
  • Log debug output to external services in dev
โš ๏ธ DON'T:
  • Leave debug mode enabled in production
  • Expose sensitive data in debug logs
  • Rely on console logs for error handling
  • Use debug mode as a monitoring solution
  • Share debug logs with sensitive user data

Common Use Cases

1. Integration Testing

Enable debug when integrating SDK for the first time:

JavaScript
RewardedAd.enableDebug();
// Now test your integration and watch console for any issues

2. Troubleshooting

Enable when debugging why ads aren't showing:

JavaScript
// Add ?debug=true to URL
if (new URLSearchParams(location.search).has('debug')) {
    RewardedAd.enableDebug();
}

3. QA Testing

Create a test build with debug enabled:

JavaScript
if (BUILD_TYPE === 'qa' || BUILD_TYPE === 'staging') {
    RewardedAd.enableDebug();
}

Debug Mode vs Analytics

Feature Debug Mode Analytics
Purpose Development & troubleshooting Production monitoring
Output Console logs (verbose) Structured data
Performance Can impact performance Minimal overhead
Production Use โŒ Should be disabled โœ… Always enabled

Related Methods

See Also