สร้างรายได้ให้แอพของเราด้วย Admob

สร้างรายได้ให้แอพของเราด้วย Admob Cover Image

เนื่องจากวันนี้ผมเพิ่งได้ทำการเปลี่ยนระบบจ่ายเงินของ Admob แบบใหม่พอดี ซึ่งแบบใหม่ ไม่สามารถทำการจ่ายเงินด้วย Paypal ได้แล้ว ใช้การโอนเงินผ่าน Wire Transfer แทน พอดีไปเห็นว่าทาง Admob เปลี่ยน URI ใหม่ด้วย กลายเป็น https://apps.admob.com ซะแล้ว แล้วก็มีป็อปอัพ มาให้เรา import data ไปเว็บใหม่ ก็กด import ไป ปรากฎว่าเงิน มันไม่ไปด้วย ฮ่าๆ เหลืออยู่ $4 กว่าๆ แต่ว่าการตั้งค่าโฆษณา อื่นๆ ยังอยู่ครับ :D

พอดีผมมองหา Tutorial เกี่ยวกับ Admob อื่นๆ บางทีตัวอย่างยังเป็นแบบเก่า ทำให้อาจจะงงๆหรือสับสนสำหรับมือใหม่ได้ วันนี้ก็เลยทำเป็นบทความซะเลย เริ่มเลยดีกว่าครับ

Step 1: Register Admob

สมัครสมาชิก Admob

เริ่มแรก ต้องทำการสมัครสมาชิกกับทาง Admob กันก่อนครับ ให้เข้าไปลิงค์นี้ สมัครบริการ Admob ที่นี่ แล้วกดเลือก SignUp with Admob

SignUp

จากนั้นก็ทำการเลือกอีเมล์ที่จะใช้สมัคร (ต้องเป็นอีเมล์ของทาง gmail นะครับ) คิดว่าน่าจะมีทุกคน ใครไ่ม่มีก็กดสมัครครับ สำหรับในรูป หากใครล็อคอินหลายๆบัญชีในเครื่องเดียว มันก็จะมีรายชื่อขึ้นมาให้เลือกว่าเรา้ต้องการใช้อีเมล์ไหนในการสมัคร ก็กดเลือกไป แล้วกด Yes, use ….

Admob Register

ต่อมาให้กรอกรายละเอียดต่างๆ ตามภาพ

Admob Register 2

  • Country or territory : ก็เลือก Thailand ครับ

  • Account Type : ในส่วนนี้จะเลือกว่าเป็น Account ส่วนตัวหรือว่าในนามบริษัท เลือก Individal ครับ สำหรับบัญชีส่วนตัว

  • Payee Name : ทำการใส่ชื่อ-นามสกุลของเราครับ (อันนี้ควรเป็นชื่อที่ตรงกับบัญชีธนาคารด้วยนะครับ กรณีชื่อไม่ตรง โอนเงินไม่ได้นะครับ)

  • Street Address : ใส่เลขที่บ้าน หมู่บ้าน ถนน อื่นๆ

  • City Town : ใส่ตำบล อำเภอ

  • Provide : เลือกจังหวัด

  • Postal Code : ใส่รหัสไปรษณีย์

  • Phone : ใส่หมายเลขโทรศัพท์ (ต้องใช้รหัสประเทศด้วยนะครับ อย่างมือถือเรา 086-xxxxxxx ก็จะกลายเป็น +6686-xxxxxxx หรือใส่แค่ 6686-xxxxxxx ก็ได้ครับ)

จากนั้นคลิ๊ก Continue

ส่วนนี้จะเป็นส่วนให้ตั้งค่า Adwords ครับ รู้สึก Admob แบบใหม่ จะรวมทั้งติดโฆษณา Admob และการโปรโมทแอพด้วย Adwords รวมไว้เป็นโปรดัคเดียวกันเลย ส่วนนี้ก็กรอกรายละเอียดไปก่อนครับ

Register Adword

เลือก Time Zone และ สกุลเงินของเราครับ (ตรงส่วนนี้ ถ้าเราไม่ได้สร้าง Adwords ก็จะไม่เสียตังนะครับ)

สุดท้าย ก็อ่านข้อตกลง เงื่อนไขกานใช้บริการให้ดีครับ เมื่ออ่านเรียบร้อยแล้วก็กด Create Admob Account

Admob Agree TOC

ยินดีด้วย คุณสมัคร Admob เสร็จแล้ว! กด Get Started เลยครับ

Get Started

สร้าง App ใหม่ใน Admob

เมื่อเข้ามาที่หน้า Home ของ Admob แล้ว จะเจอ เมนูหลักๆด้านบน คือ

  • Home: หน้าหลักของเรา
  • Monetize: สำหรับจัดการกับโฆษณาของเรา (ได้ตัง)
  • Promote: ตัวนี้เอาไว้โปรโมทแอพเรา (เสียตัง)
  • Analyze: เอาไว้ดูสถิติ (ผูกติดกับ Google Analytics)

ให้ทำการเลือก Monetize new app เลยครับ หรือคลิ๊ก

New Monetize

จะมีเมนูให้เราทำการตั้งค่า Google Analytics เพื่อเอาไว้วิเคราะห์แอพครับ

Analytics

จากนั้นเลือก Add your app manual แล้วก็ตั้งชื่อแอพ และเลือก Platform ครับ

ต่อมาก็ทำการเลือก ชนิดของโฆษณาที่เราจะใช้ติด BANNER ก็คือโฆษณาแบบทั่วไป ส่วน Interstitial จะเป็นโฆษณาแบบป็อปอัพ เต็มหน้าจอหรือครึ่งจอแล้วแต่ชนิดโฆษณา

ให้เลือกดังรูปครับ

Add Banner

หลักจากนั้นเมือ่กด Create เราก็จะได้ Ad unit ID มาครับ ในส่วนนี้จะต้องเอาไปใช้ ที่โค๊ดในโปรเจ็คด้วยครับ

ตั้งค่าการจ่ายเงิน

มาถึงขั้นตอนการตั้งค่าการจ่ายเงินดีกว่าครับ ส่วนนี้สำหรับวิธีการจ่ายเงินของเรา ว่าเราจะรับเงินด้วยช่องทางไหนครับ ปัจจุบันมีให้เลือกแค่ Wire Transfer กับ Western Union

ให้เลือกที่ Account มุมบนขวา จากนั้นเลือก Payment -> Payment Setting จากนั้นเลือก Add a new form of payment

Payment

ส่วนใครจะกำหนดการจ่ายเงินขั้นต่ำก็เลือก Configure แล้วก็เลือกจำนวนเงินที่ช่อง Increase payment threshold

ให้กรอกรายละเอียดตามนี้เลย

Payment Detail

  • Account Name: ใส่ชื่อบัญชีของเรา
  • Bank Name: ชื่อธนาคารครับ (ให้ดูรายชื่อข้างล่าง)
  • SWIFT-BIC: รหัสของธนาคาร (อันนี้ก็ดูรายชื่อข้างล่าง)
  • Account number: ใส่เลขที่บัญชีของเราครับ
  • Re-type account number: ใส่เลขที่บัญชียืนยันอีกที

ในส่วนของ Intermediary bank details(optional) อันนี้น่าจะเป็นการโอนเงินแบบผ่านบัญชีธนาคารกลางมั่งครับ ไม่แน่ใจเท่าไหร่ ไม่เคยโอน T_T ส่วนตัว Optional ก็ว่างไว้ ทั้งสองอันเลยครับ จากนั้นเลือก Set this form of payment as Primary แล้วกด Save ครับ

สำหรับ SWIFT CODE ของธนาคารต่างๆ ดูได้จากรายชื่อข้างล่างครับ

ธนาคารไทยพาณิชย์

Bank Name: Siam Commercial Bank Public Company Limited (SCB)
9 Ratchadaphisek Road Ladyao, Jatujak, Bangkok 10900 
Tel: 0-2544-1111 Fax: 0-2544-5000 (www.scb.co.th)
**SWIFTCODE : SICOTHBK**

ธนาคารกสิกรไทย

Bank Name: KASIKORNBANK Public Company Limited (KBANK)
1 Soi Kasikornthai Ratburana Rd, Bangkok 10140 
Tel: 0-2222-0000 Fax: 0-2470-2749 (www.kasikornbank.com)
**SWIFTCODE : KASITHBK**

ธนาคารกรุงเทพ

Bank Name: Bangkok Bank Public Company Limited (BBL)
333 Silom Road Bangrak, Bangkok 10500 
Tel: 0-2231-4333 Fax: 0-2236-8281-2 (www.bangkokbank.com)
**SWIFTCODE : BKKBTHBK**

ธนาคารกรุงไทย

Bank Name: Krung Thai Bank Public Company Limited (KTB)
35 Sukhumvit Road, Klong Toey Nua Wattana, Bangkok 10110 
Tel: 0-2255-2222 Fax: 0-2255-9391-6 (www.ktb.co.th)
**SWIFTCODE : KRTHTHBK**

ธนาคารทหารไทย

Bank Name: TMB Bank Public Company Limited
(formerly Thai Military Bank) 3000 Phaholyothin Rd Chatuchak, Bangkok 10900 
Tel: 0-2299-1111, 0-2273-7020 Fax: 0-2273-7118 (www.tmbbank.com)
***SWIFTCODE : TMBKTHB**

ธนาคารยูโอบี

Bank Name: Union Overseas Bank (Thai) [UOB Thailand]
191 South Sathorn Road Yannawa, Bangkok 10120 
Tel: 0-2285-1555 Fax: 0-2287-2973-4 (www.uob.co.th)
**SWIFTCODE : BKASTHBK**

ธนาคารสแตนดาร์ดชาร์เตอร์

Bank Name: Standard Chartered Bank (Thailand)
(formerly Nakornthon) 90 North Sathorn Road Bangkok 10500 
Tel: 2724-4000 (www.standardchartered.co.th)
**SWIFTCODE : SCBLTHBX**

ธนาคารไทยธนาคาร

Bank Name: BankThai Public Company Limited
44 North Sathorn Rd Silom, Bangrak, Bangkok 10500 
Tel: 0-2638-8000 Fax: 0-2633-9044 (www.bankthai.co.th)
**SWIFTCODE : UBOBTHBK**

ธนาคารกรุงศรีอยุธยา

Bank Name: Bank of Ayudhya Public Company Limited (BAY)
1222 Rama 3 Road, Bang Phongphang Yannawa, Bangkok 10120 
Tel: -0-2296-2001 , 0-2683-1000 Fax: 0-2683-1304 (www.krungsri.com)
**SWIFTCODE : AYUDTHBK**

ธนาคารนครหลวงไทย

Bank Name: Siam City Bank Public Company Limited (SCIB)
1101 New Petchburi Road Makkasan, Rajthewi, Bangkok 10400 
Tel: 0-2253-0200 (www.scib.co.th)
**SWIFTCODE : SITYTHBK**

Step 2: Download Google Play Service SDK

ขั้นตอนนี้คือขั้นตอนการ Download Admob SDK และติดตั้งลงโปรเจ็ค Android ครับ โดยผมจะมีตัวอย่างทั้้ง Eclipse และ Android Studio ควบคู่ไปพร้อมๆกันเลยละกัน

เริ่มแรก ทำการเปิด Android SDK Manager ขึ้นมาครับ เลื่อนไปล่างๆตรงส่วน Extras เลือกติดตั้ง Google Play Services ครับ หากใช้ Android Studio ก็เลือกติดตั้ง Google Repository ด้วยครับ

Google Play SDK

เมื่อติดตั้งเสร็จแล้ว ตัว Google Play Service มันจะถูกเซฟไว้ที่ <android-sdk>/extras/google/google_play_services/ (สำหรับ Eclipse อยู่โฟลเดอร์ adt-bundle/sdk/extras/google/google_play_services/ ่ส่วน Android Studio อยู่ที่ android-studio/sdk/extras/google/google_play_services/)

Add Library

Eclipse

สำหรับ Eclipse ขั้นตอนการ Add Library ของ Google Play Service SDK คือ เลือก File -> Import -> Android -> Existing Android Code into Workspace

จากนั้นก็เลือกไปที่ path ของ Google Play Service ครับ เลือกไปจนถึง libproject แล้วก็กดเลือก google-play-service_lib

Add lib

กด OK จะได้หน้าตาแบบนี้

Add Lib2

คลิ๊ก Finish

จากนั้นคลิกขวาที่โปรเจ็คของเรา เลือก Properties ไปที่แท็ป Android คลิ๊ก Add แล้วเลือก Google Play Service ครับ

Add Library

Android Studio

สำหรับ Android Studio เปิดไฟล์ build.gradle ใน folder Module ของเรานะครับ คนละตัวกับ root folder นะ จากนั้นเพิ่ม dependencies ของ google play service ลงไป

apply plugin: 'android'
...

dependencies {
    compile 'com.android.support:appcompat-v7:+'
    compile 'com.google.android.gms:play-services:4.4.52'
}

จากนั้นกด Sync Project with Gradle Files

Step 3: Install & Show Admob

มาถึงขั้นตอนแสดงโฆษณากันบ้างครับ หลังจากดาวน์โหลด ติดตั้ง Add Library อะไรไปเรียบร้อยแล้ว ก็เริ่มติดโฆษณาเลย เปิดไฟล์ AndroidManifest.xml แล้วแก้ไขโดยการ

เพิ่ม meta-tag ไว้ภายใน แท็ก application

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

ต่อมา ประกาศ com.google.android.gms.ads.AdActivity ต่อจาก meta-tag

<activity android:name="com.google.android.gms.ads.AdActivity"
    android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>

สุดท้ายเพิ่ม permission การใช้งาน Internet ดังนี้

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

ไฟล์ AndroidManifest.xml จะได้ประมาณนี้


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.devahoy.sample.admob"
    android:versionCode="1"
    android:versionName="1.0" >

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

    <uses-sdk
        android:minSdkVersion="10"
        android:targetSdkVersion="18" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

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

        <activity android:name="com.google.android.gms.ads.AdActivity"
             android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
    </application>

</manifest>

ต่อไปก็เพิ่ม Admob ในไฟล์เลเอาท์ของเราครับ ผมทำการสร้างไฟล์ใหม่ชื่อ admob.xmlเซฟไว้ที่ /res/layout จากนั้นเพิ่ม admob ลงไปดังนี้

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="240dp"
        android:layout_height="240dp"
        android:layout_centerInParent="true"
        android:src="@drawable/ic_launcher" />

      <com.google.android.gms.ads.AdView android:id="@+id/adView"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         ads:adUnitId="YOUR_AD_UNIT_ID"
                         android:layout_alignParentBottom="true"
                         ads:adSize="SMART_BANNER"/>

</RelativeLayout>

จุดที่สังเกตคือ ผมเพิ่ง schema xmlns:ads="http://schemas.android.com/apk/res-auto" นี้ลงไป จากนั้นจึงเรียกใช้ ads:xxx ได้ โดย ads:adSize="SMART_BANNER" คือการแสดงโฆษณาแบบ ปรับขนาดให้เราตามหน้าจอมือถือครับ คล้ายๆ Responsive Web Design ส่วน ads:adUnitId ก็ใส่หมายเลข adUnit ที่ได้จากหน้าเว็บไซต์ Admob ตอนที่เราสร้างแอพและ Create Banner ครับ ส่วน alignParentBottom คือต้องการให้โฆษณาอยู่ด้านล่างสุดครับ

ต่อมา มาดูที่ตัวโปรแกรม เปิด MainActivity.java ขึ้นมา จากนั้น setContentView เป็น admob.xml และทำการเชื่อม AdView ที่ประกาศไว้ใน xml ดังนี้ครับ

AdView adView = (AdView) rootView.findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder()
    .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
    .build();
adView.loadAd(adRequest);

ในส่วน addTestDevice คือให้มันจำลองโฆษณาเวลาเทสบน Emulator ป้องกันเราไปคลิ๊กโดนโฆษณาตัวเองครับ จะได้ไม่โดนแบน

เสร็จแล้ว ทดสอบลองรันแอพดูครับ เมื่อเทส Admob บนเครื่อง Emulator หรือเครื่องจริง เวลาเราเปิด LogCat แล้วเลือกส่วน Info จะเห็นข้อความขึ้นประมาณนี้

Use AdRequest.Builder.addTestDevice("1234567C19FCB3A1412345678902") 
to get test ads on this device.

เราก็สามารถเพิ่มเครื่องเอาไว้เทสได้ครับ จะได้กันเหนียว ถ้าเผลอไปกดโดนโฆษณาตัวเอง เช่น

AdView adView = (AdView) rootView.findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder()
    .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
    .addTestDevice("1234567C19FCB3A1412345678902")
    .build();
adView.loadAd(adRequest);

ผลลัพธ์

Admob Finish

มีแค่นี้แหละครับ ขั้นตอนการติดโฆษณา Admob บนแอพ Android ของเรา ส่วนรายละเอียดปลีกย่อย ก็ยังมีอีกเยอะครับ ทั้งชนิดของโฆษณา การแสดงโฆษณาแบบต่างๆ การใช้ AdListener มาช่วย ก็ลองอ่านเพิ่มเติมได้ที่นี่ Google Mobile Ads SDK หวังว่าผู้อ่านคงจะสามารถติดโฆษณาและทำรายได้ให้กับแอพของท่าน เป็นเสือนอนกินกันทุกคนนะครับ :D

Chai

Chai Phonbopit : Developer แห่งหนึ่ง • ผู้ชายธรรมดาๆ ที่ชื่นชอบ Node.js, JavaScript และ Open Source มีงานอดิเรกเป็น Acoustic Guitar และ Football

บทความล่าสุด