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

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

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

  • ใช้ 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 ที่เก็บ GitHub:

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

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

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

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

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

    • เพิ่มเส้นทาง /usr/lib/swift ไปยัง Runpath Search Path
    • เพิ่มแฟล็ก Linker -ObjC ในแฟล็ก 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>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>

คุณควรเชื่อมโยงกลุ่มอัตราผลตอบแทนกับแอปที่ใช้งานเพื่อประสิทธิภาพในการเริ่มต้นที่ดีที่สุด การกำหนดค่ากลุ่มผลตอบแทน ที่กำหนดเป้าหมายไปที่ 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

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

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

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

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

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

เนทีฟ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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