Tích hợp WebView API for Ads (API WebView cho quảng cáo)

API WebView cho quảng cáo cung cấp tín hiệu ứng dụng cho các thẻ trong WebView của bạn, giúp cải thiện khả năng kiếm tiền cho những nhà xuất bản đã cung cấp nội dung và bảo vệ nhà quảng cáo khỏi nội dung không thích hợp. Những tín hiệu ứng dụng này (chẳng hạn như mã ứng dụng và phiên bản ứng dụng) giúp kích hoạt tính năng Báo cáoNhắm mục tiêu trong các trường hợp sử dụng khoảng không quảng cáo của trình duyệt trong ứng dụng . Nếu không, các trường hợp này chỉ có trên lưu lượng truy cập ứng dụng.

Cách hoạt động

Việc giao tiếp với Google Mobile Ads SDK chỉ diễn ra khi phản hồi các sự kiện quảng cáo do một trong những yếu tố sau kích hoạt:

SDK này thêm trình xử lý thông báo vào WebView đã đăng ký để theo dõi các sự kiện quảng cáo này. Để hiểu rõ hơn về cách hoạt động của tính năng này, hãy xem mã nguồn của trang thử nghiệm.

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

  • Google Mobile Ads SDK phiên bản 20.6.0 trở lên.
  • Cấp độ API Android 21 trở lên.

  • Thêm thẻ <meta-data> sau vào tệp AndroidManifest.xml để bỏ qua việc kiểm tra APPLICATION_ID. Nếu bạn bỏ qua bước này và không cung cấp thẻ <meta-data>, thì Google Mobile Ads SDK sẽ gửi một IllegalStateException khi khởi động ứng dụng.

    <!-- Bypass APPLICATION_ID check for web view APIs for ads -->
     <meta-data
         android:name="com.google.android.gms.ads.INTEGRATION_MANAGER"
         android:value="webview"/>
    

Đăng ký WebView

Gọi registerWebView() trên luồng chính để thiết lập kết nối với các trình xử lý JavaScript trong mã AdSense hoặc Thẻ nhà xuất bản của Google trong mỗi thực thể WebView. Bạn nên thực hiện việc này càng sớm càng tốt, chẳng hạn như trong onCreate() phương thức của MainActivity.

Kotlin

import android.webkit.CookieManager
import android.webkit.WebView
import com.google.android.gms.ads.MobileAds

class MainActivity : AppCompatActivity() {
  lateinit var webView: WebView

  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    webView = findViewById(R.id.webview)

    // Let the web view accept third-party cookies.
    CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true)
    // Let the web view use JavaScript.
    webView.settings.javaScriptEnabled = true
    // Let the web view access local storage.
    webView.settings.domStorageEnabled = true
    // Let HTML videos play automatically.
    webView.settings.mediaPlaybackRequiresUserGesture = false

    // Register the web view.
    MobileAds.registerWebView(webView)
  }
}

Java

import android.webkit.CookieManager;
import android.webkit.WebView;
import com.google.android.gms.ads.MobileAds;

public class MainActivity extends AppCompatActivity {
  private WebView webView;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    webView = findViewById(R.id.webview);

    // Let the web view accept third-party cookies.
    CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true);
    // Let the web view use JavaScript.
    webView.getSettings().setJavaScriptEnabled(true);
    // Let the web view access local storage.
    webView.getSettings().setDomStorageEnabled(true);
    // Let HTML videos play automatically.
    webView.getSettings().setMediaPlaybackRequiresUserGesture(false);

    // Register the web view.
    MobileAds.registerWebView(webView);
  }
}

Kiểm tra quá trình tích hợp

Trước khi sử dụng URL của riêng mình, bạn nên tải URL sau để kiểm tra quá trình tích hợp:

https://google.github.io/webview-ads/test/#api-for-ads-tests

URL thử nghiệm hiển thị các thanh trạng thái màu xanh lục cho quá trình tích hợp thành công nếu đáp ứng các điều kiện sau:

  • WebView đã kết nối với Google Mobile Ads SDK

Các bước tiếp theo