Para ganhar dinheiro com o aplicativo ou jogo Android , existem muitas maneiras, como compras no aplicativo, patrocínio, anúncios e muito mais. Mas existe outro método popular de ganhar dinheiro com o aplicativo Android é integrando um anúncio, por exemplo, conhecido como Google AdMob . A Google AdMob foi projetada com os desenvolvedores em mente. A AdMob ajuda a gerar mais receita com aplicativos, fornecer melhor experiência do usuário e obter informações acionáveis, tudo com ferramentas automatizadas que fazem o trabalho pesado por você.

Por que a rede Google Admob?

  • O pagamento mínimo é $100
  • Grande variedade de formatos de anúncio
  • Taxas máximas de preenchimento
  • ECPM alto (custo efetivo por milha)
  • Anúncios de qualidade
  • Anúncios Personalizados

Formatos de Google AdMob

Existem principalmente quatro tipos de formato flexível e de alto desempenho disponíveis no Google AdMob

  • Nativo: anúncios que você cria para se ajustar ao aplicativo, perfeitamente
  • Intersticial : anúncios em tela cheia que chamam a atenção e se tornam parte da experiência.
  • Banner : formatos tradicionais em uma variedade de canais.
  • Vídeo premiado: um anúncio em vídeo imersivo iniciado pelo usuário que recompensa os usuários por assistirem.

Neste artigo, vamos integrar o SDK do Google Admob para mostrar o anúncio em vídeo premiado no aplicativo Android.

Vídeo premiado:

  •  Os anúncios em vídeo premiados são anúncios em tela inteira que cobrem toda a interface do usuário do aplicativo. O eCPM (custo efetivo por milha) de anúncios em vídeo premiado é relativamente maior do que anúncios em banner e intersticiais e também leva a uma CTR ( taxa de cliques ) mais alta, o que resulta em mais ganhos com seu aplicativo.
  • O usuário recebe uma recompensa no aplicativo ao assistir ao vídeo premiado do início ao fim. Esse tipo de anúncio é usado principalmente em jogos e também pode ser usado no aplicativo.

Abordagem

Etapa 1: Criação de um novo projeto

Para criar um novo projeto no Android Studio, consulte Como criar / iniciar um novo projeto no Android Studio. Observe que escolha Java como linguagem, embora vamos implementar este projeto na linguagem Java.

Etapa 2: antes de ir para a seção de codificação, faça uma pré-tarefa

  • Vá para app -> res -> valores -> arquivo colors.xml e defina as cores para o app.
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#0F9D58</color>
    <color name="colorPrimaryDark">#0F9D58</color>
    <color name="colorAccent">#05af9b</color>
</resources>

implementação 'com.google.android.gms: play-services-ads: 19.3.0'

<usa permissão para android: name = ”android.permission.INTERNET” />

  • Vá para app-> manifests-> seção AndroidManifest.xml e adicione a tag de meta-dados dentro da tag <application> .

<meta-dados

            android: name = ”com.google.android.gms.ads.APPLICATION_ID” 

            android: value = ”ca-app-pub-3940256099942544 ~ 3347511713 ″

/>



Etapa 3: projetar a interface do usuário 

No activity_main.xml adicione um botão para que quando o usuário clicar no botão o vídeo premiado será reproduzido na tela.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
  
    <!-- Button to Show Rewarded Video Ad By Clicking it -->
    <Button
        android:id="@+id/showVideoBtn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_margin="8dp"
        android:background="@color/colorPrimary"
        android:padding="16dp"
        android:text="Show  Rewarded  Video Ad "
        android:textColor="#ffff"
        android:textSize="20dp" />
  
</RelativeLayout>

Etapa 4: Trabalhar com o arquivo MainActivity.java

  • Abra o arquivo MainActivity.java lá dentro da classe, primeiro de tudo, crie o objeto da classe Button.

// Criando um objeto da classe Button

Botão showVideoAdBtn;

  • Agora, dentro do método onCreate() , vincule esses objetos aos seus respectivos IDs fornecidos no arquivo activity_main.xml .

 // vincular esses objetos com seus respectivos ids que fornecemos no arquivo activity_main.xml

 showVideoAdBtn = (Botão) findViewById (R.id.showVideoBtn);

  • Agora dentro do método onCreate() , inicialize o SDK do Google Admob

 // inicializando o SDK do Google Admob

 MobileAds.initialize (this);

  • Crie um objeto de RewardedVideoAd dentro da classe MainActivity.java

// criando objeto de RewardedVideoAd

private RewardedVideoAd AdMobrewardedVideoAd;



  • Crie um ID de anúncio em vídeo premiado da AdMob dentro da classe MainActivity.java

  // AdMob Rewarded Video Ad Id

  private String AdId = ”ca-app-pub-3940256099942544/5224354917 ″;

  • Em seguida, crie um método void loadRewardedVideoAd() privado fora do método onCreate() e defina-o.

  void loadRewardedVideoAd()

   {

       // inicializando o objeto RewardedVideoAd

      // O construtor RewardedVideoAd considera o contexto como seu argumento

     AdMobrewardedVideoAd = MobileAds.getRewardedVideoAdInstance (this);

     // Carregando anúncio em vídeo premiado

     AdMobrewardedVideoAd.loadAd (AdId, novo AdRequest.Builder(). Build());

}

  • Chame o método loadRewardedVideoAd() dentro do método oncreate() após inicializar o SDK.

Nota : Substitua “ AdId ” pelo seu próprio ID de anúncio de aplicativo para mostrar anúncios reais.

  • Em seguida, crie um método void showRewardedVideoAd() fora do método onCreate() que chamaremos mais tarde para mostrar o anúncio.

  public void showRewardedVideoAd()

   {

       if (AdMobrewardedVideoAd.isLoaded()) // Verificando se o anúncio está carregado ou não

       {

           // mostrando anúncio de vídeo

           AdMobrewardedVideoAd.show();

       }

       outro

       {



           // Carregando anúncio em vídeo premiado

           AdMobrewardedVideoAd.loadAd (AdId, novo AdRequest.Builder(). Build());

       }

   }

  • Portanto, a próxima coisa é chamar o método showRewardedVideoAd() . Agora, no método oncreate() , crie um ClickListener para o botão e chame showRewardedVideoAd().

// clique no ouvinte para mostrar o anúncio em vídeo premiado

showVideoAdBtn.setOnClickListener (new View.OnClickListener() {

          @Sobrepor

          public void onClick (Exibir visualização) {

              showRewardedVideoAd();

          }

 });

  • Agora adicione RewardedVideoAdListener para o anúncio em vídeo premiado, para que o usuário saiba o status dos anúncios.
  • Para adicionar RewardedVideoAdListener, abra o método loadRewardedVideoAd() e adicione o código abaixo antes de AdMobrewardedVideoAd.loadAd (AdId, new AdRequest.Builder(). Build()) ;

 // Listener de anúncio em vídeo premiado

 AdMobrewardedVideoAd.setRewardedVideoAdListener (new RewardedVideoAdListener() {

           @Sobrepor

           public void onRewardedVideoAdLoaded() {

               // Mostrando mensagem brinde

              Toast.makeText (MainActivity.this, “onRewardedVideoAdLoaded”, Toast.LENGTH_SHORT) .show();

           }

           @Sobrepor

           public void onRewardedVideoAdOpened() {



               // Mostrando mensagem brinde

              Toast.makeText (MainActivity.this, “onRewardedVideoAdOpened”, Toast.LENGTH_SHORT) .show();

           }

           @Sobrepor

           public void onRewardedVideoStarted() {

              // Mostrando mensagem brinde

              Toast.makeText (MainActivity.this, “onRewardedVideoStarted”, Toast.LENGTH_SHORT) .show();

           }

           @Sobrepor

           public void onRewardedVideoAdClosed() {

               // Mostrando mensagem brinde

               Toast.makeText (MainActivity.this, “onRewardedVideoAdClosed”, Toast.LENGTH_SHORT) .show();

           }

           @Sobrepor

           public void onRewarded (RewardItem rewardItem) {

               // Mostrando mensagem brinde

               Toast.makeText (MainActivity.this, “onRewarded”, Toast.LENGTH_SHORT) .show();

           }

           @Sobrepor

           public void onRewardedVideoAdLeftApplication() {

               // Mostrando mensagem brinde

               Toast.makeText (MainActivity.this, “onRewardedVideoAdLeftApplication”, Toast.LENGTH_SHORT) .show();

           }

           @Sobrepor

           public void onRewardedVideoAdFailedToLoad (int i) {

               // Mostrando mensagem brinde

               Toast.makeText (MainActivity.this, “onRewardedVideoAdFailedToLoad”, Toast.LENGTH_SHORT) .show();

           }

           @Sobrepor

           public void onRewardedVideoCompleted() {



               // Mostrando mensagem brinde

               Toast.makeText (MainActivity.this, “onRewardedVideoCompleted”, Toast.LENGTH_SHORT) .show();

           }

});

  • E dentro dos métodos RewardedVideoAdListener Override mostram uma mensagem brinde para que os usuários saibam o status do anúncio. Abaixo está o código completo para o arquivo MainActivity.Java .
package org.geeksforgeeks.project;
  
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.reward.RewardItem;
import com.google.android.gms.ads.reward.RewardedVideoAd;
import com.google.android.gms.ads.reward.RewardedVideoAdListener;
  
public class MainActivity extends AppCompatActivity {
  
    // Creating a object of Button class
    Button showVideoAdBtn;
  
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        // link those objects with their respective id's
        // that we have given in activity_main.xml file
        showVideoAdBtn
            = (Button)findViewById(R.id.showVideoBtn);
  
        // initializing the Google Admob  SDK
        MobileAds.initialize(this);
  
        // loading Video Ad
        loadRewardedVideoAd();
  
        // click listener to show Rewarded Video  Ad
        showVideoAdBtn.setOnClickListener(
            new View.OnClickListener() {
                @Override public void onClick(View view)
                {
                    // showing Ad
                    showRewardedVideoAd();
                }
            });
    }
  
    // creating RewardedVideoAd object
    private RewardedVideoAd AdMobrewardedVideoAd;
  
    // AdMob Rewarded Video Ad Id
    private String AdId
        = "ca-app-pub-3940256099942544/5224354917";
  
    void loadRewardedVideoAd()
    {
        // initializing RewardedVideoAd Object
        // RewardedVideoAd  Constructor Takes Context as its
        // Argument
        AdMobrewardedVideoAd
            = MobileAds.getRewardedVideoAdInstance(this);
  
        // Rewarded Video Ad Listener
        AdMobrewardedVideoAd.setRewardedVideoAdListener(
            new RewardedVideoAdListener() {
                @Override
                public void onRewardedVideoAdLoaded()
                {
                    // Showing Toast Message
                    Toast
                        .makeText(MainActivity.this,
                                  "onRewardedVideoAdLoaded",
                                  Toast.LENGTH_SHORT)
                        .show();
                }
  
                @Override
                public void onRewardedVideoAdOpened()
                {
                    // Showing Toast Message
                    Toast
                        .makeText(MainActivity.this,
                                  "onRewardedVideoAdOpened",
                                  Toast.LENGTH_SHORT)
                        .show();
                }
  
                @Override
                public void onRewardedVideoStarted()
                {
                    // Showing Toast Message
                    Toast
                        .makeText(MainActivity.this,
                                  "onRewardedVideoStarted",
                                  Toast.LENGTH_SHORT)
                        .show();
                }
  
                @Override
                public void onRewardedVideoAdClosed()
                {
                    // Showing Toast Message
                    Toast
                        .makeText(MainActivity.this,
                                  "onRewardedVideoAdClosed",
                                  Toast.LENGTH_SHORT)
                        .show();
                }
  
                @Override
                public void onRewarded(
                    RewardItem rewardItem)
                {
                    // Showing Toast Message
                    Toast
                        .makeText(MainActivity.this,
                                  "onRewarded",
                                  Toast.LENGTH_SHORT)
                        .show();
                }
  
                @Override
                public void
                onRewardedVideoAdLeftApplication()
                {
                    // Showing Toast Message
                    Toast
                        .makeText(
                            MainActivity.this,
                            "onRewardedVideoAdLeftApplication",
                            Toast.LENGTH_SHORT)
                        .show();
                }
  
                @Override
                public void onRewardedVideoAdFailedToLoad(
                    int i)
                {
                    // Showing Toast Message
                    Toast
                        .makeText(
                            MainActivity.this,
                            "onRewardedVideoAdFailedToLoad",
                            Toast.LENGTH_SHORT)
                        .show();
                }
  
                @Override
                public void onRewardedVideoCompleted()
                {
                    // Showing Toast Message
                    Toast
                        .makeText(
                            MainActivity.this,
                            "onRewardedVideoCompleted",
                            Toast.LENGTH_SHORT)
                        .show();
                }
            });
  
        // Loading Rewarded Video Ad
        AdMobrewardedVideoAd.loadAd(
            AdId, new AdRequest.Builder().build());
    }
  
    public void showRewardedVideoAd()
    {
        // Checking If Ad is Loaded or Not
        if (AdMobrewardedVideoAd.isLoaded()) {
            // showing Video Ad
            AdMobrewardedVideoAd.show();
        }
        else {
            // Loading Rewarded Video Ad
            AdMobrewardedVideoAd.loadAd(
                AdId, new AdRequest.Builder().build());
        }
    }
}

Etapa 5: arquivo AndroidManifest.xml

Abaixo está o código completo para o arquivo AndroidManifest.xml .

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="org.geeksforgeeks.project">
  
    <uses-permission android:name="android.permission.INTERNET"/>
  
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
  
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
          
        <!-- meta data  tag for admob Note:replace below app id 
             value to your own app id -->
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ca-app-pub-3940256099942544~3347511713"/>
  
    </application>
  
</manifest>

Saída: Executar no emulador