IOS - Documentação do SDK de Monetização de Aplicativos

⌘K
  1. IOS – Monetize App ...
  2. Formatos de Anúncio
  3. Intersticial

Intersticial

Pré-requisitos

Carregar e Mostrar o Anúncio

Considere um cenário onde o clique de um botão aciona um Interstitial e, subsequentemente, o NovaViewController é lançado de MainViewController.

Carregar

Para carregar um anúncio intersticial, use RefineryAdFactory.shared.createInterstitial método dentro do super.viewDidLoad do MainViewController.

class MainViewController: UiViewControlelr {
    var interstitialId:Int32 = -1;
    …
    override func viewDidLoad() {
        super.viewDidLoad()
        …
        let interstitialAdId = ConfigBuilder.companion.INTERSTITIAL_TEST_R89_CONFIG_ID
        interstitialId = RefineryAdFactory.shared.createInterstitial(configurationID: interstitialAdId, uiViewController: self, afterInterstitial: {
            // Este callback é chamado quando o interstitial fecha ou falha ao carregar.
            // Aqui o fluxo de navegação continua
            self.present(NewViewController(), animated: true)
        }, lifecycleCallbacks: nil)
    }
    …
}
    

Como podemos observar na apósIntersticial callback, assim que o anúncio intersticial for fechado, a navegação para NovaViewController ocorrerá.

Mostrar ao Pressionar o Botão

Alguns eventos acontecem em seu aplicativo, como o pressionamento de um botão, mudança de aba ou abertura de um link.

Se o Intersticial ainda não carregou ou falhou ao carregar quando você chama Mostrar, o fluxo continuará normalmente.


        class MainViewController: UiViewController {
            …
            override func viewDidLoad() {
                super.viewDidLoad()
                …
                // Configure uma ação no uiButton para exibir o intersticial carregado com seu interstitialId.
                uiButton.addAction(UIAction(handler: {_ in
                    RefineryAdFactory.shared.show(index: self.interstitialId)
                }), for: .touchUpInside)
            }
            …
        }
    

Mostra sobre a Criação do Intersticial

Em contraste com o exemplo anterior, onde o anúncio intersticial era pré-carregado dentro do viewDidLoad método, agora o anúncio intersticial será carregado após o evento de pressionar o botão.

        class MainViewController: UiViewController {
            …
            override func viewDidLoad() {
                super.viewDidLoad()
                …
                // Configure uma ação no uiButton para exibir o intersticial carregado com seu interstitialId.
                uiButton.addAction(UIAction(handler: {_ in
                    createInterstitial()
                }), for: .touchUpInside)
            }
            …
        }
    

Aqui está a implementação da criarIntersticial() método.

class MainViewController: UiViewControlelr {
    override func viewDidLoad() { … }
    …
    func createInterstitial(){
        let interstitialAdId = ConfigBuilder.companion.INTERSTITIAL_TEST_R89_CONFIG_ID
        interstitialId = RefineryAdFactory.shared.createInterstitial(configurationID: interstitialAdId, uiViewController: self, afterInterstitial: {
            // Aqui o fluxo de navegação continua
            self.present(NewViewController(), animated: true)
        }, lifecycleCallbacks: InterstitialEventListenerDelegate(viewController: self))
    }
}
    

A instância de DelegadoDeListenerDeInterstitial é passado para o callbacksLifecycle parâmetro. O DelegadoDeListenerDeInterstitial será notificado sempre que o intersticial for carregado ou falhar ao carregar.

class InterstitialEventListenerDelegate : InterstitialEventListener {

    let viewController:LunchScreenViewController
    
    init(viewController: LunchScreenViewController) {
        self.viewController = viewController
    }
    
    override func onLoaded() {
        RefineryAdFactory.shared.show(index: viewController.interstitialId)
    }
    
    override func onFailedToLoad(error: R89LoadError) {
        RefineryAdFactory.shared.show(index: viewController.interstitialId)
    }
}
    

Isso aumentará o tempo necessário para executar a ação do usuário.

Porque está fazendo a solicitação de anúncio quando o usuário realiza a ação. Você deve usar a abordagem anterior onde fazemos a solicitação e armazenamos o ID do anúncio para exibi-lo instantaneamente quando o usuário realiza as ações.

É assim que usamos o Interstitial que usamos em Demos.


Eventos do Ciclo de Vida

Para observar os métodos de ciclo de vida do intersticial, crie uma instância de DelegadoDeListenerDeInterstitial e passar para RefineryAdFactory.shared.createInterstitial método.
Os seguintes métodos estão disponíveis.

        private class LoggerInterstitialEventListener : InterstitialEventListener {
            override func onLoaded() {
                print(“onLoaded”)
            }
            
            override func onFailedToLoad(error: R89LoadError) {
                print(“onFailedToLoad”,”error=\(error)”)
            }
            
            override func onOpen() {
                print(“onOpen”)
            }
            
            override func onClick() {
                print(“onClick”)
            }
            
            override func onImpression() {
                print(“onImpression”)
            }
            
            override func onAdDismissedFullScreenContent() {
                print(“onAdDismissedFullScreenContent”)
            }
            
            override func onAdFailedToShowFullScreen(errorMsg: String) {
                print(“onAdFailedToShowFullScreen”,”errorMsg=\(errorMsg)”)
            }
        }
    

Como você pode ver aoFechar não está presente porque temos o apósIntersticial evento que é obrigatório passar como parâmetro para RefineryAdFactory.shared.createInterstitial método e detém a mesma funcionalidade que aoFechar com casos especiais.

Após Intersticial

Isso não é passado como um objeto separado como os outros Eventos porque é obrigatório lidar com o que acontece após um Intersticial ser fechado. Isso é invocado no SDK quando:

  • Tudo correu bem e o usuário acabou de fechar o anúncio em tela cheia.

  • O anúncio ainda não carregou e você tentou exibi-lo.

  • O anúncio foi invalidado e você tentou exibi-lo. Ele é invalidado quando:

    • Falha ao carregar.

    • Já mostrado.

    • Tempo demais sem mostrá-lo.

  • O anúncio não pôde ser exibido.

Como podemos ajudar?