Appnext para Monetizar sua APP Android

Receba em primeira mão o conteúdo exclusivo do Blog, além de promoções de livros e cursos de programação. Você receberá um email de confirmação. Somente depois de confirmar é que poderei lhe enviar o conteúdo exclusivo por email.

Email inválido.
Blog /Android /Appnext para Monetizar sua APP Android

Appnext para Monetizar sua APP Android

Vinícius Thiengo18/09/2016
(1637) (66) (9)
Go-ahead
"O início de um hábito é como um fio invisível, mas a cada vez que o repetimos o ato reforça o fio, acrescenta-lhe outro filamento, até que se torna um enorme cabo, e nos prende de forma irremediável, no pensamento e ação."
Orison Swett Marden
Código limpo
Capa do livro Refatorando Para Programas Limpos
TítuloRefatorando Para Programas Limpos
CategoriaEngenharia de Software
AutorVinícius Thiengo
Edição
Ano2017
Capítulos46
Páginas598
Comprar Livro
Conteúdo Exclusivo
Receba em primeira mão o conteúdo exclusivo do Blog, além de promoções de livros e cursos de programação.
Email inválido

Opa, blz?

Nesse artigo será apresentado como gerar ganhos em sua APP Android com anúncios que permitem instalações de outras APPs, mais precisamente vamos estar falando sobre a plataforma de anúncios mobile (e Web), Appnext.

Nesse artigo vamos abordar:

Podemos prosseguir.

O que é? Como funciona?

Diferente de algumas outras plataformas de anúncios mobile já apresentadas aqui no Blog, o Appnext trabalha com o formato CPI (Cost-Per-Install - Custo por instalação).

O mais comumente trabalhado é o formato CPC (Cost-Per-Click) ou o CPM (Cost-Per-Thousand-Impressions).

Ok, mas qual é a vantagem desse CPI para os outros formatos?

A vantagem é principalmente enxergada pelos anunciantes. Pois muitos desses tem como objetivo engajar usuários para instalarem seus aplicativos. Com o Appnext o pagamento somente ocorre se a APP chegar a ser instalada pelo user. Ou seja, para anunciantes é algo excelente, pois esses não perdem dinheiro com cliques e impressões que não geram instalações.

Algo que é prometido pela plataforma são os ganhos sendo tão bons quanto outras plataformas de anúncios mobile. No caso de anúncios no ambiente Web, o Appnext promete até 8x mais ganhos que os anúncios convencionais (AdSense, por exemplo).

Note que com o Appnext é possível também colocar anúncios em seu Web site e IOS APP.

Tem alguma lógica de negócio para a apresentação dos anúncios?

Quando no device mobile, a API do Appnext trabalha no background para conhecer os tipos de APPs instaladas no device e então apresentar APPs similares para ele nos anúncios, aumentando ainda mais as chances de instalcão da APP anunciante.

Construindo o projeto de anúncios Appnext

O projeto aqui será simples, somente com o objetivo de apresentar as principais formas de trabalhar anúncios do Appnext em nossas APPs Android.

Comece criando um projeto com o nome "AppNext Ads Test".

Logo depois nosso primeiro passo é com as configurações do projeto. No Gradle Top Level, build:gradle(Project: AppNextAdsTest), temos:

buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.0-rc1'
}
}
allprojects {
repositories {
jcenter()
maven { url "http://repo.appnext.com/" } /* ADICIONE ESSA LINHA */
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}

 

Então seguimos com as configurações do Gradle APP Level, build:gradle(Module: app):

apply plugin: 'com.android.application'
android {
compileSdkVersion 24
buildToolsVersion "24.0.2"
defaultConfig {
applicationId "br.com.thiengo.appnextadstest"
minSdkVersion 14
targetSdkVersion 24
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:24.2.1'
testCompile 'junit:junit:4.12'
compile('com.appnext.sdk:appnext-sdk:+') /* ADICIONE ESSA LINHA */
}

 

Note que a API Android mínima é a 14.

Agora as permissões no AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="br.com.thiengo.appnextadstest">

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

...
</manifest>

 

Com isso podemos ir ao Appnext dashboard. Comece criando uma conta entrando em http://www.appnext.com/ e logo depois clicando em "JOIN NOW".

Depois de preencher o formulário você terá de confirmar o email para então ter acesso ao dashboard.

Confirmado o email, acesse o Appnext e então uma box de configuração será apresentada. Pode fechar essa box, você terá algo similar a:

Clique no botão "add new app". Logo depois clique no símbolo do Android e em seguida marque a opção "My app is not yet published".

Caso sua APP já esteja em produção, preencha o campo "Store Listing URL" ou "App Package" e desmarque a opção "My app is not yet published". Então clique em "Next":

Agora coloque o nome de sua APP em "App name" e forneça uma imagem logo dela, respeitando as dimensões informadas. Essa imagem é opcional. Então clique em "Next":

Agora selecione três categorias que correspondem ao conteúdo de sua APP. Então clique em "Next":

Para finalizar a inscrição de sua APP, coloque uma descrição nela. Inclua na descrição o número de usuários ativos, instalações e tudo mais que puder informar aos anunciantes o porquê de anunciar em sua APP:

Mas eu tenho de conseguir anunciantes na "lábia"?

Não, não. Isso é somente para caso algum anunciante queira anunciar diretamente com sua APP, ele poderá comprar um pacote de anúncios nela.

Preenchendo esse conteúdo de descrição e um outro de valores mínimos de CPI (que vamos apresentar no decorrer do conteúdo), sua APP ficará disponível no Appnext Market: 

Agora copie o "Placement ID", que apareceu depois de clicar em "Next" na última tela de inscrição, e coloque em sua APP, mais precisamente na MainActivity, como comentário:

public class MainActivity extends AppCompatActivity {
// 8f176c19-25a6-4086-be10-7756ff7baf75

...
}

 

Logo depois clique em "Go to Tools":

O "Create Campaigns" é para quem vai anunciar a APP.

Depois do clique em "Go to Tools" você será direcionado para a documentação. Essa parte fornece o passo a passo para colocarmos os anúncios do Appnext em nossa APP, incluindo alguns projetos prontos no GitHub deles.

Aqui vamos seguir o tutorial sem precisar voltar na documentação. Somente note que há três opções de implementação para o Android:

  • Interstitial SDK:
    • Permite apresentarmos um anúncio interstitial na tela. Mais de uma APP é apresentada nesse anúncio;
  • Fullscreen Video SDK:
    • Pode ser Fullscreen ou Rewarded Video, ambas as opções apresentam um vídeo fullscreen, porém na opção Rewarded podemos, junto a lógica de negócio de nossa APP, dar incentivos ao usuário para assistir ao vídeo anúncio até o final;
  • Native SDK:
    • Essa permite que criemos nossos próprios modelos de apresentação de anúncio. Essa versão é um pouco mais "core", logo não vamos apresentá-la aqui.

Note que em "Rewarded Video" nós não podemos criar incentivos para a instalação da APP que será apresentada no vídeo anúncio. Somente incentivos para assistir ao vídeo, isso, pois o incentivo a instalação fere os termos e condições de uso da plataforma Appnext.

Interstitial

Agora vamos a codificação. Logo na MainActivity do projeto adicione:

public class MainActivity extends AppCompatActivity {
private Interstitial interstitial;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

interstitial = new Interstitial(this, "Seu Placement ID");
interstitial.setOnAdLoadedCallback(new OnAdLoaded() {
@Override
public void adLoaded() {
Log.i("log", "adLoaded()");
}
});
interstitial.loadAd();
}
}

 

Veja como adicionamos o listener de anúncio carregado, setOnLoadedCallback(). Para anúncio clicado, fechado, aberto e com erro seguimos o mesmo modelo, porém com os métodos: setOnAdClickedCallback()setOnAdClosedCallback()setOnAdOpenedCallback()setOnAdErrorCallback().

Note que anúncio carregado somente indica que podemos "a partir de então" apresentá-lo, ou seja, ele ainda não está na tela. Essa é uma ação que vamos acionar via código, mais precisamente quando o usuário da APP clicar em um Button do layout abaixo, mais precisamente o Button do label "Mostrar Ad".

Então no layout, activity_main.xml, siga a seguinte configuração:

<?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:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="br.com.thiengo.appnextadstest.MainActivity">

<Button
android:id="@+id/button_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:onClick="openActivity"
android:text="Full Screen Video" />

<Button
android:id="@+id/button_2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/button_1"
android:onClick="openActivity"
android:text="Rewarded Video" />

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/button_2"
android:onClick="displayAd"
android:text="Mostrar Ad" />
</RelativeLayout>

 

Note que os Buttons de ids: button_1 e button_2. Esses Buttons já nos indicam, junto ao onClick="openActivity", que teremos nesse projeto duas outras activities.

Antes de criar essas activities vamos trabalhar a configuração do anúncio interstitial que vamos abrir a partir da MainActivity. Logo adicione o seguinte código a ela:

public class MainActivity extends AppCompatActivity {
...

public void openActivity( View view ){
/* TODO */
}

public void displayAd( View view ){
if( interstitial.isAdLoaded() ){
interstitial.showAd();
}
}
}

 

Veja que há a necessidade de verificarmos se o anúncio foi carregado antes de querer apresentá-lo. Isso é necessário devido a Internet do usuário. Sem Internet, sem anúncio.

Antes de prosseguir com o teste da APP, vamos adicionar algumas configurações ao anúncio interstitial, mais precisamente alterar o label do Button de sair que já vem com o label "Skip". Alterar também o label do Button de instalar que vem com o label "Install". Nesse último Button vamos alterar também a cor dele, para vermelho (#FF0000).

Para realizarmos, com as alterações, precisamos utilizar uma instância de InterstitialConfig e uma outra sobrecarga de construtor de Interstitial. Segue código atualizado:

public class MainActivity extends AppCompatActivity {
...

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

interstitial = new Interstitial(this,
"Seu Placement ID",
getConfig() );
...
}
...

private InterstitialConfig getConfig(){
InterstitialConfig config = new InterstitialConfig();
config.setButtonText("Instalar");
config.setButtonColor("#ff0000");
config.setSkipText("Sair");

return config;
}
}

 

Com o método getConfig() conseguimos criar esse objeto de configuração de forma encapsulada. Agora podemos executar o projeto e então temos:

Clicando em "MOSTRAR AD" temos:

Lembrando que somente receberemos o pagamento do anúncio depois que o usuário instalar alguma das APPs indicadas no anúncio interstitial.

Com isso podemos seguir com a configuração das outras activities dos outros anúncios.

FullScreenVideo

Começando com a FullScreenActivity, segue código Java:

public class FullScreenActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_content);
}
}

 

Agora o layout activity_content.xml:

<?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:id="@+id/activity_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="br.com.thiengo.appnextadstest.FullScreenActivity">

</RelativeLayout>

 

Por que activity_content.xml?

Porque eu alterei o nome da Activity, mas não o do layout dela. Falha minha.

Antes de prosseguir com os códigos em FullScreenActivity, atualize as tags de Activity em AndroidManifest.xml. Segue:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="br.com.thiengo.appnextadstest">

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
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>
<activity android:name=".FullScreenActivity" />
<activity android:name=".RewardedActivity"></activity>
</application>
</manifest>

 

Assim, em FullScreenActivity, adicione os seguintes códigos:

public class FullScreenActivity extends AppCompatActivity {
private FullScreenVideo fullScreenVideo;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_content);

fullScreenVideo = new FullScreenVideo(this, "Seu Placement ID");
fullScreenVideo.setOnAdClosedCallback(new OnAdClosed() {
@Override
public void onAdClosed() {
finish();
}
});
fullScreenVideo.loadAd();
}

@Override
public void onBackPressed() {
if( fullScreenVideo.isAdLoaded() ){
fullScreenVideo.setVideoLength( FullScreenVideo.VIDEO_LENGTH_SHORT );
fullScreenVideo.showAd();
}
else{
finish();
}
}
}

 

Veja que nosso objetivo nessa Activity foi apresentar o anúncio em vídeo somente quando o usuário saísse dela, assim temos certeza de que não vamos interrompe-lo consumindo nenhum conteúdo.

Para que isso fosse possível sobrescrevemos o método onBackPressed() e somente com o fechamento do anúncio em vídeo é que saímos da Activity.

Temos um "ponto fora da curva" que é quando o anúncio não foi carregado ainda e o usuário já decidiu deixar a FullScreenActivity. Nesse caso saímos da Activity sem apresentar anúncio.

Note que no código anterior temos a chamada a setVideoLength(). Nesse método podemos escolher dentre os vídeo do anunciante: o menor, o mais longo ou o padrão (um dos dois anterior).

Porém é importante saber que o anunciante pode ter fornecido somente um vídeo, nesse caso é somente ele que será utilizado independente da constante utilizada: FullScreenVideo.VIDEO_LENGTH_SHORTFullScreenVideo.VIDEO_LENGTH_LONGFullScreenVideo.VIDEO_LENGTH_DEFAULT.

Executando o projeto, clicando em "FULL SCREEN VIDEO" temos:

RewardedVideo

Agora somente falta o RewardedVideo, esse é muito similar ao FullScreenVideo, somente tem métodos de Reward como opcionais a mais.

Vamos iniciar criando a RewardedActivity:

public class RewardedActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_rewarded);
}

public void displayAd( View view ){

}
}

 

E então o layout, activity_rewarded.xml. Esse terá um button que invocará, no clique, o método displayAd():

<?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:id="@+id/activity_rewarded"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="br.com.thiengo.appnextadstest.RewardedActivity">

<Button
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:text="Assista para ganhar mais pontos"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="displayAd"/>
</RelativeLayout>

 

Assim prosseguimos com as atualizações em RewardedActivity. Adicione o seguinte código:

public class RewardedActivity extends AppCompatActivity {
private RewardedVideo rewardedVideo;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_rewarded);

rewardedVideo = new RewardedVideo(this, "Seu Placement ID");
rewardedVideo.setOnAdLoadedCallback(new OnAdLoaded() {
@Override
public void adLoaded() {
rewardedVideo.setRewardsAmountRewarded("1000");
rewardedVideo.setRewardsUserId("65s4d6v5sd4v");
rewardedVideo.setRewardsRewardTypeCurrency("points");
}
});
rewardedVideo.loadAd();
}

public void displayAd( View view ){
if( rewardedVideo.isAdLoaded() ){
rewardedVideo.setVideoLength(FullScreenVideo.VIDEO_LENGTH_SHORT);
rewardedVideo.showAd();
}
}
}

 

Acredito que o único código que soa estranho a ti é o referente ao conteúdo de adLoaded(), certo?

...
rewardedVideo.setRewardsAmountRewarded("1000");
rewardedVideo.setRewardsUserId("65s4d6v5sd4v");
rewardedVideo.setRewardsRewardTypeCurrency("points");
...

 

Quando trabalhamos com o RewardedVideo o Appnext presume que nós vamos de alguma forma criar a lógica de negócio que premie o usuário que assistir por completo o vídeo anúncio que será apresentado depois da chamada a showAd().

Em nosso caso estamos simulando que o usuário ganhará "1000" pontos, que o ID dele em nosso sistema é "65s4d6v5sd4v" e que o tipo de prêmio é "points". Por isso a utilização dos métodos em adLoaded().

Poderíamos colocar ainda mais métodos de configuração de premiação, mas em nosso domínio do problema somente esses são o suficiente.

Ok, mas para que esses dados e para onde eles vão?

Esse dados são necessários para que possamos realmente premiar os usuários que visualizarem o vídeo anúncio por completo. Lembrando que ele será premiado em nossa APP e não no Appnext. Prêmios de exemplo: pontos extras, moedas para compras, partes pagas da APP liberadas temporariamente. Nós é que escolhemos.

Esses dados vão para nosso backend e não para o do Appnext, assim saberemos quem assistiu ao vídeo. Note que os dados configurados são chamados de dados "postback".

Por que a configuração desses dados de postback é necessária antes de abrir o anúncio?

Porque essa é a forma indicada na documentação do Appnext, tendo em mente que somente quando o vídeo é finalizado é que o Appnext realiza o envio para nosso backend, ou seja, somente abrir o anúncio não é o suficiente.

Para que seja possível utilizar dados de postback é preciso configurar uma url publica na dashboard do Appnext.

Acesse, no menu superior, "Apps" e logo depois clique em "Manage Apps".

Então clique na engrenagem logo no início da linha da APP que criamos no Appnext, depois clique em "Settings & Placements" como abaixo:

Antes de clicar em "Settings & Placements" note a coluna "Set-up progress", essa é a coluna que indica que já temos tudo configurado e assim já é possível realizar os ganhos.

A opção "Integrate Tools" nos leva a página de configurações da SDK, a que acessamos logo depois de configurarmos nossa APP de teste, no início do artigo.

A opção "Promote APP" é para quando você quer anunciar sua APP e as opções "Set Tracking" e "Delete APP" fazem exatamente o que indicam: configuração de analise e remoção de APP.

Na página aberta depois do clique em "Settings & Placement" temos possibilidades de edição, incluindo a criação de mais de um Placement ID. Mas o que nos interessa agora está na página carregada depois do clique em "Advanced Settings", logo clique nesse botão.

Você entrará em uma página como:

A aba "Opt Out" permite que você filtre os tipos de campanhas que não quer que sejam apresentadas em sua APP.

A aba "Minimum serving" permite que você coloque os valores mínimos aceitos de pagamentos. Somente campanhas com valores iguais ou superiores aos definidos em seu CPI ou eCPM é que aparecerão em sua APP.

A aba "Direct Buy Pricing" permite que você defina o valor de CPI mínimo aceito em sua APP. Esse é também o preenchimento que concluirá a apresentação de sua APP na Appnext Market.

As abas "Minimum serving" e "Direct Buy Pricing" permitem que você defina os valores também de acordo com o país do anunciante.

A aba "App Install Postback" permite que você defina como serão enviados (e se serão) dados ao seu backend depois que algum usuário instalar alguma APP partindo de sua APP com Appnext.

A configuração de "App Install Postback", a princípio, somente funciona se sua APP já estiver em produção, caso contrário, ao menos em meus testes, nada será enviado.

Agora a aba que nos interessa, ao menos para trabalharmos com os valores de RewardedVideo. A aba "Rewarded Video Postback" nos permite definir as configurações de backend que utilizaremos para receber dados do usuário premiado, dados enviados dos servers de Appnext.

Caso você tenha um domínio público que possa utilizar nos testes, siga em frente. No campo "Step 1: Add your base url" coloque o caminho completo, em seu servidor, para acesso a página que processará os dados de usuário premiado.

Em meu caso estou no localhost. Para conseguir que os servers do Appnext se comuniquem com minha máquina utilizei o Ngrok (https://ngrok.com/) que facilmente nos permite liberar nossa máquina, e localhost, na rede, Web.

Para executar o Ngrok, navego, via prompt de comando, até o diretório onde ele se encontra e executo:

./ngrok http 8888

Coloquei 8888, pois é a porta que utilizo em meu localhost, o seu provavelmente é 80. Verifique antes. Assim tenho: 

A url que vou utilizar no campo "Step 1: Add your base url" será a: http://25948f41.ngrok.io/android-payment/package/ctrl/CtrlReward.php

Para os campos seguintes somente vou utilizar "User ID", "Reward type / Currency" e "Amount rewarded". Aqui em nosso domínio do problema esses já serão o suficiente. Veja como ficou:

Logo abaixo, clicando em "Test", é possível saber se os dados realmente estão chegando ao seu backend. Em meu caso estou com um simples backend em PHP:

<?php
$file = fopen('data.txt', 'w');

foreach( $_GET as $key=>$value ){
fwrite( $file, $key.' => '.$value."\n" );
}

fclose($file);

 

O que ele faz é gerar um arquivo com as chaves e valores dos dados GET enviados a ele. Note que o envio de Appnext é via GET. Em meu caso rodou sem problemas, veja o conteúdo do arquivo gerado:

user-id => $appnext_rewardsUserId$
type => $appnext_rewardsRewardTypeCurrency$
amount => $appnext_rewardsAmountRewarded$

 

Clique em "Save" e logo acima deverá aparecer um check verde ao lado do termo "Active".

Agora podemos seguramente prosseguir com nosso projeto Android. Execute ele e logo depois clique em "REWARDED VIDEO" e então clique em "ASSISTA PARA GANHAR MAIS PONTOS". Teremos algo como:

Depois de vídeo finalizado, tanto em FullScreenVideo como em RewardedVideo, temos:

Assim acabamos os testes com o Appnext. Caso queira acompanhar os números (impressões, valores, cliques, instalações e outros), vá ao menu do topo e clique em "Revenue", terá algo como:

Os dados são atualizados de hora em hora. Porém novos APPs levam até 48 horas para começarem a ter dados apresentados.

Plataformas complementares para monetização

A plataforma Appnext na verdade pode trabalhar como complemento a outras plataformas de anúncios já apresentadas aqui no blog. Segue:

  • APPOdeal: plataforma de anúncio que tem foco no developer da APP, ou seja, apresenta os anúncios que mais trarão lucros a ele;
  • APPJolt: apresenta anúncio quando há remoção da APP. Outro ponto é o trabalho com dados de research, ou seja, sem necessidade de apresentar anúncios a API do APPJolt coleta dados dos users de sua APP e com isso você ganha ainda mais;
  • Huq: igualmente o APPJolt quanto ao trabalho com research data, você não apresenta anúncios e ainda ganha com a coleta de dados. Porém esse tem um modelo de negócio mais limitado. Você somente ganha se os dados de seus usuários estiverem nos dados vendidos pela Huq;
  • Smaato: como formatos similares ao APPOdeal e ao AdMob, tem a monetização no modelo convencional, CPM ou CPC.

Colocando o Appnext junto as formas de monetização citadas anteriormente, os ganhos de sua APP tende a aumentar.

Note que como em outras plataformas, com o Appnext você pode receber via Paypal ou via transferência bancária.

Vídeo com implementação passo a passo

Abaixo o vídeo com a implementação passo a passo do projeto proposto aqui:

Para acessar o projeto por completo entre no GitHub a seguir: https://github.com/viniciusthiengo/appnext-ad-test

Conclusão

O modelo de anúncios do Appnext tende a atrair mais anunciantes, pois o pagamento somente ocorre quando há instalação da APP.

Devido a essa efetividade, digo, ao pagamento somente com a instalação, a cobrança por instalação deve ser alta, ou seja, os valores cobrados pelo Appnext devem ser mais altos que os convencionais por CPC ou CPM.

Um forte indicio disso são os questionamentos de anunciantes no fórum / comunidade da plataforma. Há reclamações de cobranças muito altas.

Com valores altos, nós developers podemos com isso termos ganhos maiores também, porque não até maiores que os do APPOdeal que foi feito para otimizar eles.

Obviamente que mais testes devem ser feitos para realmente saber se os retornos com o Appnext são aceitáveis. Tendo em mente que essa plataforma complementa muitas outras.

Fontes

Appnext

What Is Cost-Per-Install Advertising?

Vlw.

Receba em primeira mão o conteúdo exclusivo do Blog, além de promoções de livros e cursos de programação.
Email inválido

Relacionado

Monetização sem Anúncios utilizando a Huq SDKMonetização sem Anúncios utilizando a Huq SDKAndroid
Padrão de Projeto: Template Method (Método Template)Padrão de Projeto: Template Method (Método Template)Android
ConstraintLayout, Melhor Performance no AndroidConstraintLayout, Melhor Performance no AndroidAndroid
Checkout Transparente da Web no AndroidCheckout Transparente da Web no AndroidAndroid

Compartilhar

Comentários Facebook

Comentários Blog

Para código / script, coloque entre [code] e [/code] para receber marcação especifica.
Forneça seu nome válido.
Forneça seu email válido.
Forneça o comentário.
Enviando, aguarde...