คู่มือนี้มีไว้สำหรับผู้เผยแพร่โฆษณาที่ต้องการสร้างรายได้จากแอป iOS ด้วย AdMob และไม่ได้ใช้ Firebase หากคุณวางแผนที่จะรวม Firebase ไว้ในแอป (หรือ คุณกำลังพิจารณา) โปรดดู AdMob ที่มี Firebase ของคู่มือนี้แทน
การผสานรวม SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google เข้ากับแอปเป็นขั้นตอนแรก แสดงโฆษณาและสร้างรายได้ เมื่อผสานรวม SDK แล้ว คุณสามารถทำสิ่งต่อไปนี้ได้ ดำเนินการต่อเพื่อใช้ รูปแบบโฆษณาที่รองรับ
ข้อกำหนดเบื้องต้น
- ใช้ Xcode 15.3 ขึ้นไป
- กำหนดเป้าหมาย iOS 12.0 ขึ้นไป
- สิ่งที่แนะนำ สร้างบัญชี AdMob และลงทะเบียนแอป
นำเข้า SDK โฆษณาในอุปกรณ์เคลื่อนที่
นำเข้า SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google โดยใช้วิธีใดวิธีหนึ่งต่อไปนี้
CocoaPods (แนะนำ)
วิธีที่ง่ายที่สุดในการนำเข้า SDK ไปยังโปรเจ็กต์ iOS คือการใช้ CocoaPods เปิด Podfile ของโปรเจ็กต์แล้วเพิ่มบรรทัดนี้ลงในเป้าหมายของแอป
pod 'Google-Mobile-Ads-SDK'
จากนั้นให้เรียกใช้คำสั่งดังนี้
pod install --repo-update
หากคุณเพิ่งเคยใช้ CocoaPods โปรดดู เอกสารอย่างเป็นทางการเพื่อดูข้อมูล เกี่ยวกับวิธีสร้างและใช้ Podfiles
เครื่องมือจัดการแพ็กเกจ Swift
SDK โฆษณาบนอุปกรณ์เคลื่อนที่ของ Google สนับสนุน Swift Package เครื่องมือจัดการเริ่มต้นในเวอร์ชัน 9.0.0 ทำตาม ขั้นตอนในการนำเข้าแพ็กเกจ Swift
ใน Xcode ให้ติดตั้งแพ็กเกจ Google Mobile Ads Swift โดยไปที่ ไฟล์ > เพิ่มแพ็กเกจ...
ในข้อความแจ้งที่ปรากฏขึ้น ให้ค้นหาแพ็กเกจ Swift ของ Google Mobile Ads ที่เก็บ GitHub:
https://github.com/googleads/swift-package-manager-google-mobile-ads.git
เลือกเวอร์ชันของ Google Mobile Ads Swift Package ที่คุณต้องการใช้ สําหรับโปรเจ็กต์ใหม่ เราขอแนะนําให้ใช้เวอร์ชันหลักถัดไป
เมื่อเสร็จแล้ว Xcode จะเริ่มแก้ไขทรัพยากร Dependency ของแพ็กเกจและ ดาวน์โหลดในเบื้องหลัง ดูรายละเอียดเพิ่มเติมเกี่ยวกับวิธีเพิ่มแพ็กเกจ Dependencies โปรดดูบทความของ Apple
ดาวน์โหลดด้วยตนเอง
ดาวน์โหลด SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google และ
Embed & Sign
เฟรมเวิร์กต่อไปนี้ลงในโปรเจ็กต์ Xcode ของคุณGoogleMobileAds.xcframework
UserMessagingPlatform.xcframework
เพิ่มแฟล็ก Linker
-ObjC
ไปยังแฟล็ก Linker อื่นๆ ใน การตั้งค่าบิลด์:
อัปเดต Info.plist ของคุณ
อัปเดตไฟล์ Info.plist
ของแอปเพื่อเพิ่มคีย์ 2 คีย์ดังนี้
คีย์
GADApplicationIdentifier
ที่มีค่าสตริง AdMob app ID found in the AdMob UIคีย์
SKAdNetworkItems
ที่มีSKAdNetworkIdentifier
ค่าสำหรับ Google (cstr6suwn9.skadnetwork
) และ ผู้ซื้อบุคคลที่สามบางราย ซึ่งระบุค่าเหล่านี้ให้กับ Google
ตัวอย่างที่สมบูรณ์
<key>GADApplicationIdentifier</key> <string>ca-app-pub-3940256099942544~1458002511</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>4pfyvq9l8r.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>5a6flpkh64.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>v4nxqhlyqp.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>wzmmz9fp6w.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>n6fk4nfna4.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>eh6m2bh4zr.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>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>ecpz2srf59.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>uw77j35x4d.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>pwa73g5rt2.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>mlmmfzh3r3.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>e5fvkxwrpn.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>8c4e2ghe7u.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>zq492l623r.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3rd42ekr43.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3qcr597p9d.skadnetwork</string> </dict> </array>
ถ้าคุณยังไม่ได้สร้าง AdMob บัญชี และลงทะเบียน ตอนนี้ได้เวลาเหมาะสมแล้ว ให้ทำเช่นนั้นได้
ในแอปจริง ให้แทนที่รหัสแอปตัวอย่างด้วย AdMob รหัสแอป คุณใช้รหัสตัวอย่างได้ในกรณีต่อไปนี้ เพียงใช้ SDK ในแอป Hello World
เริ่มต้น SDK โฆษณาในอุปกรณ์เคลื่อนที่
ก่อนที่จะโหลดโฆษณา ให้เรียกเมธอด startWithCompletionHandler:
ใน
GADMobileAds.sharedInstance
,
ซึ่งจะเริ่มต้น SDK และเรียกตัวแฮนเดิลการเสร็จสมบูรณ์กลับมา
การเริ่มต้นเสร็จสมบูรณ์ (หรือหลังจากหมดเวลา 30 วินาที) เฉพาะที่จำเป็น
ทำครั้งเดียวยิ่งดี ตอนเปิดแอป คุณควรโทรหา startWithCompletionHandler:
โดยเร็วที่สุดเท่าที่จะเป็นไปได้
ตัวอย่างวิธีเรียกเมธอด startWithCompletionHandler:
ใน
AppDelegate
ของคุณ:
ตัวอย่าง AppDelegate (ข้อความที่ตัดตอนมา)
Swift
import GoogleMobileAds
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
GADMobileAds.sharedInstance().start(completionHandler: nil)
return true
}
}
SwiftUI
import GoogleMobileAds
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
GADMobileAds.sharedInstance().start(completionHandler: nil)
return true
}
}
@main
struct YourApp: App {
// To handle app delegate callbacks in an app that uses the SwiftUI lifecycle,
// you must create an application delegate and attach it to your `App` struct
// using `UIApplicationDelegateAdaptor`.
@UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
var body: some Scene {
WindowGroup {
NavigationView {
ContentView()
}
}
}
}
Objective-C
@import GoogleMobileAds;
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[GADMobileAds.sharedInstance startWithCompletionHandler:nil];
return YES;
}
@end
เลือกรูปแบบโฆษณา
ตอนนี้ SDK โฆษณาในอุปกรณ์เคลื่อนที่ได้รับการนำเข้าและเริ่มต้นแล้ว และคุณก็พร้อม ติดตั้งโฆษณา AdMob นำเสนอ โฆษณารูปแบบต่างๆ เพื่อให้คุณสามารถเลือกรูปแบบที่เหมาะกับผู้ใช้แอปมากที่สุด ประสบการณ์การใช้งาน
สำหรับนักพัฒนาซอฟต์แวร์ SwiftUI โปรดทำตาม SwiftUI
แบนเนอร์
หน่วยโฆษณาแบนเนอร์จะแสดงโฆษณาสี่เหลี่ยมผืนผ้าซึ่งใช้เนื้อที่ส่วนหนึ่งของแอป เลย์เอาต์ อุปกรณ์นี้จะรีเฟรชโดยอัตโนมัติหลังจากระยะเวลาที่ตั้งไว้ ซึ่งหมายความว่า ผู้ใช้ดูโฆษณาใหม่อย่างสม่ำเสมอ แม้ว่าจะดูเท่าเดิม ในแอปของคุณ และยังเป็นรูปแบบโฆษณาที่นำไปใช้งานได้ง่ายที่สุดอีกด้วย
โฆษณาคั่นระหว่างหน้า
หน่วยโฆษณาคั่นระหว่างหน้าจะแสดงโฆษณาแบบเต็มหน้าในแอป จัดวางให้เป็นธรรมชาติ ช่วงพักและการเปลี่ยนแปลงในอินเทอร์เฟซของแอป เช่น หลังผ่านด่าน ในแอปเกม
เนทีฟ
โฆษณาเนทีฟคือโฆษณาที่คุณสามารถปรับแต่งวิธีที่ชิ้นงานต่างๆ เช่น บรรทัดแรก คำกระตุ้นให้ดำเนินการ (Call-To-Action) จะแสดงในแอป การจัดรูปแบบโฆษณาด้วยตัวคุณเองช่วยให้คุณสามารถ สร้างงานนำเสนอโฆษณาที่เป็นธรรมชาติ ไม่ก่อให้เกิดความรำคาญ ซึ่งสามารถเพิ่ม ให้กับผู้ใช้ที่เป็นสื่อสมบูรณ์ ประสบการณ์การใช้งาน
ได้รับรางวัลแล้ว
หน่วยโฆษณาที่มีการให้รางวัลช่วยให้ผู้ใช้เล่นเกม ทำแบบสำรวจ หรือดูวิดีโอได้เพื่อทำสิ่งต่อไปนี้ รับรางวัลในแอป เช่น เหรียญ ชีวิตเพิ่ม หรือคะแนน คุณสามารถกำหนด หน่วยโฆษณาแตกต่างกันและระบุมูลค่าของรางวัลและ รายการที่ผู้ใช้ได้รับ
โฆษณาคั่นระหว่างหน้าที่มีการให้รางวัล
โฆษณาคั่นระหว่างหน้าที่มีการให้รางวัล คือโฆษณารูปแบบใหม่ที่มีสิ่งจูงใจซึ่งช่วยให้คุณ เสนอรางวัล เช่น เหรียญหรือไอเท็มเพิ่มชีวิต สำหรับโฆษณาที่แสดงโดยอัตโนมัติ ระหว่างการเปลี่ยนแอปตามปกติ
ผู้ใช้ไม่จำเป็นต้องเลือกดูโฆษณาที่มีการให้รางวัล ซึ่งต่างจากโฆษณาที่มีการให้รางวัล โฆษณาคั่นระหว่างหน้า
โฆษณาคั่นระหว่างหน้าที่มีการให้รางวัลจำเป็นต้องมีสิ่งต่อไปนี้ แทนการแจ้งให้เลือกรับในโฆษณาที่มีการให้รางวัล หน้าจอแนะนำที่ประกาศรางวัลและเปิดโอกาสให้ผู้ใช้เลือกไม่เข้าร่วม เด็กๆ ต้องการทำแบบนั้น
ใช้โฆษณาคั่นระหว่างหน้าที่มีการให้รางวัล
โฆษณาเปิดแอป
โฆษณาเปิดแอปคือรูปแบบโฆษณาที่ปรากฏขึ้นเมื่อผู้ใช้เปิดหรือเปลี่ยนกลับไปใช้ แอป โฆษณาวางซ้อนหน้าจอการโหลด