Biểu ngữ thích ứng

Biểu ngữ thích ứng là thế hệ tiếp theo của quảng cáo thích ứng, giúp bạn tăng tối đa hiệu quả hoạt động bằng cách tối ưu hóa kích thước quảng cáo cho từng thiết bị. Được cải tiến dựa trên biểu ngữ thông minh mà trước đó chỉ hỗ trợ chiều cao cố định, biểu ngữ thích ứng cho phép nhà phát triển chỉ định chiều rộng quảng cáo và sử dụng yếu tố này để xác định kích thước quảng cáo tối ưu.

Để chọn kích thước quảng cáo thích hợp nhất, biểu ngữ thích ứng sử dụng tỷ lệ khung hình cố định thay vì chiều cao cố định. Nhờ đó, quảng cáo biểu ngữ chiếm phần màn hình nhất quán hơn trên các thiết bị và mang lại cơ hội cải thiện hiệu quả hoạt động.

Khi sử dụng biểu ngữ thích ứng, xin lưu ý rằng các biểu ngữ này sẽ luôn trả về ở một kích thước không đổi cho một thiết bị và chiều rộng nhất định. Sau khi đã thử nghiệm bố cục trên một thiết bị nhất định, bạn có thể chắc chắn rằng kích thước quảng cáo đó sẽ không thay đổi. Tuy nhiên, kích thước của quảng cáo biểu ngữ có thể thay đổi trên các thiết bị khác nhau. Do đó, bạn nên đảm bảo bố cục của mình có thể phù hợp với các kiểu bố cục có chiều cao khác nhau của quảng cáo. Trong vài trường hợp, kích thước thích ứng đầy đủ có thể không hiển thị được và một quảng cáo có kích thước tiêu chuẩn sẽ được đặt ở giữa trong vùng này.

Trường hợp sử dụng biểu ngữ thích ứng

Biểu ngữ thích ứng dùng để thay thế cho biểu ngữ có kích thước tiêu chuẩn ngành 320x50 và định dạng biểu ngữ thông minh.

Các kích thước biểu ngữ này thường được dùng làm biểu ngữ cố định (biểu ngữ thường xuất hiện ở phía trên cùng hoặc dưới cùng của màn hình). Đối với các biểu ngữ cố định như vậy, tỷ lệ khung hình khi sử dụng biểu ngữ thích ứng sẽ tương tự như tỷ lệ khung hình của quảng cáo chuẩn 320x50. Hãy xem các ảnh chụp màn hình dưới đây:

Biểu ngữ thích ứng sử dụng kích thước màn hình có sẵn hiệu quả hơn. Ngoài ra, so với biểu ngữ thông minh, bạn nên chọn biểu ngữ thích ứng vì:

  • Biểu ngữ thích ứng có thể hiển thị với chiều rộng đã chỉ định thay vì chiều rộng toàn màn hình, cho phép bạn xem xét vùng an toàn.

  • Biểu ngữ thích ứng chọn một chiều cao tối ưu cho thiết bị cụ thể, thay vì hiển thị với chiều cao không đổi trên các thiết bị có kích thước khác nhau, giúp giảm thiểu tác động của hiện tượng phân mảnh thiết bị.

Lưu ý khi triển khai

Khi triển khai biểu ngữ thích ứng trong ứng dụng, hãy lưu ý những điểm sau:

  • Hãy đảm bảo rằng bạn đang sử dụng phiên bản mới nhất của SDK quảng cáo trên thiết bị di động của Google. Hãy sử dụng phiên bản mới nhất của bộ chuyển đổi dàn xếp để triển khai hoạt động dàn xếp.
  • Kích thước biểu ngữ thích ứng hoạt động hiệu quả nhất khi sử dụng toàn bộ chiều rộng có sẵn. Trong hầu hết các trường hợp, đây sẽ là chiều rộng toàn màn hình của thiết bị mà bạn đang sử dụng. Hãy nhớ xét đến vùng an toàn.

  • SDK quảng cáo trên thiết bị di động của Google sẽ trả về chiều cao quảng cáo tối ưu cho chiều rộng nhất định trong kích thước GADAdSize.

  • Bạn có thể thực hiện 3 phương pháp để đặt kích thước quảng cáo biểu ngữ thích ứng, trong đó một phương pháp dành cho biểu ngữ ngang, một phương pháp dành cho biểu ngữ dọc và một phương pháp dành cho hướng hiện tại tại thời điểm thực thi. Để biết thêm thông tin, hãy xem tài liệu đầy đủ về API dưới đây.

  • Kích thước được trả về cho một chiều rộng cụ thể trên một thiết bị cụ thể sẽ luôn giống nhau. Do đó, sau khi thử nghiệm bố cục trên một thiết bị cụ thể, bạn có thể chắc chắn rằng kích thước quảng cáo sẽ không thay đổi.

  • Chiều cao của biểu ngữ cố định không được lớn hơn 15% chiều cao của thiết bị và không được nhỏ hơn 50 điểm.

Bắt đầu nhanh

Thực hiện theo các bước dưới đây để triển khai một biểu ngữ thích ứng cố định đơn giản.

  1. Tạo đối tượng GADBannerView và đặt mã đơn vị quảng cáo của bạn.

  2. Thu thập kích thước quảng cáo biểu ngữ thích ứng. Kích thước bạn nhận được sẽ được dùng để yêu cầu biểu ngữ thích ứng của bạn. Để có kích thước quảng cáo thích ứng, hãy đảm bảo rằng bạn:

    1. Biết chiều rộng của thiết bị mà bạn đang sử dụng hoặc đặt chiều rộng riêng nếu bạn không muốn sử dụng chiều rộng toàn màn hình.
    2. Sử dụng các phương thức tĩnh thích hợp đối với lớp kích thước quảng cáo, chẳng hạn như GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(CGFloat width) để thu thập đối tượng thích ứng GADAdSize cho hướng mà bạn đã chọn.
    3. Đặt kích thước quảng cáo trên chế độ xem quảng cáo biểu ngữ. Để thực hiện việc này bằng cách đặt thuộc tính adSize trên GADBannerView.

    Hãy xem ví dụ đầy đủ dưới đây.

  3. Tạo đối tượng yêu cầu quảng cáo và sử dụng phương thức loadRequestđể tải biểu ngữ của bạn trên chế độ xem quảng cáo có sẵn, giống như cách bạn thực hiện với yêu cầu biểu ngữ thông thường.

Mã mẫu

Dưới đây là ví dụ về trình kiểm soát chế độ xem sẽ tải và tải lại biểu ngữ thích ứng trên mọi phiên bản iOS, có xét đến vùng an toàn và hướng xem:

Swift

    class ViewController: UIViewController {

      @IBOutlet weak var bannerView: GADBannerView!

      override func viewDidLoad() {
        super.viewDidLoad()

        // Step 1 - Create  GADBannerView (in code or interface builder) and set the
        // ad unit ID on it.
        bannerView.adUnitID = "ca-app-pub-3940256099942544/2435281174"
        bannerView.rootViewController = self
      }

      override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        // Note loadBannerAd is called in viewDidAppear as this is the first time that
        // the safe area is known. If safe area is not a concern (e.g., your app is
        // locked in portrait mode), the banner can be loaded in viewWillAppear.
        loadBannerAd()
      }

      override func viewWillTransition(to size: CGSize,
                              with coordinator: UIViewControllerTransitionCoordinator) {
        super.viewWillTransition(to:size, with:coordinator)
        coordinator.animate(alongsideTransition: { _ in
          self.loadBannerAd()
        })
      }

      func loadBannerAd() {
        // Step 2 - Determine the view width to use for the ad width.
        let frame = { () -> CGRect in
          // Here safe area is taken into account, hence the view frame is used
          // after the view has been laid out.
          if #available(iOS 11.0, *) {
            return view.frame.inset(by: view.safeAreaInsets)
          } else {
            return view.frame
          }
        }()
        let viewWidth = frame.size.width

        // Step 3 - Get Adaptive GADAdSize and set the ad view.
        // Here the current interface orientation is used. If the ad is being preloaded
        // for a future orientation change or different orientation, the function for the
        // relevant orientation should be used.
        bannerView.adSize = GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(viewWidth)

        // Step 4 - Create an ad request and load the adaptive banner ad.
        bannerView.load(GADRequest())
      }
    }
    

Objective-C

    @implementation ViewController

    - (void)viewDidLoad {
      [super viewDidLoad];

      // Step 1 - Create  GADBannerView (in code or interface builder) and set the
      // ad unit ID on it.
      self.bannerView.adUnitID = @"ca-app-pub-3940256099942544/2435281174";
      self.bannerView.rootViewController = self;
    }

    - (void)viewDidAppear:(BOOL)animated {
      [super viewDidAppear:animated];
      // Note loadBannerAd is called in viewDidAppear as this is the first time that
      // the safe area is known. If safe area is not a concern (e.g., your app is
      // locked in portrait mode), the banner can be loaded in viewWillAppear.
      [self loadBannerAd];
    }

    - (void)viewWillTransitionToSize:(CGSize)size
        withTransitionCoordinator:(id)coordinator {
      [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
      [coordinator animateAlongsideTransition:^(id
          _Nonnull context) {
            [self loadBannerAd];
      } completion:nil];
    }

    - (void)loadBannerAd {
      // Step 2 - Determine the view width to use for the ad width.
      CGRect frame = self.view.frame;
      // Here safe area is taken into account, hence the view frame is used after
      // the view has been laid out.
      if (@available(iOS 11.0, *)) {
        frame = UIEdgeInsetsInsetRect(self.view.frame, self.view.safeAreaInsets);
      }
      CGFloat viewWidth = frame.size.width;

      // Step 3 - Get Adaptive GADAdSize and set the ad view.
      // Here the current interface orientation is used. If the ad is being
      // preloaded for a future orientation change or different orientation, the
      // function for the relevant orientation should be used.
      self.bannerView.adSize = GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(viewWidth);

      // Step 4 - Create an ad request and load the adaptive banner ad.
      GADRequest *request = [GADRequest request];
      [self.bannerView loadRequest:request];
    }

    @end
    

Ở đây, hàm GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(CGFloat width) dùng để lấy kích thước của biểu ngữ ở một vị trí cố định cho hướng giao diện hiện tại. Để tải trước một biểu ngữ cố định theo một hướng nhất định, hãy sử dụng hàm có liên quan từ GADPortraitAnchoredAdaptiveBannerAdSizeWithWidth(CGFloat width)GADLandscapeAnchoredAdaptiveBannerAdSizeWithWidth(CGFloat width).