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 /Estratégia de Anúncios com In Loco Media no Android

Estratégia de Anúncios com In Loco Media no Android

Vinícius Thiengo10/10/2016, Segunda-feira, às 11h
(829) (6) (57) (24)
Go-ahead
"Construa uma voz e uma opinião em primeiro lugar e, em seguida, se essas ressoam com o público, então você vai ter uma audiência."
Adam Carolla
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 vamos apresentar a API de anúncios Android, In Loco Media, uma startup brasileira de anúncios mobile. Vamos também utilizar uma APP com uma estrutura convencional, com lista de itens e Activity de detalhes, para colocar os anúncios estrategicamente nela, uma maneira de fazer com APPs am produção.

Nesse artigo os seguintes tópicos serão abordados:

O que é? Como funciona?

O grande diferencial da API de anúncios da In Loco Media é o algoritmo de apresentação de anúncios. Trabalhando com geo posicionamento a API da In Loco permite uma precisão entre 1 a 3 metros do local definido pelo anunciante no momento de criar a campanha.

Mas para que precisão? Para que geo posicionamento?

Diferentemente de outras APIs que trabalham o modo de uso do usuário e contexto da APP para apresentar anúncios relevantes, a In Loco Media, além de trabalhar o contexto, permite também que o anunciante defina um local para que seja possível realizar o tracking do usuário pelo tempo de 24 horas desde o clique no anúncio para saber se ele foi ao local físico definido na campanha.

Esse local pode ser um estado, cidade, rua e até mesmo a loja da empresa em campanha.

Com isso, no dashboard de anunciante da In Loco Media é possível também saber se o usuário esteve no local físico depois do clique. Incluindo a apresentação de dados para saber se o usuário ficou ao menos cinco minutos no local.

Com essa tecnologia da In Loco também é possível saber qual o meio de transporte do usuário. Segundo informações no site da startup, até mesmo se o usuários estava subindo escadas, andando ou correndo.

Segundo informações da startup, a tecnologia que trabalha com WiFi, acelerômetro e sensor de magnetismo, foi eleita pela IEEE (isso mesmo, a I3E) a tecnologia in door mais precisa atualmente.

Agora a parte que interessa aos developers: modelo de monetização. O modelo é o convencional CPM (custo por mil impressões) e CPC (custo por clique). O cadastro de conta para recebimento pode ser de uma conta no BCash ou a conta bancária do programador.

Na documentação tem um trecho sobre o modelo de coleta de dados, mas nada informando sobre se esse já está valendo como, também, um modo de monetizar utilizando a API da In Loco Media.

Ainda é possível e recomendado pela startup, a utilização de redes de anúncios terceiras a In Loco como mediadoras. Segundo a documentação da API da In Loco, dessa forma é possível ampliar os ganhos. As ad networks aceitáveis são: AdMob, Double Click e MoPub.

Construindo o projeto de anúncios

Aqui vou colocar apenas o código da API de anúncios adicionado na APP de futebol que é o projeto de exemplo, mas caso queira acessar todo o conteúdo acesse o GitHub: GeoLocationAds.

Primeiro passo é criar uma conta de developer acessando: In Loco Media Sign Up.

Os campos de URL de APP na Play ou APP Store são opcionais, ou seja, se ainda estiver com a APP somente em ambiente de desenvolvimento pode mesmo assim seguir com o cadastro.

Conta cadastrada e acesso realizado, no Menu esquerdo você tem a opção "View my account", clique nela e logo depois clique na aba "RECEIVING". Escolha como quer receber seus ganhos, BCash ou conta bancária convencional.

Na aba "USER DATA" você ainda tem vários campos a serem preenchidos para completar sua conta.

Note que você não precisa preencher como quer receber os ganhos para poder seguir com a instalação da API, pode deixar essa tarefa para depois.

Agora, ainda no menu esquerdo, clique em "Referrals". Clique no botão de aceito dos Termos e Condições da In Loco e então será apresentado a ti um link.

Se algum developer se inscrever com esse link, durante seis meses você receberá, além de seus próprios ganhos com a API da In Loco, o equivalente a 10% dos ganhos do developer que se cadastrou com seu link. Essa é uma outra maneira de divulgar a empresa e nós developers ampliarmos nossos ganhos.

Com isso vamos prosseguir com a criação da APP no dashboard da In Loco Media.

Clique em "New App" no menu esquerdo. Caso ainda não tenha sua APP já na PlayStore, clique na aba "Manually Add".

Observação: No vídeo falei que essa forma de fornecer a APP no dashboard da IN loco era somente para APPs em ambiente de desenvolvimento, porém em nenhum momento a documentação e até mesmo o formulário de cadastro de APP informa isso, logo, vamos assumir que esse caminho é válido também para APPs em produção.

Em seguida coloque o nome da APP, escolha a categoria e clique em "FINISH".

Abaixo a imagem da APP de futebol:

Dessa vez estamos com uma APP completa devido as estratégias de colocação de anúncios que vamos também abordar nesse artigo. Segue link para download da APP no GitHub: https://github.com/viniciusthiengo/GeoLocationAds.

E enfim vamos seguir com o código. Começando pelas referências que devem ser adicionadas ao Gradle APP Level, build.gradle (Module: app):

apply plugin: 'com.android.application'
android {
compileSdkVersion 24
buildToolsVersion "24.0.2"
defaultConfig {
applicationId "br.com.thiengo.geolocationads"
minSdkVersion 10
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'
compile 'com.android.support:design:24.2.1'
testCompile 'junit:junit:4.12'

compile 'com.inlocomedia.android:android-sdk:2.3.+'
compile 'com.google.android.gms:play-services-ads:9.6.1'
compile 'com.google.android.gms:play-services-location:9.6.1' /* OPCIONAL */
}

 

Dependendo do tempo que estiver lendo esse artigo o Google Play Services deve estar em uma nova versão, utilize ela. Fique atento a configuração acima, pois a configuração do gradle apresentada na documentação da In Loco está desatualizada, até mesmo a referência a API da In Loco está com a versão 2.2, aqui vamos seguir com a mais atual, 2.3.

A referência abaixo:

...
compile 'com.google.android.gms:play-services-location:9.6.1'
...

 

É opcional, mas melhora o target e consequentemente apresenta anúncios mais relevantes aos usuários.

A referência anterior somente é obrigatória caso sua APP trabalhe também com anúncios em notificação, push message. Anúncios em notificação é outro modo de anúncios oferecido pela In Loco.

Nesse caso o geo posicionamento é utilizado para permitir o disparo da notificação quando o usuário está próximo a algum local definido nas campanhas de anúncios criadas no dashboard da In Loco.

Ou seja, a tecnologia de geo posicionamento é utilizada também para apresentar anúncios quando o usuário está no local correto, no mundo físico.

Nesse exemplo não trabalhamos com a versão de anúncios em notificação, para saber mais sobre esse tipo de anúncio com a API da In Loco Media acesse: In Loco Notification Ads.

Agora podemos seguir com a configuração no AndroidManifest.xml. Acrescente os trechos em destaque:

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

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- Optional for additional targeting -->
<uses-permission android:name="com.google.android.gms.permission.ACTIVITY_RECOGNITION" />

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:name=".CustomApplication">

<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />

...
</application>
</manifest>

 

Note que na tag <application> já adicionei a referência a CustomApplication, pois vamos precisar de uma classe que herde de Application para iniciar a API da In Loco Media. No decorrer do conteúdo apresentarei o código de CustomApplication.

Você provavelmente deve ter notado a utilização de uma dangerous permission, mais precisamente a permissão ACCESS_FINE_LOCATION.

Se não entendeu o "dangerous permission" anterior não deixe de, logo depois de ler esse artigo, acessar o post com vídeo que tem aqui no Blog sobre o assunto: Sistema de Permissões em Tempo de Execução, Android M.

Na documentação da In Loco somente encontrei um método de requisição de permissão sendo utilizado, mais precisamente na parte referente a anúncios em notificação. Consequentemente no vídeo acabei não colocando a chamada ao método devido a não utilizar o modelo de anúncios em push message.

Porém, codificando depois de finalizado o vídeo, encontrei a possibilidade de requisição de permissão por meio do método InLocoMedia.requestLocationPermission(this, true) onde o primeiro parâmetro é o contexto, Activity, o segundo é um booleano indicando se a requisição deve ser feita mesmo se já negada.

Existem vários outros métodos de requisição de permissão na API da In Loco, mas a princípio o método informado no parágrafo anterior é a melhor opção.

Há a possibilidade de que esses métodos de requisição sejam invocados internamente pela API quando identificada a necessidade, mas a princípio não há essa definição nos trechos que li na documentação e nem na descrição dos métodos no código da API.

Com isso pdemos prosseguir com o código da CustomApplication, que será responsável por inicializar a In Loco Media API na APP:

public class CustomApplication extends Application {
@Override
public void onCreate() {
super.onCreate();

InLocoMediaOptions options = InLocoMediaOptions.getInstance(this);
options.setAdsKey("In Loco APP ID");
options.setLogEnabled(true);
options.setDevelopmentDevices("Device ID");

InLocoMedia.init(this, options);
}
}

 

Lembra da APP que criamos no dashboard da In Loco Media? Então, volte ao dashboard, acesse a APP e copie o App ID. Cole esse ID no local indicado do código acima.

O Device ID, setDevelopmentDevices("Device ID"), apenas vamos ter acesso depois de executar a APP com a API da In Loco configurada. Digo, esse ID será apresentado nos logs do AndroidStudio.

O método setLogEnabled(true) permite que as mensagens de debug da API, ou verbose, sejam apresentadas nos logs do IDE.

Com isso podemos criar um Ad Unit ID no dashboard da In Loco para logo em seguida iniciarmos as configurações para a apresentação de anúncios dos tipos Banner e Interstitial.

Siga os passos a seguir no dashboard:

  • Clique em "New Ad Unit" no menu esquerdo;
  • Selecione a APP que criou a pouco e clique em "NEXT";
  • Defina um nome para seu Ad Unit. Aqui vou utilizar MainActivity, pois é o local onde vou inicializar e apresentar a unidade de anúncio sendo criada;
  • Em "Ad Unit type" selecione "Banner";
  • Os outros campos pode deixar com os valores padrões. Note que em "Ad categories" você pode escolher mais de uma categoria, porém se não selecionar nenhuma todas serão utilizadas.

Quando a unidade de anúncio está criada:

Com isso volte ao projeto e na MainActivity acrescente o seguinte método:

...
private void initAds(){
adView = new AdView(this);
adView.setType(AdType.DISPLAY_BANNER_SMALL );

AdRequest adRequest = new AdRequest();
adRequest.setAdUnitId("In Loco Ad Unit ID");

adView.loadAd(adRequest);
}
...

 

Volte ao dashboard, clique em sua APP, logo depois clique na unidade de anúncios que criou e então copie o "Ad Unit ID" e cole no lugar de "In Loco Ad Unit ID" do código acima.

No onCreate() da MainActivity adicione uma chamada ao método initAds(), no final do método, e também adicione como variável de instância um atributo adView do tipo AdView:

...
private AdView adView;
...
@Override
protected void onCreate(Bundle savedInstanceState) {
...

initAds();
}
...

 

Agora, seguindo as recomendações da documentação, coloco o objeto AdView acompanhando o estado da Activity pelos métodos de ciclo de vida dela: onResume(), onPause() e onDestroy(). Segue:

...
@Override
protected void onResume() {
super.onResume();
if( adView != null ){
adView.resume();
}
}

@Override
protected void onPause() {
if(adView != null){
adView.pause( isFinishing() );
}
super.onPause();
}

@Override
protected void onDestroy() {
if(adView != null){
adView.destroy();
}
super.onDestroy();
}
...

 

Note que o método isFinishing() é nativo a Activity e informa se a Activity está realmente sendo finalizada ou apenas indo para um nível abaixo na pilha de activities, quando o device recebe uma ligação, por exemplo.

O argumento deve ser false caso você não tenha acesso ao método isFinishing().

Esse trecho referente ao acompanhamento do ciclo de vida da Activity não ficou muito claro quanto a importância dele, pois o anúncio funciona mesmo sem o trecho. Porém, com receio da não contagem de cliques e impressões, adicione.

Note que o conteúdo principal de nossa MainActivity está no layout content_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/content_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"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="br.com.thiengo.geolocationads.MainActivity"
tools:showIn="@layout/app_bar_main"
android:orientation="vertical">

<ListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
</LinearLayout>

 

Nele estamos utilizando um LinearLayout com orientação vertical para que o AdView seja inserido logo abaixo do ListView, que por sinal está utilizando a configuração de peso, layout_weight, para poder ocupar na vertical todo o espaço restante.

Apesar dessa configuração de layout ser pouco eficiente é a que funcionou quando adicionando o AdView dinamicamente e com delay, pelo Java API.

O ListView se ajusta para que o AdView fique visível. Com o RelativeLayout o ajuste não ocorre.

Mas o AdView tem uma versão com XML, não?

Sim, mas em meus testes essa versão via XML não funcionou. Mesmo utilizando o namespace indicado na documentação, os atributos app:ubAdTypeapp:ubLoadOnAttach não foram reconhecidos.

Voltando ao método initAds(), acrescente o seguinte código:

private void initAds(){
...

LinearLayout root = (LinearLayout) findViewById(R.id.content_main);
root.addView( adView );
}

 

Não se preocupe com o LayoutParams, ele não é necessário. Com isso o AdView está sendo incluído no layout.

Agora acesse novamente o dashboard da In Loco e então realize o mesmo processo de criação de unidade de anúncio para sua APP, porém dessa vez escolha em "Ad Unit type" o tipo Interstitial ao invés de Banner. Para o nome, aqui vamos utilizar GameActivity que é a Activity que o Interstitial será apresentado:

Logo depois acesse a GameActivity de nosso projeto de exemplo e acrescente o seguinte código:

...
private InterstitialAd interstitialAd;
...
private void initAds(){
InterstitialAd iAd = new InterstitialAd(this);
iAd.setInterstitialAdListener(new InterstitialAdListener(){
@Override
public void onAdReady(InterstitialAd ad) {
super.onAdReady(ad);
interstitialAd = ad;
}

@Override
public void onAdClosed(InterstitialAd ad) {
super.onAdClosed(ad);
finish();
}
});

AdRequest adRequest = new AdRequest();
adRequest.setAdUnitId( "In Loco Unit Ad ID" );

iAd.loadAd(adRequest);
}
...

 

No dashboard obtenha o ID de unidade de anúncio Interstitial que criou e coloque no lugar de "In Loco Unit Ad ID".

A variável de instância interstitialAd vai nos permitir apresentar o anúncio Interstitial no momento certo, mesmo carregando o anúncio bem antes da apresentação dele.

Lembrando que a GameActivity é a Activity de detalhes do jogo, responsável por apresentar os comentários de um jogo selecionado na MainActivity. Essa activity acessada teria a tela como:

Nosso objetivo na GameActivity é apresentar o anúncio somente depois que o usuário deixá-la. Logo, ainda devemos sobrescrever o método onBackPressed() dessa Activity:

...
@Override
public void onBackPressed() {
if( interstitialAd != null ){

interstitialAd.show();
}
else{
super.onBackPressed();
}
}
...

 

O código acima, junto a lógica de negócio para o listener InterstitialAdListener(), nos permite isso: apresentar o anúncio somente se ele já estiver carregado e na saída do usuário da GameActivity.

No onCreate() de nosso código de exemplo não esqueça de acrescentar a chamada ao método initAds() da GameActivity:

...
@Override
protected void onCreate(Bundle savedInstanceState) {
...

if( getIntent() != null
&& getIntent().getParcelableExtra("game") != null ){
...

initAds();
}
...
}
...

 

Rodando a APP ainda estaríamos trabalhando com a In Loco Media API em modo produção, pois ainda não obtivemos o device ID para incluir no código de nossa CustomApplication. Logo, execute a APP e nos logs do AndroidStudio copie o código apresentado como no modelo abaixo:

To get test ads on this device, call inLocoMediaOptions.setDevelopmentDevices("5CC76A49D7A342E3ADD37DB1AFEBE9");

 

Cole esse ID no local correto em CustomApplication:

public class CustomApplication extends Application {
@Override
public void onCreate() {
...
options.setDevelopmentDevices("5CC76A49D7A342E3ADD37DB1AFEBE9");

InLocoMedia.init(this, options);
}
}

 

Agora execute novamente. A MainActivity será similar a:

Clicando em algum item e logo depois saindo dele temos o anúncio Interstitial sendo apresentado:

Você já poderia parar por ai com a integração, mas ainda há um problema. Toda vez que o usuário entrar para ler os comentários do jogo terá o anúncio sendo apresentado a ele quando deixar a GameActivity.

Isso pode ser um grande incentivo para alguns usuários removerem a APP.

Logo, vamos apresentar o anúncio a cada três entradas em GameActivity, para isso vamos utilizar como apoio o SharedPreferences. Segue código da nova classe, CountAds:

public class CountAds {
public static void incrementCounter(Context context){
SharedPreferences sp = context.getSharedPreferences("sp_db", Context.MODE_PRIVATE);
int count = sp.getInt("count", 0);
count++;
sp.edit().putInt("count", count).apply();
}

public static boolean isUpToShowAd( Context context ){
SharedPreferences sp = context.getSharedPreferences("sp_db", Context.MODE_PRIVATE);
int count = sp.getInt("count", 0);
return count % 3 == 0;
}
}

 

O primeiro método é para sempre incrementarmos a variável presente no SharedPreferences. O segundo é para verificar se já temos um valor múltiplo de 3 ou o valor 0. Caso não conheça o SharedPreferences acesse o artigo que tenho aqui no blog somente sobre ele, incluindo vídeo: SharedPreferences no Android, Entendendo e Utilizando

Com isso acrescente o seguinte código em GameActivity:

public class GameActivity extends AppCompatActivity {
...

@Override
public void onBackPressed() {
if( interstitialAd != null
&& CountAds.isUpToShowAd(this) ){

interstitialAd.show();
}
else{
super.onBackPressed();
}
}

@Override
protected void onDestroy() {
CountAds.incrementCounter(this);
super.onDestroy();
}
}

 

Utilizando essa estratégia não vamos apresentar o anúncio toda vez que o usuário deixar GameActivity. Assim finalizamos a integração da API da In Loco Media, incluindo duas estratégias de apresentação de anúncios.

Na documentação deles há ainda mais conteúdo, sobre:

Outras APIs para monetização

Abaixo deixo o link para outros artigos de APIs de anúncio presentes aqui no Blog:

Vídeo com implementação passo a passo

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

Para acessar o projeto por completo entre no GitHub a seguir: https://github.com/viniciusthiengo/GeoLocationAds.

Conclusão

Como falei no vídeo e início de artigo, a startup é brasileira e a tecnologia inovadora. Como acontece com a API do Appnext, o foco é mais no anunciante do que no dev, ao menos o diferencial da In Loco Media, geo posicionamento, traz mais vantagens ao anunciante.

Porém eles são bem transparentes e nas perguntas frequentes deixam claro que o valor do anúncio que fica com o developer está entre 60 e 80%.

Minha real expectativa com essa transparência é que a rentabilidade das APPs que utilizarem anúncios da In Loco Media seja maior que a rentabilidade quando utilizando APIs de plataformas de anúncios que otimizam pensando no lado do developer, como o APPOdeal.

Como pontos negativos encontrei:

  • Documentação somente em inglês;
  • Documentação desatualizada, as referências ao Google Play Services ainda eram da versão 8.4.0. No momento dessa postagem já estava na versão 9.6.1;
  • A necessidade de utilizar o AdView junto a alguns métodos do ciclo de vida da Activity. Mesmo esse algoritmo não bloqueando o funcionamento dos anúncios em banner, a palavra "need" expressa a importância de seguir o apresentado na documentação. Problema? Não é trivial utilizar o modelo de anúncio entre os itens da lista (ListView, GridView ou RecyclerView), algo muito utilizado hoje em dia;
    • Correção: A API da in Loco tem o Native Ads in List que é somente para isso, colocar banners entre itens de listas.
  • O AdView XML não funcionou, dois atributos não foram reconhecidos;
  • O conteúdo sobre coleta de dados não ficou claro quanto a pagamento. Quem já utiliza APIs de anúncio que tem também a rentabilidade por meio de coleta de dados, AppJolt, por exemplo, fica confuso quanto a monetização quando utilizando a versão da API da In Loco;
  • Na parte de anúncios por notificação não ficou claro se devo ou não trabalhar como "Advertiser" e "Publisher" para conseguir realizar os testes;
  • Não está definido se quando executando no Android 6 ou superior, se os scripts internos da API vão se responsabilizar em solicitar as dangerous permissions.

Apesar dos pontos negativos acima, o único que vejo como crítico a não atualização da documentação. A integração da API é simples, seguindo um padrão na industria de ads mobile.

Recomendo o teste com a API, principalmente por ser uma startup brasileira, com o feedback é que eles vão corrigir e evoluir. E, obviamente, não esqueça de comparar com o APPOdeal, digo, a rentabilidade, e solicitar otimização nos ganhos caso necessário.

APPOdeal, pois até o momento é a plataforma de maior rentabilidade, digo, quando comparada as outras APIs de anúncios apresentadas aqui.

Fontes

In Loco Media

Wiki da documentação da API In Loco media para Android

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

ConstraintLayout, Melhor Performance no AndroidConstraintLayout, Melhor Performance no AndroidAndroid
Checkout Transparente da Web no AndroidCheckout Transparente da Web no AndroidAndroid
Appnext para Monetizar sua APP AndroidAppnext para Monetizar sua APP AndroidAndroid
OneSignal Para Notificações em Massa no AndroidOneSignal Para Notificações em Massa no AndroidAndroid

Compartilhar

Comentários Facebook (2)

Comentários Blog (4)

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...
brizioalmeida2013 (1) (0)
17/10/2016, Segunda-feira, às 10h
olá thiengo tudo bem,  kkkk cara eu estou em um projeto meu que é exatamente uma App de futebol mas com algumas coisas bem legais, por ser meu primeiro projeto vc me aconselha já incluir essa api? no caso de usá-la só pode ser uma, ou  posso usar outras em conjunto?
Responder
Vinícius Thiengo (1) (0)
17/10/2016, Segunda-feira, às 10h
Almeida, blz?

Aconselho sim. E, como você lembrou, utilize outras APIs de anúncios em conjunto. Por exemplo:

AppJolt para monetizar quando houver remoção da APP e para monetização com coleta de dados (http://www.thiengo.com.br/monetizando-sua-app-android-com-appjolt-no-uninstall);

Teste também os anúncios com a API do APPOdeal, pois até o momento, pelos feedbacks que obtive, é a que está gerando mais receita para os developers.

Caso não conheça o APPOdeal, veja o artigo que tenho sobre ele aqui:

http://www.thiengo.com.br/monetizacao-eficiente-no-android-com-appodeal

Abraço
Responder
14/10/2016, Sexta-feira, às 16h
Ótimo conteúdo, como sempre!
Responder
Vinícius Thiengo (0) (0)
15/10/2016, Sábado, às 09h
Vlw Thyerri. Abraço
Responder