Triển khai AFS dành cho ứng dụng di động (AFSMA) cho Android

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

Hướng dẫn triển khai này giả định bạn đã quen thuộc với những điều sau:

Lớp

Để phân phát quảng cáo AFSMA (còn được gọi là quảng cáo tìm kiếm theo chiều cao động) trong ứng dụng của bạn, triển khai các lớp sau:

SearchAdView

  • Lớp này kế thừa từ lớp ViewGroup của Android và hiển thị quảng cáo AFSMA. SearchAdView đưa ra yêu cầu về một quảng cáo có DynamicHeightSearchAdRequest rồi hiển thị quảng cáo được trả về. Bạn phải thêm SearchAdView vào bất kỳ nhóm thành phần hiển thị hiện có nào của ứng dụng.
  • SearchAdView phải được tạo thực thể theo ngữ cảnh SearchAdView đang chạy, thường là Activity.
  • Sau khi tạo thực thể cho SearchAdView, bạn phải gọi phương thức setAdSize() với AdSize.SEARCH để yêu cầu quảng cáo AFSMA. Các giá trị enum khác sẽ yêu cầu quảng cáo không tương thích với AFS dành cho ứng dụng di động.
  • Gọi phương thức setAdUnitId() trên đối tượng này bằng mã thuộc tính.

DynamicHeightSearchAdRequest.Builder

  • Lớp này đóng gói các thông số yêu cầu quảng cáo. Việc này tương tự với việc đặt thông số trong đối tượng yêu cầu quảng cáo JavaScript (tuỳ chọn trang, lựa chọn đơn vị) cho AFS dành cho máy tính và web dành cho thiết bị di động.
  • Thiết lập tham số bằng phương thức setter thích hợp (nói cách khác, gọi setQuery() để đặt tham số truy vấn).

Cách triển khai mẫu

Ví dụ bên dưới minh hoạ cách sử dụng Activity để tạo một SearchAdView làm khung hiển thị phụ của ViewGroup. Để yêu cầu quảng cáo AFSMA đúng cách, SearchAdView phải gọi phương thức setAdSize() bằng AdSize.SEARCH.

//  MainActivity.java implementation
//  (MainActivity is a subclass of Activity)

// Create the SearchAdView
final SearchAdView searchAdView = new SearchAdView(this);

// Set parameter to request for dynamic height search ads
searchAdView.setAdSize(AdSize.SEARCH); // Important!

// Replace with your pub ID (e.g. ms-app-pub-9616389000213823)
searchAdView.setAdUnitId("ms-app-pub-################");

// Add searchAdView to parent view group
...

Trong cùng một Activity, hãy tạo một DynamicHeightSearchAdRequest.Builder cho biết các thông số của quảng cáo sẽ được hiển thị trong SearchAdView. Quảng cáo AFSMA được định cấu hình theo cách giống như Quảng cáo tìm kiếm tuỳ chỉnh AFS; xem Quảng cáo đi kèm kết quả tìm kiếm tùy chỉnh AFS Tài liệu tham khảo để biết thông tin chi tiết.

// Create the ad request
DynamicHeightSearchAdRequest.Builder builder =
        new DynamicHeightSearchAdRequest.Builder();
builder.setQuery("flowers");
builder.setNumber(2);

// Replace with the ID of a style from your custom search styles
builder.setAdvancedOptionValue("csa_styleId", "0000000001");

// Customization options (set using setters on
// DynamicHeightSearchAdRequest.Builder)
builder.setAdTest(true);

Bạn có thể có các tuỳ chọn tuỳ chỉnh khác bằng cách đặt các thuộc tính bổ sung trên DynamicHeightSearchAdRequest.Builder .

Để tạo một yêu cầu quảng cáo, hãy gọi phương thức loadAd() bằng phương thức Đối tượng DynamicHeightSearchAdRequest.Builder từ đối tượng SearchAdView:

searchAdView.loadAd(builder.build());

Tùy chọn nâng cao

Hầu hết thông số yêu cầu quảng cáo có thể được thiết lập thông qua phương thức setter trên đối tượng DynamicHeightSearchAdRequest.Builder. Bất kỳ tham số nào không có phương thức setter trong Bạn có thể đặt DynamicHeightSearchAdRequest.Builder bằng các cặp khoá-giá trị với setAdvancedOptionValue() . Xem Quảng cáo tìm kiếm tuỳ chỉnh AdSense cho Tìm kiếm Tài liệu tham khảo để xem danh sách đầy đủ những chế độ cài đặt có thể thiết lập bằng setAdvancedOptionValue().

Thông số khóa phải có tiền tố là "csa_" cho thuộc tính được đặt chính xác.

// Advanced customization options (set using key-value pair)

// Set a parameter (parameter_name) and its value (parameter_value)
// builder.setAdvancedOptionValue("csa_parameter_name", "parameter_value");

// Example: Show visible URL below description
// (domainLinkAboveDescription: false)
builder.setAdvancedOptionValue("csa_domainLinkAboveDescription", "false");

Nếu bạn sử dụng phương thức setter của một tham số và thiết lập phương thức đó bằng setAdvancedOptionValue, lệnh gọi thứ hai sẽ ghi đè giá trị của lệnh gọi đầu tiên.

Điều tra lỗi

SearchAdView (searchAdView tại đây) chứa một phương thức setAdListener() để giúp bạn điều tra lỗi. Trong cùng một Activity:

searchAdView.setAdListener(new AdListener() {
    @Override
    public void onAdLoaded() {
        // Called when an ad is loaded
        super.onAdLoaded();
        Toast.makeText(MainActivity.this, "Ad Loaded",
                Toast.LENGTH_SHORT).show();
        Log.d(MainActivity.class.getSimpleName(), "Ad Loaded");
    }

    @Override
    public void onAdOpened() {
        // Called when an ad opens an overlay that covers the screen
        super.onAdOpened();
        Toast.makeText(MainActivity.this, "Ad Opened",
                Toast.LENGTH_SHORT).show();
        Log.d(MainActivity.class.getSimpleName(), "Ad Opened");
    }

    @Override
    public void onAdLeftApplication() {
        // Called when an ad leaves the application
        // (to go to the browser for example)
        super.onAdLeftApplication();
        Toast.makeText(MainActivity.this, "Ad Left Application",
                Toast.LENGTH_SHORT).show();
        Log.d(MainActivity.class.getSimpleName(), "Ad Left Application");
    }

    @Override
    public void onAdFailedToLoad(int errorCode) {
        // Called when an ad request failed
        super.onAdFailedToLoad(errorCode);
        Toast.makeText(MainActivity.this, "Ad Failed to Load: " + errorCode,
                Toast.LENGTH_SHORT).show();
        Log.e(MainActivity.class.getSimpleName(), "Ad Failed to Load: " +
                errorCode);
    }
});

Hằng số được dùng trong phương thức gọi lại onAdFailedToLoad() được mô tả trong API tham chiếu.

Chuẩn bị cho các yêu cầu công bố dữ liệu của Google Play

Vào tháng 5 năm 2021, Google Play đã ra mắt mục An toàn dữ liệu mới. Mục này chứa thông tin do nhà phát triển công bố về các phương pháp thu thập, chia sẻ và bảo mật dữ liệu của ứng dụng.

Trang này có thể giúp bạn hoàn tất các yêu cầu đối với thông tin công bố trong dữ liệu này liên quan đến việc bạn sử dụng SDK gốc AFS (cũng áp dụng cho việc sử dụng AdSense cho Mua sắm). Trên trang này, bạn có thể tìm thấy thông tin về việc SDK của chúng tôi có xử lý dữ liệu người dùng cuối hay không và xử lý như thế nào.

Chúng tôi cố gắng minh bạch nhất có thể trong việc hỗ trợ bạn; tuy nhiên, là nhà phát triển ứng dụng, bạn hoàn toàn chịu trách nhiệm về việc phản hồi biểu mẫu trong mục An toàn dữ liệu của Google Play liên quan đến các phương pháp bảo mật cũng như hoạt động thu thập và chia sẻ dữ liệu người dùng cuối của ứng dụng.

Cách sử dụng thông tin trên trang này

Trang này chỉ liệt kê dữ liệu người dùng cuối mà phiên bản SDK mới nhất thu thập.

Để hoàn tất thông tin công bố liên quan đến việc thu thập và sử dụng dữ liệu, bạn có thể tham khảo hướng dẫn về các loại dữ liệu của Android để xác định loại dữ liệu mô tả chính xác nhất dữ liệu được thu thập. Trong thông tin công bố liên quan đến dữ liệu, bạn nhớ đề cập đến cả cách ứng dụng cụ thể của bạn chia sẻ và sử dụng dữ liệu đã thu thập.

Loại dữ liệu mà SDK truy cập và thu thập

Gói hàng:

com.google.android.gms:play-services-afs-native

com.google.ads.afsn

Dữ liệu được thu thập tự động

SDK AFS thu thập dữ liệu sau đây một cách tự động. Tất cả dữ liệu được truyền ra khỏi thiết bị đến Google nhằm mục đích phân phát quảng cáo, đồng thời mọi dữ liệu đều được mã hoá trong quá trình chuyển dữ liệu. Thông tin cá nhân của người dùng không bao giờ được thu thập, trừ phi ứng dụng của bạn gửi truy vấn cho người dùng.

Dữ liệu Dữ liệu này được thu thập cho các mục đích sau...
Địa chỉ IP Tóm tắt:
  • Chống lừa đảo, bảo mật và tuân thủ quy định
  • Quảng cáo hoặc tiếp thị
  • Suy ra vị trí ước chừng
Chi tiết:
Địa chỉ IP được dùng để theo dõi hành vi gian lận và sai trái, cũng như để lấy thông tin vị trí ước chừng của người dùng.

Vị trí ước chừng sau đó sẽ được dùng để đảm bảo quảng cáo được phân phát có thể tuân thủ các quy định của địa phương và để cung cấp quảng cáo liên quan đến vị trí địa lý tương đối của người dùng.

Hoạt động trong ứng dụng
  • Lượt xem trang và lượt nhấn trong ứng dụng
  • Nhật ký tìm kiếm trong ứng dụng
Tóm tắt:
  • Số liệu phân tích
  • Chống lừa đảo, bảo mật và tuân thủ quy định
  • Quảng cáo hoặc tiếp thị
  • Cá nhân hoá
Chi tiết:
Ứng dụng của bạn cung cấp cho chúng tôi cụm từ tìm kiếm của người dùng để chúng tôi có thể trả về quảng cáo Tìm kiếm có liên quan đến từ khoá đó. Chúng tôi đo lường lượt xem và mức độ tương tác (lượt nhấp) với quảng cáo được trả về.
Chẩn đoán Tóm tắt:
  • Số liệu phân tích
Chi tiết:
SDK đo lường độ trễ hiển thị của quảng cáo để có thể triển khai và đo lường các điểm cải tiến về sản phẩm. Chúng tôi cũng gửi báo cáo sự cố/lỗi và đôi khi bổ sung thêm công cụ đo lường khác nếu cần để hiểu cách nhà xuất bản sử dụng chức năng.
Mã nhận dạng thiết bị hoặc mã nhận dạng khác Tóm tắt:
  • Chống lừa đảo, bảo mật và tuân thủ quy định
  • Quảng cáo hoặc tiếp thị
Chi tiết:
Mã thiết bị được dùng để giúp theo dõi hành vi gian lận và lạm dụng, cũng như đo lường hiệu suất quảng cáo.