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

การผสานรวม 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 โปรดดูเอกสารอย่างเป็นทางการเกี่ยวกับวิธีสร้างและใช้ Podfiles

เครื่องมือจัดการแพ็กเกจ Swift

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

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

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

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

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

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

  1. ดาวน์โหลด SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google และEmbed & Signเฟรมเวิร์กต่อไปนี้ลงในโปรเจ็กต์ Xcode ของคุณ

    • GoogleMobileAds.xcframework
    • UserMessagingPlatform.xcframework
  2. เพิ่ม Flag -ObjC Linker ในแฟล็ก Linker อื่นๆ ในการตั้งค่าบิลด์ของโปรเจ็กต์ ดังนี้

อัปเดต Info.plist ของคุณ

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

  1. คีย์ GADApplicationIdentifier ที่มีค่าสตริงเป็นAd Manager app ID found in the Ad Manager UI and of the form ca-app-pub-################~##########

  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>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>

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

ในแอปจริง แทนที่รหัสแอปตัวอย่างด้วยAd Manager รหัสแอปจริง คุณจะใช้รหัสตัวอย่างได้ หากคุณแค่ทดสอบ 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 โฆษณาในอุปกรณ์เคลื่อนที่ได้รับการนำเข้าและเริ่มต้นใช้งานแล้ว และคุณพร้อมที่จะใช้งานโฆษณา Ad Manager มีรูปแบบโฆษณาต่างๆ มากมาย คุณจึงเลือกรูปแบบที่เหมาะกับประสบการณ์ของผู้ใช้แอปมากที่สุดได้

สำหรับนักพัฒนาซอฟต์แวร์ SwiftUI โปรดทำตามคู่มือ SwiftUI

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

ใช้โฆษณาแบนเนอร์

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

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

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

เนทีฟ

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

Google Ad Manager มีวิธีนำโฆษณาเนทีฟไปใช้ 2 วิธี ได้แก่ สไตล์โฆษณาเนทีฟและโฆษณาเนทีฟมาตรฐานผ่านการแสดงผลที่กำหนดเอง

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

ใช้สไตล์โฆษณาเนทีฟ ใช้โฆษณาเนทีฟ (การแสดงผลที่กำหนดเอง)

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

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

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

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

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

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

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

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

โฆษณาเปิดแอป

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

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