Thêm quảng cáo chèn giữa vào ứng dụng iOS

Với Audience Network, bạn có thể kiếm tiền từ ứng dụng iOS của mình bằng quảng cáo trên Facebook. Quảng cáo chèn giữa là quảng cáo toàn màn hình có thể hiển thị trong ứng dụng. Hãy làm theo hướng dẫn dưới đây để hiển thị loại đơn vị quảng cáo này. Hoặc nếu bạn quan tâm đến các loại đơn vị quảng cáo khác, hãy xem danh sách các loại có sẵn.

Hãy triển khai vị trí quảng cáo chèn giữa dưới đây.



Bước 1: Tải và hiển thị chế độ xem quảng cáo chèn giữa

Bước 2: Xác minh quá trình ghi lượt hiển thị và lượt click

Bước 3: Cách gỡ lỗi khi quảng cáo không hiển thị

Bước 4: Thử nghiệm tiện ích tích hợp quảng cáo

Bước 1: Tải và hiển thị chế độ xem quảng cáo chèn giữa

Đảm bảo bạn đã hoàn tất hướng dẫn Bắt đầuBắt đầu dành cho iOS với Audience Network trước khi tiếp tục.

  1. Sau khi bạn tạo một dự án mới theo hướng dẫn Bắt đầu dành cho iOS, hãy nhập FBAudienceNetwork, khai báo rằng ViewController triển khai giao thức FBInterstitialAdDelegate rồi thêm một biến thực thể cho đơn vị quảng cáo chèn giữa
    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. Tiếp theo, hãy thực thể hóa đối tượng quảng cáo trong phương thức viewDidLoad của trình kiểm soát chế độ xem rồi triển khai 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 hiển thị tại YOUR_PLACEMENT_ID là ID tạm thời chỉ phục vụ mục đích thử nghiệm.

    Nếu bạn sử dụng ID tạm thời này trong mã đang hoạt động, người dùng sẽ không nhận được quảng cáo (người dùng sẽ nhận được lỗi Không điền). Bạn phải quay lại đây sau khi thử nghiệm và thay thế ID tạm thời này bằng ID vị trí quảng cáo đang hoạt động.

    Để tìm hiểu cách tạo ID vị trí quảng cáo đang hoạt động, hãy tham khảo phần Thiết lập Audience Network

    Chọn mục tiêu bản dựng là thiết bị và chạy mã ở trên, bạn sẽ nhìn thấy nội dung như sau:

Khi chạy quảng cáo trong trình mô phỏng, hãy thay đổi cài đặt sang chế độ thử nghiệm để xem quảng cáo thử nghiệm. Vui lòng truy cập Cách sử dụng chế độ thử nghiệm để biết thêm thông tin.

Không gọi loadAd trên FBInterstitialAd khi quảng cáo đang hiển thị trên màn hình. Nếu cần tải một FBInterstitialAd khác để sử dụng sau này, bạn có thể làm như vậy sau khi người dùng đóng FBInterstitialAd hiện tại, chẳng hạn như trong lệnh gọi lại interstitialAdDidClose.

Bước 2: Xác minh quá trình ghi lượt hiển thị và lượt click

Nếu muốn, bạn có thể thêm những hàm sau đây để xử lý các trường hợp khi người dùng hiển thị, nhấp vào hoặc đóng quảng cáo

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
}

Bước 3: Gỡ lỗi khi quảng cáo không hiển thị

Thêm và triển khai hàm sau đây trong file triển khai Trình kiểm soát chế độ xem để xử lý lỗi tải quảng cáo

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);
}

Khi không có quảng cáo nào để hiển thị, interstitialAd:didFailWithError: sẽ được gọi với error.code được đặt là 1001. Nếu sử dụng lớp trung gian hoặc báo cáo tùy chỉnh riêng, bạn nên kiểm tra giá trị mã và phát hiện trường hợp này. Bạn có thể chuyển đổi dự phòng sang một mạng quảng cáo khác trong trường hợp này. Tuy nhiên, không yêu cầu lại quảng cáo ngay sau đó.

Các bước tiếp theo

  • Khám phá các mẫu mã của chúng tôi minh họa cách sử dụng quảng cáo tự nhiên. NativeAdSample khả dụng như một phần của SDK và có thể tìm được trong thư mục FBAudienceNetwork/samples. Mở dự án có Xcode và chạy trên thiết bị hoặc trình mô phỏng.