विज्ञापनों के लिए WebView API का इस्तेमाल करना

WebView API for Ads की मदद से, ऐप्लिकेशन में विज्ञापन दिखाकर कमाई की जा सकती है WebViewController. अगर आपके ऐप्लिकेशन में ऐसा वेब कॉन्टेंट दिखाया जाता है जिसमें AdSense कोड या Google Publisher Tag की मदद से विज्ञापन दिखाए जाते हैं, तो आपको विज्ञापन दिखाने की सुविधा चालू करने के लिए, इस एपीआई का इस्तेमाल करना चाहिए.WebViewController ज़्यादा जानने के लिए, AdSense और Ad Manager की नीतियां देखें.

  1. Google Mobile Ads Flutter Plugin की मदद से, विज्ञापन अनुरोध करके कमाई करना

    मोबाइल ऐप्लिकेशन के लिए विज्ञापन फ़ॉर्मैट लागू करके, Ad Manager को विज्ञापन अनुरोध भेजकर, अपने ऐप्लिकेशन से कमाई की जा सकती है.Google Mobile Ads Flutter Plugin

    ज़्यादा जानें.

  2. WebView API for Ads का इस्तेमाल करके कमाई करना

    AdSense AdSense कोड या Google Publisher Tag में मौजूद JavaScript, विज्ञापन अनुरोध बनाती है और उन्हें भेजती है. इसलिए, आपको SDK की मदद से कोई विज्ञापन अनुरोध भेजने की ज़रूरत नहीं होती. ध्यान रखें कि इस एपीआई का इस्तेमाल करके, सिर्फ़ मोबाइल वेब और डेस्कटॉप वेब इन्वेंट्री फ़ॉर्मैट उपलब्ध कराए जा सकते हैं.

    अगर आपके पास WebViewController में मौजूद वेब कॉन्टेंट का मालिकाना हक नहीं है, तब भी हमारा सुझाव है कि आप इस एपीआई का इस्तेमाल करें. इससे, विज्ञापन देने वाले लोगों या कंपनियों को स्पैम से बचाया जा सकता है और कॉन्टेंट उपलब्ध कराने वाले वेब पब्लिशरों को ज़्यादा कमाई करने में मदद मिलती है.

ध्यान दें कि एक ही ऐप्लिकेशन में, इनमें से कोई एक या दोनों विकल्प इस्तेमाल किए जा सकते हैं.

इस गाइड का मकसद, iOS ऐप्लिकेशन में WebView API for Ads को इंटिग्रेट करने में आपकी मदद करना है.

शुरू करने से पहले

WebView API for Ads का इस्तेमाल शुरू करने से पहले, पक्का करें कि आपने ये काम पूरे कर लिए हों:

ऐप्लिकेशन आइडेंटिफ़ायर की जांच करने की सुविधा को बायपास करना

Android

APPLICATION_ID की जांच करने की सुविधा को बायपास करने के लिए, अपनी AndroidManifest.xml फ़ाइल में, यह <meta-data> टैग जोड़ें. अगर आपने यह चरण पूरा नहीं किया, तो हो सकता है कि ऐप्लिकेशन शुरू होने पर, 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 को रजिस्टर करना

AdSense कोड या Google Publisher Tag का इस्तेमाल करने वाले WebViewController में, ऐप्लिकेशन में विज्ञापन दिखाने की सुविधा से ज़्यादा कमाई करने के लिए, यहां दिया गया तरीका अपनाएं:

  1. WebViewController में JavaScript चालू करें. ऐसा न करने पर, हो सकता है कि विज्ञापन लोड न हों.

  2. अपने उपयोगकर्ताओं को विज्ञापन का बेहतर अनुभव देने और Chrome की कुकी नीति के मुताबिक काम करने के लिए, अपने AndroidWebViewController इंस्टेंस पर तीसरे पक्ष की कुकी चालू करें.

  3. WebViewController इंस्टेंस रजिस्टर करें. इसके लिए, Google Mobile Ads Flutter Plugin की ओर से उपलब्ध कराए गए registerWebView() तरीके को कॉल करें.

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);
  }
}

यूआरएल लोड करना

अब WebViewController के ज़रिए, कोई यूआरएल लोड किया जा सकता है और अपना वेब कॉन्टेंट दिखाया जा सकता है. हमारा सुझाव है कि अपना यूआरएल इस्तेमाल करने से पहले, इंटिग्रेशन की जांच करने के लिए, यह टेस्ट यूआरएल लोड करें: https://google.github.io/webview-ads/test/. अगर 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/'));
  }

अगर ये शर्तें पूरी होती हैं, तो टेस्ट यूआरएल पर, इंटिग्रेशन के सफल होने पर हरे रंग के स्टेटस बार दिखते हैं:

  • WebView से कनेक्ट हो Google Mobile Ads Flutter Plugin
  • JavaScript चालू हो
  • तीसरे पक्ष की कुकी काम करती हों (iOS डिवाइसों पर ऐसा होने की उम्मीद नहीं है)
  • पहले-पक्ष की कुकी काम करती हों

हमारे टेस्ट यूआरएल का सोर्स कोड देखें. इसके बाद, टेस्ट यूआरएल को अपने यूआरएल से बदला जा सकता है. Charles