สำหรับ Developer ที่ต้องการสร้างรายได้จาก Ads บน Android App ส่วนใหญ่นิยมใช้ AdMob จาก Google กัน เนื่องจาก Google มี AdMob SDK ให้ใช้พัฒนา App ได้ไม่ยากนัก และสามารถทำเงินได้จริง ซึ่งจากที่ได้ทำ App Nexus Update Checker และติด AdMob มาซักระยะ ก็พบว่า มี User บางส่วน ที่ไม่ชอบ Ads ได้ email มาขอร้องให้ทำ Version No Ads แล้วขายบน Google Play Store ซึ่ง ในขณะนี้ Google ยังไม่เปิดให้คนไทยส่ง App ขึ้นไปขาย แต่ที่โหดร้ายกับ Developer ก็คือ มี User บางส่วน พยายามหาทาง “Block Ads” ซึ่งเป็นการตัดโอกาสสร้างรายได้แก่ผู้พัฒนา App ที่เกิดจากการคลิก Ads อันน้อยนิดไปซะอีก (คลิกที่เกิดในประเทศไทย ทำเงินให้ Developer ประมาณ $0.01 เท่านั้น) ผมจึงเกิดแนวคิดที่ว่า ถ้า Developer ทุกคน ช่วยกันดัดหลัง User เหล่านี้ พอจะทำอะไรได้บ้าง…
คิดไปคิดมา ผมก็ปิ๊ง Idea ที่ว่า AdMob SDK นั้น เราสามารถดัก Event ได้ว่า มีการโหลด Ads สำเร็จแล้วหรือยัง ซึ่งเราก็สามารถนำจุดนี้ มา On/Off Feature ของ App เราได้ มาดู Code กันเลยดีกว่า
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
package com.ethanf.admob.enablefeature; import android.content.Context; import android.util.Log; import android.view.View; import com.google.ads.*; import com.google.ads.AdRequest.ErrorCode; public class ExActivity extends Activity { private Context context; private String tag; private RelativeLayout LayoutAds; private AdView adView; private final String AD_UNIT_ID = "a00000000000000"; private boolean enableFeature; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_ex); // Context context = this; // LogTag tag = getString(R.string.app_name); // Matching view LayoutAds = (RelativeLayout) findViewById(R.id.LayoutAds); // Ads // Ref.: https://developers.google.com/mobile-ads-sdk/docs/admob/fundamentals // Create the adView adView = new AdView(this, AdSize.BANNER, AD_UNIT_ID); adView.setAdListener(new AdListener() { public void onReceiveAd(Ad arg0) { enableFeature = true; } public void onPresentScreen(Ad arg0) { } public void onLeaveApplication(Ad arg0) { } public void onFailedToReceiveAd(Ad arg0, ErrorCode arg1) { enableFeature = false; } public void onDismissScreen(Ad arg0) { } }); adView.loadAd(new AdRequest()); LayoutAds.addView(adView); // ... } @Override protected void onDestroy() { if (adView != null) adView.destroy(); super.onDestroy(); } } |
สำหรับ Developer ที่เคยเขียน Android App คงอ่าน Code เข้าใจนะครับ หากใครสงสัยตรงจุดไหน โพสถามได้นะครับ
Download LoadAdsBeforeEnableFeature.java