คู่มือนี้มีไว้สำหรับผู้เผยแพร่โฆษณาที่ต้องการสร้างรายได้จากแอป iOS ด้วย AdMob และไม่ได้ใช้ Firebase หากคุณวางแผนที่จะรวม Firebase ไว้ในแอป (หรือ กำลังพิจารณา) โปรดดูคู่มือฉบับAdMob กับ Firebase แทน
การผสานรวม Google Mobile Ads SDK เข้ากับแอปเป็นขั้นตอนแรกสู่การแสดงโฆษณาและสร้างรายได้ เมื่อผสาน SDK เรียบร้อยแล้ว คุณจะ เลือกใช้รูปแบบโฆษณาที่รองรับได้อย่างน้อย 1 แบบ
ข้อกำหนดเบื้องต้น
- ใช้ Xcode 16.0 ขึ้นไป
- กำหนดเป้าหมายเป็น iOS 13.3 ขึ้นไป
- ขอแนะนำ สร้างบัญชี AdMob และลงทะเบียนแอป
นำเข้า Google Mobile Ads SDK
ใช้วิธีใดวิธีหนึ่งต่อไปนี้เพื่อนำเข้า Google Mobile Ads SDK
Swift Package Manager
หากต้องการเพิ่มทรัพยากร Dependency ของแพ็กเกจ ในโปรเจ็กต์ ให้ทำตามขั้นตอนต่อไปนี้
ใน Xcode ให้ติดตั้งแพ็กเกจ Swift สำหรับโฆษณาในอุปกรณ์เคลื่อนที่ของ Google โดยไปที่File > Add Package Dependencies...
ในข้อความแจ้งที่ปรากฏ ให้ค้นหารีโปซิโทรี GitHub ของแพ็กเกจ Swift สำหรับโฆษณา Google บนอุปกรณ์เคลื่อนที่
https://github.com/googleads/swift-package-manager-google-mobile-ads.gitเลือกเวอร์ชันของแพ็กเกจ Swift ของ Google Mobile Ads ที่ต้องการใช้ สำหรับโปรเจ็กต์ใหม่ เราขอแนะนำให้ใช้อัปเดตเป็นเวอร์ชันหลักถัดไป
CocoaPods
ก่อนดำเนินการต่อ โปรดอ่านข้อมูลเกี่ยวกับ การใช้ CocoaPods ในการสร้างและใช้ Podfile
หากต้องการใช้ CocoaPods ให้ทำตามขั้นตอนต่อไปนี้
เปิด Podfile ของโปรเจ็กต์ แล้วเพิ่มบรรทัดนี้ลงใน
targetbuild configuration ของแอปpod 'Google-Mobile-Ads-SDK'
เรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัล
pod install --repo-update
การดาวน์โหลดด้วยตนเอง
ดาวน์โหลด Google Mobile Ads SDK และ
Embed & Signเฟรมเวิร์กต่อไปนี้ลงในโปรเจ็กต์ XcodeGoogleMobileAds.xcframeworkUserMessagingPlatform.xcframework
ในการตั้งค่าบิลด์ของโปรเจ็กต์ ให้ทำดังนี้
- เพิ่ม
/usr/lib/swiftเส้นทางไปยังเส้นทางการค้นหา Runpath - เพิ่ม
-ObjCแฟลกลิงก์เกอร์ลงในแฟลกลิงก์เกอร์อื่นๆ
- เพิ่ม
อัปเดต Info.plist
อัปเดตไฟล์ Info.plist ของแอปเพื่อเพิ่มคีย์ 2 รายการ
คีย์
GADApplicationIdentifierที่มีค่าสตริงเป็น รหัสแอป AdMob ซึ่งอยู่ใน UI ของ AdMobSKAdNetworkItemsคีย์ที่มีค่าSKAdNetworkIdentifierสำหรับ Google (cstr6suwn9.skadnetwork) และ ผู้ซื้อบุคคลที่สามบางราย ที่ระบุค่าเหล่านี้ให้ Google
ข้อมูลโค้ดที่สมบูรณ์
<key>GADApplicationIdentifier</key>
<!-- Sample AdMob app ID: ca-app-pub-3940256099942544~1458002511 -->
<string>SAMPLE_APP_ID</string>
<key>SKAdNetworkItems</key>
<array>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>cstr6suwn9.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4fzdc2evr5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>2fnua5tdw4.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ydx93a7ass.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>p78axxw29g.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>v72qych5uu.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ludvb6z3bs.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>cp8zw746q7.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3sh42y64q3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>c6k4g5qg8m.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>s39g8k73mm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>wg4vff78zm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3qy4746246.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>f38h382jlk.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>hs6bdukanm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>mlmmfzh3r3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>v4nxqhlyqp.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>wzmmz9fp6w.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>su67r6k2v3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>yclnxrl5pm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>t38b2kh725.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>7ug5zh24hu.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>gta9lk7p23.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>vutu7akeur.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>y5ghdn5j9k.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>v9wttpbfk9.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>n38lu8286q.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>47vhws6wlr.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>kbd757ywx3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>9t245vhmpl.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>a2p9lx4jpn.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>22mmun2rn5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>44jx6755aq.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>k674qkevps.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4468km3ulz.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>2u9pt9hc89.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>8s468mfl3y.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>klf5c3l5u5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ppxm28t8ap.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>kbmxgpxpgc.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>uw77j35x4d.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>578prtvx9j.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4dzt52r2t5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>tl55sbb4fm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>c3frkrj4fj.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>e5fvkxwrpn.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>8c4e2ghe7u.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3rd42ekr43.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>97r2b46745.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3qcr597p9d.skadnetwork</string>
</dict>
</array>แทนที่ SAMPLE_APP_ID ด้วยรหัสแอป AdMob ขณะทดสอบ ให้ใช้รหัสแอปตัวอย่างที่แสดงในตัวอย่างก่อนหน้า
หากยังไม่ได้สร้างบัญชี AdMob และลงทะเบียนแอป ตอนนี้เป็นเวลาที่เหมาะ ที่จะทำ
เริ่มต้น Google Mobile Ads SDK
ก่อนที่จะโหลดโฆษณา ให้เรียกใช้เมธอด start() ใน
GADMobileAds.sharedInstance
ซึ่งจะเริ่มต้น SDK และเรียกตัวแฮนเดิลการเสร็จสมบูรณ์เมื่อ
การเริ่มต้นเสร็จสมบูรณ์ (หรือหลังจากหมดเวลา 30 วินาที) โทรหา start() โดยเร็วที่สุด
Swift
// Initialize the Google Mobile Ads SDK.
MobileAds.shared.start()
SwiftUI
// Initialize the Google Mobile Ads SDK.
MobileAds.shared.start()
Objective-C
// Initialize the Google Mobile Ads SDK.
[GADMobileAds.sharedInstance startWithCompletionHandler:nil];
เลือกรูปแบบโฆษณา
ตอนนี้ระบบได้นำเข้าและเริ่มต้น Google Mobile Ads SDK แล้ว และคุณก็พร้อมที่จะ ติดตั้งใช้งานโฆษณา AdMob มีโฆษณาหลายรูปแบบ เพื่อให้คุณเลือกรูปแบบที่เหมาะกับประสบการณ์ของผู้ใช้ในแอปมากที่สุด
แบนเนอร์
หน่วยโฆษณาแบนเนอร์จะแสดงโฆษณาทรงสี่เหลี่ยมผืนผ้าซึ่งจะอยู่ในพื้นที่ส่วนหนึ่งของการจัดวางแอป หน่วยโฆษณานี้จะรีเฟรชโดยอัตโนมัติหลังจากช่วงเวลาที่ตั้งไว้ ซึ่งหมายความว่า ผู้ใช้จะเห็นโฆษณาใหม่อยู่เรื่อยๆ แม้ว่าจะดูหน้าจอเดิมในแอปก็ตาม และยังเป็นรูปแบบโฆษณาที่นำไปใช้งานได้ง่ายที่สุดอีกด้วย
โฆษณาคั่นระหว่างหน้า
หน่วยโฆษณาคั่นระหว่างหน้าจะแสดงโฆษณาแบบเต็มหน้าในแอป วางหน่วยโฆษณาประเภทนี้ที่จุดพักและจุดเปลี่ยนแปลงตามธรรมชาติในอินเทอร์เฟซของแอป เช่น หลังจากเล่นเกมผ่านด่านในแอปเกม
เนทีฟ
โฆษณาเนทีฟคือโฆษณาที่คุณปรับแต่งวิธีแสดงชิ้นงาน เช่น บรรทัดแรกและ คำกระตุ้นให้ดำเนินการในแอปได้ การจัดรูปแบบโฆษณาด้วยตนเองจะช่วยให้คุณ สร้างการนำเสนอโฆษณาที่เป็นธรรมชาติและไม่รบกวน ซึ่งจะช่วยเพิ่มประสบการณ์การใช้งานที่สมบูรณ์ ของผู้ใช้
ได้รับรางวัลแล้ว
หน่วยโฆษณาที่มีการให้รางวัลช่วยให้ผู้ใช้เล่นเกม ทำแบบสำรวจ หรือดูวิดีโอเพื่อ รับรางวัลในแอปได้ เช่น เหรียญ จำนวนชีวิตเพิ่มเติม หรือคะแนน คุณสามารถกำหนด รางวัลที่แตกต่างกันสำหรับหน่วยโฆษณาแต่ละหน่วย และระบุมูลค่าของรางวัลและ ไอเท็มที่ผู้ใช้ได้รับ
โฆษณาคั่นระหว่างหน้าที่มีการให้รางวัล
โฆษณาคั่นระหว่างหน้าที่มีการให้รางวัลเป็นรูปแบบโฆษณาที่เสนอสิ่งจูงใจประเภทใหม่ที่ช่วยให้คุณนำเสนอรางวัลได้ เช่น เหรียญหรือไอเท็มเพิ่มชีวิต สําหรับโฆษณาที่ปรากฏโดยอัตโนมัติระหว่างจุดเปลี่ยนหน้าตามปกติของแอป
ผู้ใช้ไม่จําเป็นต้องเลือกดูโฆษณาคั่นระหว่างหน้าที่มีการให้รางวัล ซึ่งต่างจากโฆษณาที่มีการให้รางวัล
โฆษณาคั่นระหว่างหน้าที่มีการให้รางวัลต้องใช้ หน้าจอแนะนําเพื่อประกาศรางวัล และเปิดโอกาสให้ผู้ใช้เลือกที่จะไม่รับได้ตามที่ต้องการ แทนการส่งข้อความแจ้งให้เลือกรับในโฆษณาที่มีการให้รางวัล
ติดตั้งใช้งานโฆษณาคั่นระหว่างหน้าที่มีการให้รางวัล
โฆษณาเปิดแอป
โฆษณาเปิดแอปเป็นรูปแบบโฆษณาที่ปรากฏเมื่อผู้ใช้เปิดหรือเปลี่ยนกลับไปที่แอปของคุณ โฆษณาจะวางซ้อนบนหน้าจอการโหลด