Yêu cầu sự đồng ý của người dùng ở Châu Âu

Theo Chính sách về sự đồng ý của người dùng ở Liên minh Châu Âu của Google, bạn phải tiết lộ một số thông tin nhất định cho những người dùng ở Khu vực kinh tế Châu Âu (EEA) và phải có được sự đồng ý của những người dùng đó để sử dụng cookie hoặc phương pháp lưu trữ cục bộ khác (trong trường hợp pháp luật yêu cầu), cũng như để sử dụng dữ liệu cá nhân (chẳng hạn như AdID) nhằm mục đích phân phát quảng cáo. Chính sách này thể hiện các yêu cầu của Chỉ thị về quyền riêng tư và truyền thông điện tử của Liên minh Châu Âu và Quy định chung về bảo vệ dữ liệu (GDPR).

Để giúp các nhà xuất bản tuân thủ các nghĩa vụ của họ theo chính sách này, Google cung cấp SDK lấy sự đồng ý. SDK lấy sự đồng ý là một thư viện nguồn mở cung cấp các hàm hữu dụng để lấy sự đồng ý của người dùng. Bạn có thể tìm thấy toàn bộ mã nguồn trên GitHub.

Những quảng cáo do Google phân phát có thể được phân loại là quảng cáo được cá nhân hóa hoặc không được cá nhân hóa, cả hai loại này đều yêu cầu phải có sự đồng ý của người dùng ở Khu vực kinh tế Châu Âu (EEA). Theo mặc định, yêu cầu quảng cáo gửi đến Google sẽ phân phát quảng cáo được cá nhân hóa, trong đó quảng cáo được chọn dựa trên dữ liệu đã thu thập trước đây của người dùng. Google cũng hỗ trợ việc định cấu hình các yêu cầu quảng cáo để phân phát quảng cáo không được cá nhân hóa. Tìm hiểu thêm về quảng cáo được cá nhân hóa và không được cá nhân hóa.

Hướng dẫn này mô tả cách sử dụng SDK lấy sự đồng ý để có được sự đồng ý của người dùng. Ngoài ra, hướng dẫn này cũng mô tả cách chuyển tiếp sự đồng ý đến SDK quảng cáo trên thiết bị di động của Google sau khi bạn đã lấy được sự đồng ý.

Điều kiện tiên quyết

CocoaPods (ưu tiên)

Cách đơn giản nhất để nhập SDK vào một dự án iOS là sử dụng CocoaPods. Hãy mở Podfile của dự án và thêm dòng này vào mục tiêu của ứng dụng:

pod 'PersonalizedAdConsent'

Sau đó, từ dòng lệnh, hãy chạy:

pod install --repo-update

Nếu bạn mới sử dụng CocoaPods, hãy xem tài liệu chính thức để biết thông tin về cách tạo và sử dụng Podfiles.

Tải xuống theo cách thủ công

Bạn cũng có thể tải xuống hoặc sao chép trực tiếp nguồn của SDK và thực hiện theo các hướng dẫn này để đưa tệp vào dự án:

  1. Từ trình tìm kiếm, hãy kéo tệp PersonalizedAdConsent.xcodeproj vào dự án của bạn.

  2. Chuyển đến thẻ Tạo giai đoạn. Trong Phần phụ thuộc mục tiêu, hãy nhấp vào nút + và thêm mục tiêu PersonalizedAdConsent.

  3. Nhấp chuột phải vào dự án của bạn và chọn Thêm tệp vào "MyProject". Di chuyển đến PersonalizedAdConsent.bundle. Hãy nhớ đánh dấu mục Tạo tham chiếu thư mục.

    Sau khi hoàn tất hành động này, bạn sẽ thấy PersonalizedAdConsent.bundle được liệt kê trong thẻ Tạo giai đoạn trong mục Sao chép tài nguyên gói.

Trước khi sử dụng phương thức nào khác trong SDK lấy sự đồng ý, bạn nên cập nhật trạng thái đồng ý để đảm bảo rằng SDK lấy sự đồng ý có thông tin mới nhất về các nhà cung cấp công nghệ quảng cáo mà bạn đã chọn trong giao diện người dùngAdMob. Nếu danh sách các nhà cung cấp công nghệ quảng cáo đã thay đổi so với lần gần đây nhất người dùng đồng ý, thì trạng thái đồng ý sẽ được đặt lại về trạng thái không xác định.

Trường hợp bạn không sử dụng tính năng dàn xếp

Nếu không sử dụng tính năng dàn xếp, bạn có 2 tùy chọn để triển khai SDK lấy sự đồng ý.

Tùy chọn 1: sử dụng SDK lấy sự đồng ý để trình bày biểu mẫu lấy sự đồng ý do Google hiển thị cho người dùng của bạn. Biểu mẫu lấy sự đồng ý hiển thị một danh sách gồm các nhà cung cấp công nghệ quảng cáo mà bạn đã chọn trong giao diện người dùng AdMob. SDK lấy sự đồng ý lưu trữ thông tin phản hồi về lựa chọn của người dùng.

Tùy chọn 2: sử dụng SDK lấy sự đồng ý để chủ động truy xuất toàn bộ danh sách các nhà cung cấp công nghệ quảng cáo từ AdMob, như đã giải thích trong bài viết lấy sự đồng ý do nhà xuất bản quản lý. Tuy nhiên, trong trường hợp này, bạn sẽ cần xác định cách tạo danh sách các nhà cung cấp cho người dùng cũng như trình bày biểu mẫu lấy sự đồng ý của riêng bạn cho người dùng.

Sau khi người dùng đã đưa ra lựa chọn, bạn có thể yêu cầu SDK lấy sự đồng ý lưu trữ lựa chọn của người dùng như đã giải thích trong Lưu trữ dữ liệu về sự đồng ý do nhà xuất bản quản lý.

Sau khi lấy sự đồng ý, nếu người dùng đã đồng ý chỉ nhận quảng cáo không được cá nhân hóa, bạn sẽ cần chuyển tiếp sự đồng ý đến SDK quảng cáo trên thiết bị di động của Google.

Trường hợp bạn sử dụng tính năng dàn xếp AdMob

Bạn có thể sử dụng SDK lấy sự đồng ý để chủ động truy xuất toàn bộ danh sách nhà cung cấp công nghệ quảng cáo từ AdMob, như đã giải thích trong bài viết lấy sự đồng ý do nhà xuất bản quản lý. Bạn sẽ phải xác định xem bạn cần hiển thị thêm các nhà cung cấp công nghệ quảng cáo nào từ các mạng quảng cáo khác cho người dùng để lấy sự đồng ý.

Là một nhà phát triển ứng dụng, bạn sẽ cần lấy sự đồng ý của người dùng cho cả nhà cung cấp công nghệ quảng cáo do SDK lấy sự đồng ý trả về và nhà cung cấp từ các mạng quảng cáo khác. Bạn cũng cần lưu trữ theo cách thủ công các lựa chọn của người dùng và chuyển tiếp sự đồng ý đến SDK quảng cáo trên thiết bị di động của Google nếu người dùng đã đồng ý chỉ nhận quảng cáo không được cá nhân hóa.

Hiện tại, Google không thể lấy và xử lý sự đồng ý cho các mạng dàn xếp, vì vậy, bạn sẽ cần lấy và xử lý riêng sự đồng ý cho từng mạng quảng cáo. Chúng tôi đang tích cực làm việc với tất cả mạng dàn xếp nguồn mở với các phiên bản khác nhau để cung cấp tài liệu cập nhật kèm theo thông tin chi tiết về cách chuyển tiếp sự đồng ý. Tài liệu đã được phát hành cho các mạng dàn xếp sau đây:

Cập nhật trạng thái đồng ý

Khi sử dụng SDK lấy sự đồng ý, bạn nên xác định trạng thái về sự đồng ý của người dùng vào mỗi lần khởi chạy ứng dụng. Để thực hiện việc này, hãy gọi requestConsentInfoUpdateForPublisherIdentifiers:completionHandler: trên bản sao của PACConsentInformation.

Swift

import PersonalizedAdConsent
...
class ViewController: UIViewController {

  override func viewDidLoad() {
    super.viewDidLoad()
    PACConsentInformation.sharedInstance.
    requestConsentInfoUpdate(
    forPublisherIdentifiers: ["pub-0123456789012345"])
    {(_ error: Error?) -> Void in
      if let error = error {
        // Consent info update failed.
      } else {
        // Consent info update succeeded. The shared PACConsentInformation
        // instance has been updated.
      }
    }
  }

Objective-C

#import <PersonalizedAdConsent/PersonalizedAdConsent.h>
...
@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];

  [PACConsentInformation.sharedInstance
      requestConsentInfoUpdateForPublisherIdentifiers:@[ @"pub-0123456789012345" ]
          completionHandler:^(NSError *_Nullable error) {
            if (error) {
              // Consent info update failed.
            } else {
              // Consent info update succeeded. The shared PACConsentInformation
              // instance has been updated.
            }
          }];
}

Lệnh gọi đến requestConsentInfoUpdateForPublisherIdentifiers:completionHandler: yêu cầu 2 đối số:

  • Một loạt mã nhà xuất bản hợp lệ và được kích hoạt hoàn toàn mà từ đó ứng dụng của bạn yêu cầu quảng cáo. Tìm mã nhà xuất bản.

  • Một khối chấp nhận NSError dưới dạng thông số đầu vào. Khối này cung cấp thông tin về yêu cầu cập nhật sự đồng ý không thành công.

Nếu thông tin về sự đồng ý được cập nhật thành công, PACConsentInformation.sharedInstance.consentStatus sẽ cung cấp trạng thái đồng ý đã cập nhật. Thông tin này có thể có các giá trị sau:

Trạng thái đồng ý Định nghĩa
PACConsentStatusPersonalized Người dùng đã đồng ý nhận quảng cáo được cá nhân hóa.
PACConsentStatusNonPersonalized Người dùng đã đồng ý nhận quảng cáo không được cá nhân hóa.
PACConsentStatusUnknown Người dùng không đồng ý cũng không từ chối nhận quảng cáo được cá nhân hóa hoặc quảng cáo không được cá nhân hóa.

Khi thông tin về sự đồng ý được cập nhật thành công, bạn cũng có thể kiểm tra PACConsentInformation.sharedInstance.requestLocationInEEAOrUnknown để xem liệu người dùng có ở Khu vực kinh tế Châu Âu hay không hay hệ thống không thể xác định vị trí yêu cầu.

Nếu thuộc tính requestLocationInEEAOrUnknownNO, thì tức là người dùng đó không ở trong Khu vực kinh tế Châu Âu và bạn không phải lấy sự đồng ý của người dùng đó theo Chính sách về sự đồng ý của người dùng ở Liên minh Châu Âu. Bạn có thể tạo các yêu cầu quảng cáo cho SDK quảng cáo trên thiết bị di động của Google.

Nếu thuộc tính requestLocationInEEAOrUnknownYES:

SDK lấy sự đồng ý. cho phép bạn lấy sự đồng ý của người dùng thông qua 2 cách:

Hãy nhớ cung cấp cho người dùng tùy chọn Thay đổi hoặc thu hồi sự đồng ý.

Biểu mẫu lấy sự đồng ý do Google hiển thị là một biểu mẫu định cấu hình toàn màn hình hiển thị trên nội dung ứng dụng của bạn. Bạn có thể định cấu hình biểu mẫu để trình bày cho người dùng các kiểu kết hợp theo các tùy chọn sau:

  • Đồng ý xem quảng cáo được cá nhân hóa
  • Đồng ý xem quảng cáo không được cá nhân hóa
  • Sử dụng phiên bản có trả tiền của ứng dụng thay vì xem quảng cáo

Bạn nên xem xét kỹ văn bản lấy sự đồng ý: theo mặc định, văn bản này là một thông báo có thể phù hợp nếu bạn sử dụng Google để kiếm tiền từ ứng dụng; nhưng chúng tôi không thể cung cấp dịch vụ tư vấn pháp lý về văn bản đồng ý thích hợp cho bạn. Để cập nhật văn bản trên biểu mẫu lấy sự đồng ý của Google, hãy sửa đổi tệp consentform.html trong SDK lấy sự đồng ý theo yêu cầu.

Biểu mẫu lấy sự đồng ý do Google hiển thị được định cấu hình và hiển thị thông qua lớp PACConsentForm. Mã sau đây minh họa cách tạo PACConsentForm với cả 3 tùy chọn biểu mẫu sau:

Swift

// TODO: Replace with your app's privacy policy url.
guard let privacyUrl = URL(string: "https://www.your.com/privacyurl"),
  let form = PACConsentForm(applicationPrivacyPolicyURL: privacyUrl) else {
    print("incorrect privacy URL.")
    return
}
form.shouldOfferPersonalizedAds = true
form.shouldOfferNonPersonalizedAds = true
form.shouldOfferAdFree = true

Objective-C

// TODO: Replace with your app's privacy policy url.
NSURL *privacyURL = [NSURL URLWithString:@"https://www.your.com/privacyurl"];
PACConsentForm *form = [[PACConsentForm alloc] initWithApplicationPrivacyPolicyURL:privacyURL];
form.shouldOfferPersonalizedAds = YES;
form.shouldOfferNonPersonalizedAds = YES;
form.shouldOfferAdFree = YES;

Dưới đây là nội dung mô tả chi tiết hơn về các thuộc tính của PACConsentForm:

shouldOfferPersonalizedAds
Cho biết liệu biểu mẫu lấy sự đồng ý có hiển thị tùy chọn quảng cáo được cá nhân hóa hay không. Giá trị mặc định là YES.
shouldOfferNonPersonalizedAds
Cho biết liệu biểu mẫu lấy sự đồng ý có hiển thị tùy chọn quảng cáo không được cá nhân hóa hay không. Giá trị mặc định là YES.
shouldOfferAdFree
Cho biết liệu biểu mẫu lấy sự đồng ý có hiển thị tùy chọn ứng dụng không có quảng cáo hay không. Giá trị mặc định là NO.

Khi bạn đã tạo và định cấu hình đối tượng PACConsentForm, hãy tải biểu mẫu lấy sự đồng ý bằng cách gọi phương thức loadWithCompletionHandler: của PACConsentForm (như được hiển thị bên dưới):

Swift

form.load {(_ error: Error?) -> Void in
  print("Load complete.")
  if let error = error {
    // Handle error.
    print("Error loading form: \(error.localizedDescription)")
  } else {
    // Load successful.
  }
}

Objective-C

[form loadWithCompletionHandler:^(NSError *_Nullable error) {
  NSLog(@"Load complete. Error: %@", error);
  if (error) {
    // Handle error.
  } else {
    // Load successful.
  }
}];

Để người dùng nhìn thấy biểu mẫu lấy sự đồng ý do Google hiển thị, hãy gọi presentFromViewController:dismissCompletion: trên PACConsentForm đã tải, như được minh họa dưới đây:

Swift

form.present(from: self) { (error, userPrefersAdFree) in
      if let error = error {
        // Handle error.
      } else if userPrefersAdFree {
        // User prefers to use a paid version of the app.
      } else {
        // Check the user's consent choice.
        let status =
             PACConsentInformation.sharedInstance.consentStatus
      }
    }

Objective-C

 [form presentFromViewController:self
     dismissCompletion:^(NSError *_Nullable error, BOOL userPrefersAdFree) {
       if (error) {
         // Handle error.
       } else if (userPrefersAdFree) {
         // The user prefers to use a paid version of the app.
       } else {
         // Check the user's consent choice.
         PACConsentStatus status =
             PACConsentInformation.sharedInstance.consentStatus;
       }
     }];

Lệnh gọi đến presentFromViewController:dismissCompletion: yêu cầu 2 đối số:

  • UIViewController để hiển thị từ đó.

  • Một khối chấp nhận NSErrorBOOL làm thông số đầu vào. NSError cung cấp thông tin nếu xảy ra lỗi khi hiển thị biểu mẫu lấy sự đồng ý. userPrefersAdFree BOOL có giá trị YES khi người dùng chọn sử dụng phiên bản có trả tiền của ứng dụng thay vì xem quảng cáo.

Sau khi người dùng chọn một tùy chọn và đóng biểu mẫu, SDK lấy sự đồng ý sẽ lưu lựa chọn của người dùng và gọi khối dismissCompletion:. Bạn có thể đọc lựa chọn của người dùng và chuyển tiếp sự đồng ý đến SDK quảng cáo trên thiết bị di động của Google.

Lấy sự đồng ý do nhà xuất bản quản lý

Nếu muốn tự mình lấy sự đồng ý của người dùng, bạn có thể sử dụng thuộc tính adProviders của lớp PACConsentInformation để yêu cầu nhà cung cấp công nghệ quảng cáo liên kết với Mã nhà xuất bản được sử dụng trong ứng dụng của bạn. Xin lưu ý rằng cần có sự đồng ý để có danh sách đầy đủ các nhà cung cấp công nghệ quảng cáo được định cấu hình cho Mã nhà xuất bản của bạn.

Trước khi truy cập vào thuộc tính adProviders của PACConsentInformation, bạn phải đợi cập nhật thành công trạng thái đồng ý của người dùng như được mô tả trong mục Cập nhật trạng thái đồng ý.

Swift

let adProviders = PACConsentInformation.sharedInstance.adProviders

Objective-C

NSArray *adProviders = PACConsentInformation.sharedInstance.adProviders;

Sau đó, bạn có thể sử dụng danh sách các nhà cung cấp quảng cáo để tự lấy sự đồng ý.

Khi nhận được sự đồng ý, hãy ghi lại PACConsentStatus tương ứng với câu trả lời của người dùng bằng cách sử dụng thuộc tính status của lớp PACConsentInformation.

Swift

PACConsentInformation.sharedInstance.consentStatus = .personalized

Objective-C

PACConsentInformation.sharedInstance.consentStatus = PACConsentStatusPersonalized;

Sau khi báo cáo sự đồng ý cho SDK lấy sự đồng ý, bạn có thể chuyển tiếp sự đồng ý đến SDK quảng cáo trên thiết bị di động của Google.

Để cho phép người dùng cập nhật sự đồng ý, bạn chỉ cần lặp lại các bước trong mục Lấy sự đồng ý khi người dùng chọn cập nhật trạng thái đồng ý của họ.

Nếu nhà xuất bản biết rằng người dùng chưa đủ tuổi thành niên, tất cả các yêu cầu quảng cáo đều phải đặt TFUA (Thẻ cho người dùng chưa đủ tuổi thành niên ở Châu Âu). Để đưa thẻ này vào tất cả các yêu cầu quảng cáo được tạo từ ứng dụng của bạn, đặt thuộc tính tagForUnderAgeOfConsent thành YES. Tùy chọn cài đặt này có hiệu lực cho tất cả các yêu cầu quảng cáo trong tương lai.

Swift

PACConsentInformation.sharedInstance.isTaggedForUnderAgeOfConsent = true

Objective-C

PACConsentInformation.sharedInstance.tagForUnderAgeOfConsent = YES;

Sau khi bật tùy chọn cài đặt TFUA, bạn sẽ không thể tải biểu mẫu lấy sự đồng ý do Google hiển thị. Tất cả yêu cầu quảng cáo bao gồm TFUA sẽ trở thành không đủ điều kiện cho hoạt động tiếp thị lại và quảng cáo được cá nhân hóa. TFUA vô hiệu hóa yêu cầu cho nhà cung cấp công nghệ quảng cáo bên thứ ba, chẳng hạn như pixel đo lường quảng cáo và máy chủ quảng cáo bên thứ ba.

Để xóa TFUA khỏi các yêu cầu quảng cáo, đặt thuộc tính tagForUnderAgeOfConsent thành NO.

Thử nghiệm

SDK lấy sự đồng ý có các hành động khác nhau tùy thuộc vào giá trị của PACConsentInformation.sharedInstance.requestLocationInEEAOrUnknown. Ví dụ: không thể tải biểu mẫu lấy sự đồng ý nếu người dùng không ở Khu vực kinh tế Châu Âu (EEA).

Để cho phép thử nghiệm ứng dụng của bạn dễ dàng hơn cả bên trong và bên ngoài Khu vực kinh tế Châu Âu (EEA), SDK lấy sự đồng ý hỗ trợ các tùy chọn gỡ lỗi mà bạn có thể đặt trước khi gọi bất kỳ phương thức nào khác trong SDK lấy sự đồng ý.

  1. Lấy mã nhận dạng cho quảng cáo của thiết bị. Bạn có thể sử dụng mã sau để ghi nhật ký mã nhận dạng cho quảng cáo:

    #import <AdSupport/AdSupport.h>
    // ...
    
    NSLog(@"Advertising ID: %@",
          ASIdentifierManager.sharedManager.advertisingIdentifier.UUIDString);

    Sau đó, hãy kiểm tra bảng điều khiển để tìm mã nhận dạng đó:

    Advertising ID: 41E538F6-9C98-4EF2-B3EE-D7BD8CAF8339
  2. Liệt kê thiết bị của bạn là thiết bị gỡ lỗi bằng cách sử dụng mã nhận dạng cho quảng cáo từ bảng điều khiển:

    PACConsentInformation.sharedInstance.debugIdentifiers =
        @[ @"41E538F6-9C98-4EF2-B3EE-D7BD8CAF8339" ];
  3. Cuối cùng, hãy đặt debugGeography thành vị trí địa lý mà bạn muốn thử nghiệm.

    // Geography appears as in EEA for debug devices.
    PACConsentInformation.sharedInstance.debugGeography = PACDebugGeographyEEA;
    // Geography appears as not in EEA for debug devices.
    PACConsentInformation.sharedInstance.debugGeography = PACDebugGeographyNotEEA;

Sau khi hoàn thành các bước này, các lệnh gọi để cập nhật trạng thái đồng ý sẽ tính đến vị trí địa lý gỡ lỗi của bạn.

Bạn có thể sử dụng mã trong mục này với mọi phiên bản SDK quảng cáo trên thiết bị di động của Google. Bạn cũng có thể sử dụng mã cho dù bạn có sử dụng SDK lấy sự đồng ý để lấy sự đồng ý hay không.

Hoạt động mặc định của SDK quảng cáo trên thiết bị di động của Google là phân phát quảng cáo được cá nhân hóa. Nếu người dùng đã đồng ý chỉ nhận quảng cáo không được cá nhân hóa, bạn có thể định cấu hình đối tượng GADRequest để chỉ định rằng chỉ có quảng cáo không được cá nhân hóa mới được yêu cầu: Quảng cáo không được cá nhân hóa luôn được người dùng yêu cầu thông qua mã sau, bất kể người dùng có ở Khu vực kinh tế Châu Âu (EEA) hay không:

Swift

let request = GADRequest()
let extras = GADExtras()
extras.additionalParameters = ["npa": "1"]
request.register(extras)

Objective-C

GADRequest *request = [GADRequest request];
GADExtras *extras = [[GADExtras alloc] init];
extras.additionalParameters = @{@"npa": @"1"};
[request registerAdNetworkExtras:extras];

Nếu có yêu cầu quảng cáo không được cá nhân hóa, thì URL yêu cầu quảng cáo hiện tại sẽ chứa &npa=1. Tuy nhiên, xin lưu ý rằng đây là thông tin chi tiết về hoạt động triển khai nội bộ của SDK quảng cáo trên thiết bị di động của Google và có thể thay đổi.

Trì hoãn đo lường ứng dụng (không bắt buộc)

Theo mặc định, SDK quảng cáo trên thiết bị di động của Google khởi chạy phép đo lường ứng dụng và bắt đầu gửi dữ liệu sự kiện cấp người dùng tới Google ngay khi ứng dụng khởi động. Hoạt động khởi chạy này đảm bảo bạn có thể kích hoạt các chỉ số người dùng AdMob mà không cần thực hiện thêm thay đổi nào về mã.

Tuy nhiên, nếu ứng dụng của bạn cần có sự đồng ý của người dùng trước khi gửi những sự kiện này, thì bạn có thể trì hoãn việc đo lường ứng dụng cho đến khi chắc chắn khởi chạy SDK quảng cáo trên thiết bị di động hoặc tải quảng cáo.

Để trì hoãn việc đo lường ứng dụng, hãy thêm khóa GADDelayAppMeasurementInit với giá trị boolean là YES vào Info.plist của ứng dụng. Bạn có thể thực hiện thay đổi này theo phương thức lập trình:

<key>GADDelayAppMeasurementInit</key>
<true/>

Bạn cũng có thể chỉnh sửa tệp này trong trình chỉnh sửa danh sách thuộc tính:

Câu hỏi thường gặp

SDK lấy sự đồng ý hỗ trợ bao nhiêu nhà cung cấp công nghệ quảng cáo?
SDK lấy sự đồng ý không quy định hạn mức về số lượng nhà cung cấp công nghệ quảng cáo mà nhà xuất bản có thể chọn kích hoạt.
Danh sách nhà cung cấp công nghệ quảng cáo được SDK trả lại có tự động cập nhật không nếu tôi thay đổi lựa chọn của mình trong giao diện người dùng AdMob?
Có, nếu bạn thay đổi danh sách các nhà cung cấp công nghệ quảng cáo trong giao diện người dùng AdMob, các thay đổi đó sẽ truyền đến các máy chủ quảng cáo của Google trong khoảng một giờ.