คู่มือนี้มีไว้สำหรับผู้เผยแพร่โฆษณาที่ต้องการสร้างรายได้จากแอป iOS ด้วย AdMob และไม่ได้ใช้ Firebase หากคุณวางแผนที่จะรวม Firebase ไว้ในแอป (หรือ กำลังพิจารณา) โปรดดูคู่มือฉบับAdMob กับ Firebase แทน
การผสานรวม Google Mobile Ads SDK เข้ากับแอปเป็นขั้นตอนแรกสู่การแสดงโฆษณาและสร้างรายได้ เมื่อผสาน SDK เรียบร้อยแล้ว คุณจะ เลือกใช้รูปแบบโฆษณาที่รองรับได้อย่างน้อย 1 แบบ
ข้อกำหนดเบื้องต้น
- ใช้ Xcode 16.0 ขึ้นไป
- กำหนดเป้าหมายเป็น iOS 12.0 ขึ้นไป
- ขอแนะนำ สร้างบัญชี AdMob และลงทะเบียนแอป
นำเข้า Google Mobile Ads SDK
ใช้วิธีการใดวิธีการหนึ่งต่อไปนี้เพื่อนำเข้า Google Mobile Ads SDK
Swift Package Manager
หากต้องการเพิ่มการอ้างอิงแพ็กเกจ ในโปรเจ็กต์ ให้ทำตามขั้นตอนต่อไปนี้
ใน Xcode ให้ติดตั้งแพ็กเกจ Swift ของโฆษณาในอุปกรณ์เคลื่อนที่ของ Google โดยไปที่File > Add Package Dependencies...
ในข้อความแจ้งที่ปรากฏ ให้ค้นหารีโปซิโทรี GitHub ของ Google Mobile Ads Swift Package
https://github.com/googleads/swift-package-manager-google-mobile-ads.git
เลือกเวอร์ชันของแพ็กเกจ Swift ของ Google Mobile Ads ที่ต้องการใช้ สำหรับโปรเจ็กต์ใหม่ เราขอแนะนำให้ใช้อัปเดตเป็นเวอร์ชันหลักถัดไป
CocoaPods
ก่อนดำเนินการต่อ โปรดอ่านข้อมูลเกี่ยวกับ การใช้ CocoaPods ในการสร้างและใช้ Podfile
หากต้องการใช้ CocoaPods ให้ทำตามขั้นตอนต่อไปนี้
เปิด Podfile ของโปรเจ็กต์ แล้วเพิ่มบรรทัดนี้ลงใน
target
การกำหนดค่าบิลด์ ของแอปpod 'Google-Mobile-Ads-SDK'
เรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัล
pod install --repo-update
การดาวน์โหลดด้วยตนเอง
ดาวน์โหลด Google Mobile Ads SDK และ
Embed & Sign
เฟรมเวิร์กต่อไปนี้ลงในโปรเจ็กต์ XcodeGoogleMobileAds.xcframework
UserMessagingPlatform.xcframework
ในการตั้งค่าการสร้างของโปรเจ็กต์ ให้ทำดังนี้
- เพิ่ม
/usr/lib/swift
เส้นทางไปยังเส้นทางการค้นหา Runpath - เพิ่ม
-ObjC
แฟลกลิงก์เกอร์ลงในแฟลกลิงก์เกอร์อื่นๆ
- เพิ่ม
อัปเดต Info.plist
อัปเดตไฟล์ Info.plist
ของแอปเพื่อเพิ่มคีย์ 2 รายการ
GADApplicationIdentifier
คีย์ที่มีค่าสตริงของ รหัสแอป AdMob ที่อยู่ใน AdMob UISKAdNetworkItems
คีย์ที่มีค่า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>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 มีโฆษณาหลายรูปแบบ เพื่อให้คุณเลือกรูปแบบที่เหมาะกับประสบการณ์ของผู้ใช้แอปมากที่สุด
แบนเนอร์
หน่วยโฆษณาแบนเนอร์จะแสดงโฆษณาทรงสี่เหลี่ยมผืนผ้าซึ่งจะอยู่ในพื้นที่ส่วนหนึ่งของการจัดวางแอป หน่วยโฆษณานี้จะรีเฟรชโดยอัตโนมัติหลังจากช่วงเวลาที่ตั้งไว้ ซึ่งหมายความว่าผู้ใช้จะเห็นโฆษณาใหม่อยู่เรื่อยๆ แม้ว่าจะดูหน้าจอเดิมในแอปก็ตาม และยังเป็นรูปแบบโฆษณาที่นำไปใช้งานได้ง่ายที่สุดอีกด้วย
โฆษณาคั่นระหว่างหน้า
หน่วยโฆษณาคั่นระหว่างหน้าจะแสดงโฆษณาแบบเต็มหน้าในแอป คุณควรวางหน่วยโฆษณาประเภทนี้ที่จุดพักและจุดเปลี่ยนแปลงตามปกติในอินเทอร์เฟซของแอป เช่น หลังจากเล่นเกมผ่านด่าน
ติดตั้งใช้งานโฆษณาคั่นระหว่างหน้า
เนทีฟ
โฆษณาเนทีฟคือโฆษณาที่คุณปรับแต่งวิธีแสดงชิ้นงาน เช่น บรรทัดแรกและ คำกระตุ้นให้ดำเนินการในแอปได้ การจัดรูปแบบโฆษณาด้วยตนเองจะช่วยให้คุณ สร้างการนำเสนอโฆษณาที่เป็นธรรมชาติและไม่รบกวน ซึ่งจะช่วยเพิ่มประสบการณ์การใช้งานที่ยอดเยี่ยม ให้กับผู้ใช้
ได้รับรางวัลแล้ว
หน่วยโฆษณาที่มีการให้รางวัลช่วยให้ผู้ใช้เล่นเกม ทำแบบสำรวจ หรือดูวิดีโอเพื่อ รับรางวัลในแอปได้ เช่น เหรียญ จำนวนชีวิตเพิ่มเติม หรือคะแนน คุณสามารถกำหนดรางวัลให้หน่วยโฆษณาแต่ละหน่วยแตกต่างกันไป และระบุมูลค่าของรางวัลและไอเท็มที่ผู้ใช้จะได้รับ
ติดตั้งใช้งานโฆษณาที่มีการให้รางวัล
โฆษณาคั่นระหว่างหน้าที่มีการให้รางวัล
โฆษณาคั่นระหว่างหน้าที่มีการให้รางวัลเป็นรูปแบบโฆษณาที่เสนอสิ่งจูงใจประเภทใหม่ที่ช่วยให้คุณนำเสนอรางวัลได้ เช่น เหรียญหรือไอเท็มเพิ่มชีวิต สําหรับโฆษณาที่ปรากฏโดยอัตโนมัติระหว่างจุดเปลี่ยนหน้าตามปกติของแอป
ผู้ใช้ไม่จําเป็นต้องเลือกดูโฆษณาคั่นระหว่างหน้าที่มีการให้รางวัล ซึ่งต่างจากโฆษณาที่มีการให้รางวัล
โฆษณาคั่นระหว่างหน้าที่มีการให้รางวัลต้องใช้ หน้าจอแนะนําเพื่อประกาศรางวัล และเปิดโอกาสให้ผู้ใช้เลือกที่จะไม่รับได้ตามที่ต้องการ แทนการส่งข้อความแจ้งให้เลือกรับในโฆษณาที่มีการให้รางวัล
ติดตั้งใช้งานโฆษณาคั่นระหว่างหน้าที่มีการให้รางวัล
โฆษณาเปิดแอป
โฆษณาเปิดแอปเป็นรูปแบบโฆษณาที่ปรากฏเมื่อผู้ใช้เปิดหรือเปลี่ยนกลับไปที่แอปของคุณ โฆษณาจะวางซ้อนบนหน้าจอการโหลด