Integracja interfejsu WebView API for Ads

Wybierz platformę: Android Nowy Android iOS

Dzięki interfejsowi WebView API for Ads tagi w komponencie WebView mogą korzystać z sygnałów z aplikacji. Pomaga to zwiększać zarobki wydawców, którzy udostępniają treści, i chronić reklamodawców przed spamem.

Jak to działa

Komunikacja z pakietem Google Mobile Ads SDK odbywa się tylko w odpowiedzi na zdarzenia reklamowe wywoływane przez:Google Mobile Ads SDK

Pakiet SDK dodaje moduły obsługi wiadomości do zarejestrowanego komponentu WebView, aby nasłuchiwać tych zdarzeń reklamowych. Aby lepiej zrozumieć, jak to działa, wyświetl kod źródłowy strony testowej.

Wymagania wstępne

  • Google Mobile Ads SDK wersji 20.6.0 lub nowszej.
  • Android API w wersji 21 lub nowszej.

  • Aby pominąć sprawdzanie APPLICATION_ID, dodaj ten tag <meta-data> w pliku AndroidManifest.xml. Jeśli pominiesz ten krok i nie podasz tagu <meta-data>, Google Mobile Ads SDK zgłosi wyjątek IllegalStateException podczas uruchamiania aplikacji.

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

Rejestrowanie komponentu WebView

Aby nawiązać połączenie z modułami obsługi JavaScript w kodzie AdSense lub tagu wydawcy Google w każdej instancji WebView, wywołaj metodę registerWebView() w wątku głównym. Należy to zrobić jak najwcześniej, np. w metodzie onCreate() klasy 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);
  }
}

Testowanie integracji

Zanim zaczniesz używać własnego adresu URL, zalecamy wczytanie tego adresu URL, aby przetestować integrację:

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

Jeśli spełnione są te warunki, testowy adres URL wyświetla zielone paski stanu, co oznacza, że integracja się powiodła:

  • WebView połączony z Google Mobile Ads SDK.

Dalsze kroki

  • Uzyskiwanie zgody w komponencie WebView. Interfejs WebView API for Ads nie przekazuje zgody uzyskanej w kontekście aplikacji mobilnej za pomocą platform IAB TCF w wersji 2.3 lub IAB CCPA do tagów w widokach internetowych. Jeśli chcesz wdrożyć jeden proces uzyskiwania zgody jako właściciel zarówno komponentu WebView, jak i odpowiadającej mu treści internetowej, na której zarabiasz, współpracuj z platformą do zarządzania zgodą użytkowników, aby uzyskać zgodę w kontekście WebView.