2013-05-10 35 views
5

Tôi có ứng dụng Android nơi tôi triển khai quảng cáo AdMob.AdMob - hiệu suất tốt hơn trong hoạt động android

mã bố trí của tôi rất đơn giản - thêm AdView vào LinearLayout:

<com.google.ads.AdView 
    android:id="@+id/adMob1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    ads:adSize="BANNER" 
    ads:adUnitId="{AdID}" /> 

Trong MyActivity trong onCreate() phương pháp tôi kêu gọi:

boolean showAdds = true; 
    if(this.showAdds) { 
     AdView adView = (AdView) findViewById(R.id.adMob1); 
     adView.loadAd(new AdRequest()); 
    } 

Trên một số thiết bị Android cũ (thử nghiệm ví dụ trên Samsung Galaxy S1) sau khi triển khai AdMob, ứng dụng rất chậm. Nhưng khi tôi đặt biến "showAdds" thành "false" -> việc tải MyActivity là tốt hơn nhiều.

Có khả năng làm cho ứng dụng bằng admob nhanh hơn không?

Cảm ơn tất cả các nhận xét.

Trả lời

-1

Để cải thiện hiệu suất, sử dụng một trong hai ads:loadAdOnCreate="true" trong việc thực hiện XML của quảng cáo của bạn (Sau đó, bạn sẽ không cần phải gọi đó là mã java, mọi thứ sẽ được thực hiện từ XML)

khác bạn có thể loại bỏ các showadds boolean. Có thể điều đó đang gây chậm lại.

Tôi đã triển khai mã mà không có mã showadd này và chúng hoạt động tốt trên các thiết bị Thấp hơn có tính năng hiển thị nhanh được hiển thị.

More Info Here

7

Tôi cũng đã được đấu tranh với AdView tăng thời gian tải ứng dụng. Giải pháp của tôi là để di chuyển các mã quảng cáo vào một handler chậm trễ (trong onCreate) ...

final Handler handler = new Handler(); 
handler.postDelayed(new Runnable() { 
    @Override 
    public void run() { 
    AdRequest adRequest = new AdRequest.Builder().build(); 
    adView.loadAd(adRequest); 
    adView.bringToFront(); 
    } 
}, 5000); 

Vì vậy, bây giờ là ứng dụng bắt đầu một cách nhanh chóng và sau đó sau 5s các adview được tải. (p.s. .bringToFront được sử dụng vì bố cục ứng dụng của tôi sử dụng hỗn hợp XML và mã, do đó, điều này sẽ ngăn không cho adView bị ẩn)

-2

Di chuyển adView của bạn vào trạng thái nền.

onCreate(){ 
     //..some other stuff 

     Runnable runnableAdView = new Runnable() { 
      @Override 
      public void run() { 
       initAdView(); 
      } 
     }; 
     new Thread(runnableAdView).start(); 
} 

    private void initAdView() { 

    // Create the adView 
    adView = new AdView(this, AdSize.BANNER, getResources().getString(
      R.string.admob_id)); 

    // Lookup your LinearLayout assuming its been given 

    LinearLayout layout = (LinearLayout) findViewById(R.id.sound_share_screen_ad_container); 

    // Add the adView to it 
    layout.addView(adView); 

    // Initiate a generic request to load it with an ad 
    AdRequest adRequest = new AdRequest(); 
    //adRequest.addTestDevice(AdRequest.TEST_EMULATOR); 
    //... 

    adView.loadAd(adRequest); 
} 
+2

này bị treo với Dịch vụ Play mới dựa Quảng cáo, họ phải được chạy trên giao diện người dùng đề. – mbwasi

+1

bạn được hoan nghênh cập nhật ví dụ về mã – longilong

1

AdView sẽ tải chế độ xem web nội bộ khi khởi động lần đầu. Nó cần phải tạo ra các cửa hàng cookie vv Điều này sẽ có giá lên đến 2 giây. Nếu bạn tải một chế độ xem web trước adView thì nó sẽ được hưởng lợi từ nó (có thể trên màn hình khởi động của bạn).

tôi thấy gợi ý này ở đây: https://groups.google.com/forum/#!topic/google-admob-ads-sdk/LdUVIZ2AW6M

Các vấn đề liên quan