เริ่มต้นใช้งาน

คู่มือนี้มีไว้สําหรับผู้เผยแพร่โฆษณาที่ต้องการสร้างรายได้จากแอป iOS ด้วย AdMob และไม่ได้ใช้ Firebase หากคุณวางแผนที่จะรวม Firebase ไว้ในแอป (หรือกำลังพิจารณาที่จะทำ) โปรดดูคู่มือฉบับAdMob กับ Firebase แทน

การผสานรวม SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google เข้ากับแอปเป็นเพียงขั้นตอนแรกที่คุณต้องทำเพื่อแสดงโฆษณาและรับรายได้ เมื่อผสาน SDK เรียบร้อยแล้ว คุณจะเลือกใช้รูปแบบโฆษณาที่รองรับได้อย่างน้อย 1 แบบ

ข้อกำหนดเบื้องต้น

  • ใช้ Xcode 15.3 ขึ้นไป
  • กำหนดเป้าหมายเป็น iOS 12.0 ขึ้นไป

นําเข้า SDK โฆษณาในอุปกรณ์เคลื่อนที่

ใช้วิธีใดวิธีหนึ่งต่อไปนี้เพื่อนําเข้า SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google

CocoaPods (แนะนำ)

วิธีที่ง่ายที่สุดในการนําเข้า SDK ไปยังโปรเจ็กต์ iOS คือการใช้ CocoaPods เปิด Podfile ของโปรเจ็กต์ แล้วเพิ่มบรรทัดนี้ลงในเป้าหมายของแอป

pod 'Google-Mobile-Ads-SDK'

จากนั้นเรียกใช้จากบรรทัดคำสั่งดังนี้

pod install --repo-update

หากคุณเพิ่งเริ่มใช้ CocoaPods โปรดดูข้อมูลเกี่ยวกับวิธีสร้างและใช้ Podfile ในเอกสารประกอบอย่างเป็นทางการ

Swift Package Manager

SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google รองรับ Swift Package Manager ตั้งแต่เวอร์ชัน 9.0.0 เป็นต้นไป ทําตามขั้นตอนต่อไปนี้เพื่อนําเข้าแพ็กเกจ Swift

  1. ใน Xcode ให้ติดตั้งแพ็กเกจ Swift ของ Google Mobile Ads โดยไปที่ไฟล์ > เพิ่มแพ็กเกจ...

  2. ในพรอมต์ที่ปรากฏขึ้น ให้ค้นหาแพ็กเกจ Swift ของ Google Mobile Ads ในที่เก็บ GitHub

    https://github.com/googleads/swift-package-manager-google-mobile-ads.git
    
  3. เลือกเวอร์ชันของแพ็กเกจ Google Mobile Ads Swift ที่ต้องการใช้ สำหรับโปรเจ็กต์ใหม่ เราขอแนะนำให้ใช้อัปเดตเป็นเวอร์ชันหลักถัดไป

เมื่อเสร็จแล้ว Xcode จะเริ่มจับคู่ข้อมูลและดาวน์โหลดทรัพยากร Dependency ของแพ็กเกจในเบื้องหลัง โปรดดูรายละเอียดเพิ่มเติมเกี่ยวกับวิธีเพิ่มแพ็กเกจที่ต้องใช้ร่วมกันในบทความของ Apple

การดาวน์โหลดด้วยตนเอง

  1. ดาวน์โหลด Google Mobile Ads SDK และEmbed & Signเฟรมเวิร์กต่อไปนี้ลงในโปรเจ็กต์ Xcode

    • GoogleMobileAds.xcframework
    • UserMessagingPlatform.xcframework
  2. ในการตั้งค่าบิลด์ของโปรเจ็กต์ ให้ทำดังนี้

    • เพิ่มเส้นทาง /usr/lib/swift ไปยังเส้นทางการค้นหารันไทม์
    • เพิ่ม Flag Linker -ObjC ลงในFlag Linker อื่นๆ

อัปเดต Info.plist

อัปเดตไฟล์ Info.plist ของแอปเพื่อเพิ่มคีย์ 2 รายการต่อไปนี้

  1. คีย์ GADApplicationIdentifier ที่มีค่าสตริงเป็นAdMob app ID found in the AdMob UI

  2. คีย์ 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>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>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>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>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>ppxm28t8ap.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>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>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>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

เลือกรูปแบบโฆษณา

ตอนนี้คุณนําเข้าและเริ่มต้นใช้งาน Mobile Ads SDK แล้ว พร้อมที่จะติดตั้งใช้งานโฆษณาแล้ว AdMob มีรูปแบบโฆษณาหลายรูปแบบให้เลือก คุณจึงเลือกรูปแบบที่เหมาะกับประสบการณ์ของผู้ใช้แอปมากที่สุดได้

สําหรับนักพัฒนาซอฟต์แวร์ SwiftUI ให้ทําตามคู่มือ SwiftUI

หน่วยโฆษณาแบนเนอร์จะแสดงโฆษณาสี่เหลี่ยมผืนผ้าซึ่งใช้เนื้อที่เลย์เอาต์ส่วนหนึ่งของแอป หน่วยโฆษณานี้จะรีเฟรชโดยอัตโนมัติหลังจากช่วงเวลาที่ตั้งไว้ ซึ่งหมายความว่าผู้ใช้จะเห็นโฆษณาใหม่อยู่เรื่อยๆ แม้ว่าจะดูหน้าจอเดิมในแอปก็ตาม และยังเป็นรูปแบบโฆษณาที่นำไปใช้งานได้ง่ายที่สุดอีกด้วย

ติดตั้งใช้งานโฆษณาแบนเนอร์

โฆษณาคั่นระหว่างหน้า

หน่วยโฆษณาคั่นระหว่างหน้าจะแสดงโฆษณาแบบเต็มหน้าในแอป คุณควรวางหน่วยโฆษณาประเภทนี้ที่จุดพักและจุดเปลี่ยนแปลงตามปกติในอินเทอร์เฟซของแอป เช่น หลังจากเล่นเกมผ่านด่าน

ติดตั้งใช้งานโฆษณาคั่นระหว่างหน้า

เนทีฟ

โฆษณาเนทีฟคือโฆษณาที่คุณสามารถปรับแต่งวิธีแสดงชิ้นงาน เช่น บรรทัดแรกและคํากระตุ้นให้ดำเนินการ (Call-To-Action) ในแอป การจัดสไตล์โฆษณาด้วยตนเองจะช่วยให้คุณสร้างการแสดงโฆษณาที่กลมกลืนและไม่รบกวน ซึ่งจะช่วยเพิ่มประสบการณ์การใช้งานที่สมบูรณ์แบบให้แก่ผู้ใช้

ใช้โฆษณาเนทีฟ

ได้รับรางวัลแล้ว

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

ใช้โฆษณาที่มีการให้รางวัล

โฆษณาคั่นระหว่างหน้าที่มีการให้รางวัล

โฆษณาคั่นระหว่างหน้าที่มีการให้รางวัลเป็นรูปแบบโฆษณาที่เสนอสิ่งจูงใจประเภทใหม่ที่ช่วยให้คุณนำเสนอรางวัลได้ เช่น เหรียญหรือไอเท็มเพิ่มชีวิต สําหรับโฆษณาที่ปรากฏโดยอัตโนมัติระหว่างจุดเปลี่ยนหน้าตามปกติของแอป

ผู้ใช้ไม่จําเป็นต้องเลือกดูโฆษณาคั่นระหว่างหน้าที่มีการให้รางวัล ซึ่งต่างจากโฆษณาที่มีการให้รางวัล

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

ใช้งานโฆษณาคั่นระหว่างหน้าที่มีการให้รางวัล

การเปิดแอป

โฆษณาเปิดแอปเป็นรูปแบบโฆษณาที่ปรากฏขึ้นเมื่อผู้ใช้เปิดหรือเปลี่ยนกลับไปใช้แอปของคุณ โฆษณาจะวางซ้อนบนหน้าจอการโหลด

ใช้โฆษณาเปิดแอป