Exemplos de código
- Formato Rewarded, o que significa que você deve dar ao usuário uma recompensa quando ele vir o anúncio até o final e o anúncio deve ser esperado como após clicar em um elemento.
Mais informações sobre requisitos para exibição de anúncio. - Formato Interstitial, o que significa que o usuário pode pular um anúncio antes do final e o anúncio deve ser esperado durante pausas naturais no fluxo de um aplicativo
Mais informações sobre requisitos para exibição de anúncio.
Informação:
Abaixo estão exemplos de código para o formato Rewarded. Estes exemplos também são relevantes para o formato Interstitial. A única diferença é que a promessa AdController.show() é resolvida para anúncios que foram vistos até o final, assim como os que foram fechados. Um exemplo simples você pode encontrar aqui
React
Inserir script
Insira este script dentro da tag <head> do seu HTML.
Criar hook useAdsgram
Crie um arquivo dentro do seu projeto com o hook personalizado useAdsgram.
Mais informações sobre custom hooks na documentação do React.
import { useCallback, useEffect, useRef } from 'react';
export function useAdsgram({ blockId, onReward, onError }) {
const AdControllerRef = useRef(undefined);
useEffect(() => {
AdControllerRef.current = window.Adsgram?.init({ blockId });
}, [blockId]);
return useCallback(async () => {
if (AdControllerRef.current) {
AdControllerRef.current
.show()
.then(() => {
// o usuário vê o anúncio até o final ou o fecha no formato interstitial
onReward();
})
.catch((result) => {
// o usuário obtém um erro durante a reprodução do anúncio
onError?.(result);
});
} else {
onError?.({
error: true,
done: false,
state: 'load',
description: 'Adsgram script not loaded',
});
}
}, [onError, onReward]);
}import { useCallback, useEffect, useRef } from 'react';
/**
* Verifique a seção de Typescript
* e use seu caminho para os tipos do adsgram
*/
import type { AdController, ShowPromiseResult } from 'path-to-adsgram-types';
export interface useAdsgramParams {
blockId: string;
onReward?: () => void;
onError?: (result: ShowPromiseResult) => void;
}
export function useAdsgram({ blockId, onReward, onError }: useAdsgramParams): () => Promise<void> {
const AdControllerRef = useRef<AdController | undefined>(undefined);
useEffect(() => {
AdControllerRef.current = window.Adsgram?.init({ blockId, debug: true, debugBannerType: 'FullscreenMedia' });
}, [blockId]);
return useCallback(async () => {
if (AdControllerRef.current) {
AdControllerRef.current
.show()
.then(() => {
// o usuário vê o anúncio até o final ou o fecha no formato interstitial
onReward?.();
})
.catch((result: ShowPromiseResult) => {
// o usuário obtém um erro durante a reprodução do anúncio
onError?.(result);
});
} else {
onError?.({
error: true,
done: false,
state: 'load',
description: 'Adsgram script not loaded',
});
}
}, [onError, onReward]);
}Exemplo de uso
Exemplo de um componente de botão simples, quando o botão é clicado o anúncio será exibido.
import { useCallback, ReactElement } from 'react'
import { useAdsgram } from "./hooks/useAdsgram.ts";
export function ShowAdButton() {
const onReward = useCallback(() => {
alert('Reward');
}, []);
const onError = useCallback((result) => {
alert(JSON.stringify(result, null, 4));
}, []);
/**
* insira your-block-id
*/
const showAd = useAdsgram({ blockId: "your-block-id", onReward, onError });
return (
<button onClick={showAd}>Show Ad</button>
)
}import { useCallback, ReactElement } from 'react'
import { useAdsgram } from "./hooks/useAdsgram.ts";
import { ShowPromiseResult } from "./types/adsgram";
export function ShowAdButton(): ReactElement {
const onReward = useCallback(() => {
alert('Reward');
}, []);
const onError = useCallback((result: ShowPromiseResult) => {
alert(JSON.stringify(result, null, 4));
}, []);
/**
* insira your-block-id
*/
const showAd = useAdsgram({ blockId: "your-block-id", onReward, onError });
return (
<button onClick={showAd}>Show Ad</button>
)
}Unity
Não temos um plugin para unity.
Crie um arquivo .jslib, você pode ler mais sobre isso aqui.
Você pode chamar funções js do unity usando isto.
Você pode chamar funções do unity a partir do js usando isto.
Vanilla js
Exemplo com script inline e botão para exibir o anúncio.
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Test app</title>
<script src="https://telegram.org/js/telegram-web-app.js"></script>
<script src="https://sad.adsgram.ai/js/sad.min.js"></script>
</head>
<body>
<button id="ad">Show ad</button>
<script>
// insira seu block id
const AdController = window.Adsgram.init({ blockId: "your-block-id" });
const button = document.getElementById('ad');
button.addEventListener('click', () => {
AdController.show().then((result) => {
// o usuário vê o anúncio até o final ou o fecha no formato interstitial
// seu código para recompensar o usuário no formato rewarded
alert('Reward');
}).catch((result) => {
// o usuário obtém um erro durante a reprodução do anúncio
// não fazer nada ou o que quiser
alert(JSON.stringify(result, null, 4));
})
})
</script>
</body>
</html>