เพิ่มโฆษณาคั่นลงในแอพ iOS

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

มาใช้ตำแหน่งการจัดวางโฆษณาคั่นดังต่อไปนี้กัน



ขั้นตอนที่ 1: โหลดและแสดงมุมมองโฆษณาคั่น

ขั้นตอนที่ 2: ตรวจสอบยืนยันอิมเพรสชั่นและการลงบันทึกจำนวนการคลิก

ขั้นตอนที่ 3: วิธีแก้ไขจุดบกพร่องเมื่อโฆษณาไม่แสดงขึ้น

ขั้นตอนที่ 4: ทดสอบการผสานการทำงานของโฆษณา

ขั้นตอนที่ 1: โหลดและแสดงมุมมองโฆษณาคั่น

อย่าลืมดูคู่มือเริ่มต้นใช้งาน Audience Network และเริ่มต้นใช้งาน iOS ก่อนดำเนินการต่อ

  1. หลังจากที่คุณสร้างโปรเจ็กต์ใหม่จากคู่มือการเริ่มต้นใช้งานบน iOS แล้ว ให้นำเข้า FBAudienceNetwork ประกาศว่า ViewController ใช้โปรโตคอล FBInterstitialAdDelegate และเพิ่มตัวแปรอินสแตนซ์สำหรับหน่วยโฆษณาคั่น
    import UIKit
    import FBAudienceNetwork
    
    class ViewController: UIViewController, FBInterstitialAdDelegate {
      private var interstitialAd: FBInterstitialAd?
    }
    #import <UIKit/UIKit.h>
    @import FBAudienceNetwork;
    
    @interface ViewController : UIViewController <FBInterstitialAdDelegate>
    @property (nonatomic, strong) FBInterstitialAd *interstitialAd;
    @end

  2. ถัดไป ให้สร้างอินสแตนซ์อ็อบเจ็กต์โฆษณาในเมธอด viewDidLoad ของตัวควบคุมมุมมอง และใช้ interstitialAdDidLoad
    override func viewDidLoad() {
      super.viewDidLoad()
    
      // Instantiate an InterstitialAd object.
      // NOTE: the placement ID will eventually identify this as your app. You can ignore it while you are testing
      // and replace it later when you have signed up.
      // While you are using this temporary code you will only get test ads and if you release
      // your code like this to the App Store your users will not receive ads (you will get a 'No Fill' error).
      let interstitialAd = FBInterstitialAd(placementID: "YOUR_PLACEMENT_ID")
      interstitialAd.delegate = self
    
      // For auto play video ads, it's recommended to load the ad at least 30 seconds before it is shown
      interstitialAd.load()
      
      self.interstitialAd = interstitialAd
    }
    
    func interstitialAdDidLoad(_ interstitialAd: FBInterstitialAd) {
      guard interstitialAd.isAdValid else {
        return
      }
      print("Ad is loaded and ready to be displayed")
      interstitialAd.show(fromRootViewController: self)
    }
    - (void)viewDidLoad 
    {
      [super viewDidLoad];
    
      // Instantiate an InterstitialAd object. 
      // NOTE: the placement ID will eventually identify this as your app. You can ignore it while you are testing 
      // and replace it later when you have signed up.
      // While you are using this temporary code you will only get test ads and if you release
      // your code like this to the App Store your users will not receive ads (you will get a 'No Fill' error).
      self.interstitialAd = [[FBInterstitialAd alloc] initWithPlacementID:@"YOUR_PLACEMENT_ID"];
    
      self.interstitialAd.delegate = self;
    
      // For auto play video ads, it's recommended to load the ad at least 30 seconds before it is shown
      [self.interstitialAd loadAd];
    }
    
    - (void)interstitialAdDidLoad:(FBInterstitialAd *)interstitialAd
    {
      NSLog(@"Ad is loaded and ready to be displayed");
    
      if (interstitialAd && interstitialAd.isAdValid) {
        // You can now display the full screen ad using this code:
        [interstitialAd showAdFromRootViewController:self];
      }
    }

  3. ID ที่แสดงที่ YOUR_PLACEMENT_ID เป็น ID ชั่วคราวเพื่อการทดสอบเท่านั้น

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

    หากต้องการรู้วิธีสร้าง ID ตำแหน่งการจัดวางที่ใช้งานจริง ให้ดูที่การตั้งค่า Audience Network

    เลือกเป้าหมายการสร้างเป็นอุปกรณ์ และเรียกใช้โค้ดข้างต้น คุณควรจะเห็นสิ่งต่อไปนี้:

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

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

ขั้นตอนที่ 2: ตรวจสอบยืนยันอิมเพรสชั่นและการลงบันทึกจำนวนการคลิก

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

func interstitialAdWillLogImpression(_ interstitialAd: FBInterstitialAd) {
  print("The user sees the ad")
  // Use this function as indication for a user's impression on the ad.
}

func interstitialAdDidClick(_ interstitialAd: FBInterstitialAd) {
  print("The user clicked on the ad and will be taken to its destination")
  // Use this function as indication for a user's click on the ad.
}

func interstitialAdWillClose(_ interstitialAd: FBInterstitialAd) {
  print("The user clicked on the close button, the ad is just about to close")
  // Consider to add code here to resume your app's flow
}

func interstitialAdDidClose(_ interstitialAd: FBInterstitialAd) {
  print("The user clicked on the close button, the ad is just about to close")
  // Consider to add code here to resume your app's flow
}
- (void)interstitialAdWillLogImpression:(FBInterstitialAd *)interstitialAd 
{
  NSLog(@"The user sees the ad");
  // Use this function as indication for a user's impression on the ad.
}

- (void)interstitialAdDidClick:(FBInterstitialAd *)interstitialAd
{
  NSLog(@"The user clicked on the ad and will be taken to its destination");
  // Use this function as indication for a user's click on the ad.
}

- (void)interstitialAdWillClose:(FBInterstitialAd *)interstitialAd
{
  NSLog(@"The user clicked on the close button, the ad is just about to close");
  // Consider to add code here to resume your app's flow
}

- (void)interstitialAdDidClose:(FBInterstitialAd *)interstitialAd
{
  NSLog(@"Interstitial had been closed");
  // Consider to add code here to resume your app's flow
}

ขั้นตอนที่ 3: การแก้ไขจุดบกพร่องเมื่อโฆษณาไม่แสดงขึ้น

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

func interstitialAd(_ interstitialAd: FBInterstitialAd, didFailWithError error: Error) {
  print("Interstitial ad failed to load with error: \(error.localizedDescription)")
}
- (void)interstitialAd:(FBInterstitialAd *)interstitialAd didFailWithError:(NSError *)error
{
  NSLog(@"Interstitial ad failed to load with error: %@", error);
}

เมื่อไม่มีโฆษณาที่จะแสดง ระบบจะเรียกใช้ interstitialAd:didFailWithError: โดยมีการตั้งค่า error.code เป็น 1001 หากคุณใช้การรายงานแบบกำหนดเองหรือเลเยอร์สื่อกลางโฆษณา คุณอาจต้องตรวจสอบค่าโค้ดและตรวจหากรณีดังกล่าวนี้ คุณสามารถใช้เครือข่ายโฆษณาอื่นเป็นตัวเลือกสำรองได้ในกรณีนี้ แต่อย่าส่งคำขอโฆษณาซ้ำอีกครั้งในทันทีหลังจากดำเนินการ

ขั้นตอนถัดไป

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