npm package: @miniads/rv-sdk
Description: Miniads
Author: Andrew Z, Dima D
Latest version: 0.1.2

# MiniAds SDK Documentation

This document provides instructions for integrating and using the MiniAds SDK within your web application.

## Integration Steps

### Include Required Scripts

Add the following scripts in the `<head>` section of your HTML document:

```html
<script src="https://telegram.org/js/telegram-web-app.js"></script>
<script src="https://unpkg.com/@miniads/rv-sdk@0.1.1/dist/index.js"></script>
```

- Initialize MiniAds
- Initialize the MiniAds SDK with the required token:

```html
<script>
    window.MiniAds.init({
        token: 'your-token-here',
    });
</script>
```

## Example HTML Setup

```html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Mini ads Example</title>
    <script src="https://telegram.org/js/telegram-web-app.js"></script>
    <script src="./index.js"></script>
    <script>
        window.MiniAds.init({
            token: 'your token here',
        });
    </script>
    <style>
        body {
            margin: 0;
            padding: 0;
            background-color: #f0f0f0;
            width: 100vw;
            height: 100vh;
        }
    </style>
</head>
<body>
</body>
<script>
    async function loadAdv() {
        const isAdFound = await window.MiniAds.load();

        if (isAdFound) {
            window.MiniAds.setupOnReward(() => {
                console.log('User has watched the ad and earned the reward');
            });

            window.MiniAds.setupOnAdClose(() => {
                console.log('User has closed the ad');
            });

            window.MiniAds.setupOnAdEnd(() => {
                console.log('Ad has been shown');
            });

            window.MiniAds.setupOnAdDestroyed(() => {
                console.log('An error occurred while loading the ad');
            });

            await window.MiniAds.show();
        }
    }

    loadAdv();
</script>
</html>
```

## SDK Methods

```window.MiniAds.init(config)``` - Initializes the MiniAds SDK.

### Parameters:

- `config: {token: string}`: An object containing the initialization parameters.
  - `token`: A string representing your MiniAds token.

- `window.MiniAds.load():Promise<boolean>` 
  - Loads the advertisement. Returns A promise that resolves to a boolean indicating if an ad was found.

- `window.MiniAds.show(): Promise<void>` 
  - Shows the advertisement. Returns A promise that resolves if the ad was start watched.

## Event Setup Methods
- `window.MiniAds.setupOnReward(callback)`
    - Sets up a callback function to be called when the user is rewarded.
- `window.MiniAds.setupOnAdClose(callback)` 
  - Sets up a callback function to be called when the user closes the ad.
- `window.MiniAds.setupOnAdEnd(callback)`
  - Sets up a callback function to be called when the ad has ended.
- `window.MiniAds.setupOnAdDestroyed(callback)`
  - Sets up a callback function to be called when an error occurs while loading the ad.
  
## Example Usage
1) Initialize the SDK
``` javascript
window.MiniAds.init({
    token: 'your-token-here',
});
```
2) Load and Show an Advertisement
```javascript
async function loadAdv() {
    const isAdFound = await window.MiniAds.load();

    if (isAdFound) {
        window.MiniAds.setupOnReward(() => {
            console.log('User has watched the ad and earned the reward');
        });

        window.MiniAds.setupOnAdClose(() => {
            console.log('User has closed the ad');
        });

        window.MiniAds.setupOnAdEnd(() => {
            console.log('Ad has been shown');
        });

        window.MiniAds.setupOnAdDestroyed(() => {
            console.log('An error occurred while loading the ad');
        });

        await window.MiniAds.show();
    }
}

loadAdv();
```
### Event Handling
Use the provided methods to handle various ad-related events, ensuring your application can respond appropriately to user actions and ad lifecycle events.