Autore Topic: Visualizzzare banner pubblicità AdMob con ritardo  (Letto 477 volte)

Offline Mrpaoletto

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S3
  • Sistema operativo:
    Mac OS X 10.8
Visualizzzare banner pubblicità AdMob con ritardo
« il: 03 Dicembre 2014, 17:20:06 CET »
0
Salve, avrei una curiosità da chiedervi. Ho inserito un banner adMob nella parte alta della mia app ma aggiornando le google play service ho notato che mi crea un fastidioso spazio bianco già preallocato prima del caricamento della pubblicità al suo interno.
Volevo chiedervi se è possibile caricare il banner senza avere lo spazio bianco oppure caricare la pubblicità dopo un tot di secondi. Ovviamente qualora ci fosse una soluzione l'importante è che sia conferme alla norme di adMob.

Vi allego il codice in xml e java

Codice (XML): [Seleziona]
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:ads="http://schemas.android.com/apk/res-auto"
   xmlns:tools="http://schemas.android.com/tools"
   android:id="@+id/linearLayoutPubblicArticolo"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:orientation="vertical" >

    <com.google.android.gms.ads.AdView
       android:id="@+id/adView"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       ads:adSize="LARGE_BANNER"
       ads:adUnitId="@string/banner_ad_unit_id"
       />

    <ScrollView
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:layout_alignParentBottom="true"
       android:layout_below="@+id/adView"
       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=".ActivityArticolo" >
........
 

Codice (Java): [Seleziona]
 AdView adView = (AdView)this.findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        adView.loadAd(adRequest);


Offline eagledeveloper

  • Translate Team
  • Utente senior
  • ****
  • Post: 516
  • Respect: +37
    • Google+
    • 347516210
    • dark_pinz
    • @WandDStudios
    • Mostra profilo
    • W&D Studios
  • Dispositivo Android:
    HTC One X e HTC One
  • Play Store ID:
    W%26D+Studios
  • Sistema operativo:
    Ubuntu / Windows 7
Re:Visualizzzare banner pubblicità AdMob con ritardo
« Risposta #1 il: 04 Dicembre 2014, 08:15:24 CET »
0
Io in genere faccio nel seguente modo.
Metto la View o il Layout invisibile, poi metto un Listener quando carico il banner, se il banner viene caricato correttamente rendo visibile la View o il Layout altrimenti la lascio invisibile.
I numeri contano molto di più del seme.

Offline Mrpaoletto

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S3
  • Sistema operativo:
    Mac OS X 10.8
Re:Visualizzzare banner pubblicità AdMob con ritardo
« Risposta #2 il: 04 Dicembre 2014, 10:04:30 CET »
0
Io in genere faccio nel seguente modo.
Metto la View o il Layout invisibile, poi metto un Listener quando carico il banner, se il banner viene caricato correttamente rendo visibile la View o il Layout altrimenti la lascio invisibile.
Ok grazie mille, seguirò il tuo consiglio. Gentilmente hai qualche frammento di codice da far visionare (qualsiasi tipo di esempio). Grazie ;)

Offline arlabs

  • Utente normale
  • ***
  • Post: 434
  • Respect: +49
    • Mostra profilo
  • Dispositivo Android:
    GalaxyS6, Nexus5
  • Play Store ID:
    AR Labs
  • Sistema operativo:
    Windows 10
Re:Visualizzzare banner pubblicità AdMob con ritardo
« Risposta #3 il: 04 Dicembre 2014, 10:28:02 CET »
0
Io metto semplicemente il banner in un FrameLayout in cui metto il background che preferisco (che può essere uguale a quello del resto della activity)

Offline eagledeveloper

  • Translate Team
  • Utente senior
  • ****
  • Post: 516
  • Respect: +37
    • Google+
    • 347516210
    • dark_pinz
    • @WandDStudios
    • Mostra profilo
    • W&D Studios
  • Dispositivo Android:
    HTC One X e HTC One
  • Play Store ID:
    W%26D+Studios
  • Sistema operativo:
    Ubuntu / Windows 7
Re:Visualizzzare banner pubblicità AdMob con ritardo
« Risposta #4 il: 04 Dicembre 2014, 10:59:49 CET »
+1
Anche questa può essere una soluzione, io uso il listener da quando ho messo gli acquisti in app per rimuove la pubblicità.
Ecco uno stralcio di esempio:

Codice (Java): [Seleziona]
public class LayoutAdListener extends AdListener {
     
    private final LinearLayout layout;
    private boolean hide = false;
     
    public LayoutAdListener(LinearLayout layout) {
        this.layout = layout;
    }
     
    public LayoutAdListener(LinearLayout layout, boolean hide) {
        this.layout = layout;
        this.hide = hide;
    }
 
    @Override
    public void onAdLoaded() {
        setVisibility();
    }
     
    @Override
    public void onAdFailedToLoad(int errorCode) {
        hide = true;
        setVisibility();
    }
     
    private void setVisibility() {
        layout.setVisibility(hide ? View.GONE : View.VISIBLE);
    }
 
}

E poi quando carico il banner:

Codice (Java): [Seleziona]
adView = new AdView(this);
adView.setAdUnitId(getString(R.string.ad_mob_banner_id));
adView.setAdSize(AdSize.SMART_BANNER);
LinearLayout layout = (LinearLayout) findViewById(R.id.adMobLayout);
layout.addView(adView);
layout.setVisibility(View.GONE);
adView.setAdListener(new LayoutAdListener(layout, new ObscuredSharedPreferences(this).getBoolean(Config.SKU_PREMIUM, false)));
// AdRequest adRequest = new AdRequest.Builder().addTestDevice("B9D5DA2DA0DA4C1C22B10D864C370C9B").build();
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);

Al LayoutAdListener passo un boolean, quando è true il banner non si vede mai (l'utente ha acquistato la rimozione delle pubblicità) altrimenti false che visualizza il banner solo nel caso venga caricato correttamente.
I numeri contano molto di più del seme.

Offline Mrpaoletto

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S3
  • Sistema operativo:
    Mac OS X 10.8
Re:Visualizzzare banner pubblicità AdMob con ritardo
« Risposta #5 il: 04 Dicembre 2014, 14:17:18 CET »
0
Anche questa può essere una soluzione, io uso il listener da quando ho messo gli acquisti in app per rimuove la pubblicità.
Ecco uno stralcio di esempio:

Codice (Java): [Seleziona]
public class LayoutAdListener extends AdListener {
     
    private final LinearLayout layout;
    private boolean hide = false;
     
    public LayoutAdListener(LinearLayout layout) {
        this.layout = layout;
    }
     
    public LayoutAdListener(LinearLayout layout, boolean hide) {
        this.layout = layout;
        this.hide = hide;
    }
 
    @Override
    public void onAdLoaded() {
        setVisibility();
    }
     
    @Override
    public void onAdFailedToLoad(int errorCode) {
        hide = true;
        setVisibility();
    }
     
    private void setVisibility() {
        layout.setVisibility(hide ? View.GONE : View.VISIBLE);
    }
 
}

E poi quando carico il banner:

Codice (Java): [Seleziona]
adView = new AdView(this);
adView.setAdUnitId(getString(R.string.ad_mob_banner_id));
adView.setAdSize(AdSize.SMART_BANNER);
LinearLayout layout = (LinearLayout) findViewById(R.id.adMobLayout);
layout.addView(adView);
layout.setVisibility(View.GONE);
adView.setAdListener(new LayoutAdListener(layout, new ObscuredSharedPreferences(this).getBoolean(Config.SKU_PREMIUM, false)));
// AdRequest adRequest = new AdRequest.Builder().addTestDevice("B9D5DA2DA0DA4C1C22B10D864C370C9B").build();
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);

Al LayoutAdListener passo un boolean, quando è true il banner non si vede mai (l'utente ha acquistato la rimozione delle pubblicità) altrimenti false che visualizza il banner solo nel caso venga caricato correttamente.

Grazie mille sono riuscito a risolvere modificando solamente un po il codice che hai postato!

Offline eagledeveloper

  • Translate Team
  • Utente senior
  • ****
  • Post: 516
  • Respect: +37
    • Google+
    • 347516210
    • dark_pinz
    • @WandDStudios
    • Mostra profilo
    • W&D Studios
  • Dispositivo Android:
    HTC One X e HTC One
  • Play Store ID:
    W%26D+Studios
  • Sistema operativo:
    Ubuntu / Windows 7
Re:Visualizzzare banner pubblicità AdMob con ritardo
« Risposta #6 il: 04 Dicembre 2014, 15:54:53 CET »
0
Ottimo :)
I numeri contano molto di più del seme.