משלבים את WebView API for Ads

WebView API for Ads מאפשר לייצר הכנסות ממודעות באפליקציה באמצעות WebViewController. אם אתם מציגים תוכן אינטרנט שמטמיע מודעות באמצעות קוד AdSense או Google Publisher Tag באפליקציה שלכם דרך WebViewController, עליכם להשתמש ב-API הזה כדי להפעיל מונטיזציה ממודעות. מידע נוסף זמין במדיניות AdMob.

  1. ייצור הכנסות באמצעות שליחת בקשות להצגת מודעות באמצעות Google Mobile Ads SDK

    כדי לייצר הכנסות מהאפליקציה, אפשר לשלוח בקשות להצגת מודעות אל AdMob באמצעות Google Mobile Ads SDK, ולהטמיע פורמטים של מודעות לאפליקציות לנייד.

    מידע נוסף

  2. ייצור הכנסות באמצעות WebView API for Ads

    אם האפליקציה שלכם משתמשת ב-WebViewController כדי להציג תוכן אינטרנט שמוצגות בו מודעות מ-Ad Manager או מ-AdSense, צריך להשתמש ב-WebView API for Ads כדי לרשום אובייקטים מסוג WebViewController ב-Google Mobile Ads SDK. ה-JavaScript בקוד AdSense או בGoogle Publisher Tag יוצר ומעביר בקשות להצגת מודעות, כך שאין צורך לשלוח בקשות להצגת מודעות באמצעות ה-SDK. חשוב לזכור שרק פורמטים של מלאי שטחי פרסום לאינטרנט לנייד ולמחשב זמינים באמצעות ה-API הזה.

    גם אם אתם לא הבעלים של תוכן האינטרנט ב-WebViewController, מומלץ להשתמש ב-API הזה כדי להגן על המפרסמים מפני ספאם ולשפר את המונטיזציה של בעלי תוכן האינטרנט שסיפקו את התוכן.

חשוב לדעת שאפשר לבצע כל אחת מהאפשרויות האלה, או אפילו את שתיהן, באותה אפליקציה.

המדריך הזה נועד לעזור לכם לשלב את WebView API for Ads באפליקציה ל-iOS.

לפני שמתחילים

לפני שמתחילים להשתמש ב-WebView API for Ads, חשוב לבצע את הפעולות הבאות:

דילוג על הבדיקה של מזהה האפליקציה

AndroidiOS

מוסיפים את התג <meta-data> הבא לקובץ AndroidManifest.xml כדי לעקוף את הבדיקה של APPLICATION_ID. אם תפספסו את השלב הזה, יכול להיות ש-Google Mobile Ads SDK תגרום לשגיאה מסוג IllegalStateException בזמן הפעלת האפליקציה.

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

כדי לעקוף את הבדיקה של GADApplicationIdentifier, מעדכנים את הקובץ Runner/Info.plist במפתח ובערך המחרוזת שבהמשך. אם תדלגו על השלב הזה, יכול להיות ש-Google Mobile Ads SDK יפיק שגיאה מסוג GADInvalidInitializationException בזמן הפעלת האפליקציה.

<!-- Bypass GADApplicationIdentifier check for WebView API for Ads -->
<key>GADIntegrationManager</key>
<string>webview</string>

רישום של WebViewController

כדי לשפר את המונטיזציה ממודעות באפליקציה ב-WebViewController שמשתמש בקוד AdSense או בתגי Google Publisher, יש לפעול לפי השלבים הבאים:

  1. מפעילים את JavaScript ב-WebViewController. אם לא תעשו זאת, יכול להיות שהמודעות לא ייטענו.

  2. כדי לשפר את חוויית הצפייה במודעות של המשתמשים ולפעול בהתאם למדיניות בנושא קובצי cookie של Chrome, צריך להפעיל קובצי cookie של צד שלישי במכונה של AndroidWebViewController.

  3. כדי לרשום את המופע של WebViewController, צריך להפעיל את השיטה registerWebView() ש-Google Mobile Ads SDK מספק.

import 'package:google_mobile_ads/google_mobile_ads.dart';
import 'package:webview_flutter/webview_flutter.dart';
import 'package:webview_flutter_android/webview_flutter_android.dart';

@override
class WebViewExampleState extends State<WebViewExample> {
  late final WebViewController controller;

  @override
  void initState() {
    super.initState();

    createWebView();
  }

  void createWebView() async {
    controller = WebViewController();
    // 1. Enable JavaScript in the web view.
    await controller.setJavaScriptMode(JavaScriptMode.unrestricted);

    // 2. Enable third-party cookies for Android.
    if (controller.platform is AndroidWebViewController) {
      AndroidWebViewCookieManager cookieManager = AndroidWebViewCookieManager(
        const PlatformWebViewCookieManagerCreationParams());
      await cookieManager.setAcceptThirdPartyCookies(
        controller.platform as AndroidWebViewController, true);
    }

    // 3. Register the web view.
    await MobileAds.instance.registerWebView(controller);
  }
}

טעינת כתובת ה-URL

עכשיו אפשר לטעון כתובת URL ולהציג את תוכן האינטרנט דרך WebViewController. מומלץ לטעון את כתובת ה-URL הזו לבדיקה: https://webview-api-for-ads-test.glitch.me/ כדי לבדוק את השילוב לפני שמשתמשים בכתובת ה-URL שלכם. אם JavaScript לא מופעל, תוצג שגיאה בדף האינטרנט.

import 'package:google_mobile_ads/google_mobile_ads.dart';
import 'package:webview_flutter/webview_flutter.dart';
import 'package:webview_flutter_android/webview_flutter_android.dart';

@override
class WebViewExampleState extends State<WebViewExample> {
  late final WebViewController controller;

  @override
  void initState() {
    super.initState();

    createWebView();
  }

  void createWebView() async {
    controller = WebViewController();
    // 1. Enable JavaScript in the web view.
    await controller.setJavaScriptMode(JavaScriptMode.unrestricted);

    // 2. Enable third-party cookies for Android.
    if (controller.platform is AndroidWebViewController) {
      AndroidWebViewCookieManager cookieManager = AndroidWebViewCookieManager(
        const PlatformWebViewCookieManagerCreationParams());
      await cookieManager.setAcceptThirdPartyCookies(
        controller.platform as AndroidWebViewController, true);
    }

    // 3. Register the web view.
    await MobileAds.instance.registerWebView(controller);

    // 4. Load the URL.
    await controller.loadRequest(Uri.parse('https://webview-api-for-ads-test.glitch.me/'));
  }

אם מתקיימים התנאים הבאים, בכתובת ה-URL לבדיקה יוצגו פסי סטטוס ירוקים שמציינים שהשילוב בוצע בהצלחה:

  • WebView מחובר ל-Google Mobile Ads SDK
  • JavaScript מופעל
  • קובצי cookie של צד שלישי פועלים (לא צפוי במכשירי iOS)
  • איך פועלים קובצי cookie מהדומיין הנוכחי

קוד המקור של כתובת ה-URL לבדיקה. לאחר מכן תוכלו להחליף את כתובת ה-URL לבדיקה בכתובת ה-URL שלכם. אפשר גם להשתמש בכלי proxy כמו Charles כדי לתעד את תעבורת ה-HTTPS של האפליקציה ולבדוק את בקשות המודעות כדי לאתר את הפרמטר &scar=.