שימוש ב-WebView API for Ads

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

  1. ייצור הכנסות (מונטיזציה) על ידי שליחת בקשות להצגת מודעות באמצעות Google Mobile Ads Flutter Plugin

    כדי לייצר הכנסות מהאפליקציה, אתם יכולים לשלוח בקשות להצגת מודעות ל-Ad Manager באמצעות Google Mobile Ads Flutter Plugin על ידי הטמעה של פורמטים של מודעות לאפליקציות לנייד.

    מידע נוסף

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

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

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

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

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

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

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

מעקף של בדיקת מזהה האפליקציה

Android

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

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

iOS

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

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

רישום של WebViewController

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

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

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

  3. רושמים את המכונה של WebViewController באמצעות קריאה ל-method‏ registerWebView() שסופקה על ידי Google Mobile Ads Flutter Plugin.

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://google.github.io/webview-ads/test/ כדי לבדוק את השילוב לפני שמשתמשים בכתובת 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://google.github.io/webview-ads/test/'));
  }

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

  • ‫WebView מחובר אל Google Mobile Ads Flutter Plugin
  • ‫JavaScript מופעל
  • קובצי Cookie של צד שלישי פועלים (לא צפוי במכשירי iOS)
  • קובצי Cookie מהדומיין הנוכחי פועלים

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