Android के लिए मोबाइल ऐप्लिकेशन (AFSMA) को लागू करना

ज़रूरी शर्तें

इस गाइड में यह माना गया है कि आपको इनकी जानकारी है:

  • AFS कस्टम सर्च विज्ञापन (सीएसए) लागू करने का प्रोटोकॉल
  • Android ऐप्लिकेशन डेवलपमेंट
  • Android के लिए Google Mobile Ads SDK (अब Google Play services का हिस्सा है) को Android Studio प्रोजेक्ट के साथ जोड़ना. Google Play services का वर्शन 9.0.0 होना ज़रूरी है.

क्लास

अपने ऐप्लिकेशन में AFSMA विज्ञापन (जिन्हें डाइनैमिक ऊंचाई वाले सर्च विज्ञापन भी कहा जाता है) दिखाने के लिए, ये क्लास लागू करें:

SearchAdView

  • यह क्लास Android ViewGroup क्लास से इनहेरिट करती है और AFSMA विज्ञापन दिखाती है. SearchAdView, DynamicHeightSearchAdRequest वाले विज्ञापन के लिए अनुरोध करता है और दिखाए गए विज्ञापनों को रेंडर करता है. SearchAdView को ऐप्लिकेशन के किसी भी मौजूदा व्यू ग्रुप में जोड़ा जाना चाहिए.
  • SearchAdView को उस कॉन्टेक्स्ट के साथ इंस्टैंशिएट किया जाना चाहिए जिसमें SearchAdView चल रहा है. आम तौर पर, यह एक Activity होता है.
  • SearchAdView के इंस्टैंशिएट होने के बाद, AFSMA विज्ञापनों का अनुरोध करने के लिए, आपको AdSize.SEARCH के साथ setAdSize() तरीके को कॉल करना होगा. अन्य Enum वैल्यू, मोबाइल ऐप्लिकेशन के लिए AFS के साथ काम न करने वाले विज्ञापनों का अनुरोध करेंगी.
  • अपने प्रॉपर्टी कोड के साथ इस ऑब्जेक्ट पर setAdUnitId() तरीके को कॉल करें.

DynamicHeightSearchAdRequest.Builder

  • यह क्लास, विज्ञापन अनुरोध के पैरामीटर को इकट्ठा करती है. यह AFS डेस्कटॉप और मोबाइल वेब के लिए, JavaScript विज्ञापन के अनुरोध ऑब्जेक्ट (पेज के विकल्प, यूनिट विकल्प) में पैरामीटर सेट करने के जैसा है.
  • सही सेटर के साथ पैरामीटर सेट करें (दूसरे शब्दों में, क्वेरी पैरामीटर सेट करने के लिए setQuery() को कॉल करें).

लागू करने का उदाहरण

इस उदाहरण में, ViewGroup के सबव्यू के तौर पर SearchAdView बनाने के लिए, Activity का इस्तेमाल करने के बारे में बताया गया है. AFSMA विज्ञापनों का सही अनुरोध करने के लिए, SearchAdView ऑब्जेक्ट को AdSize.SEARCH के साथ setAdSize() तरीके को कॉल करना होगा.

//  MainActivity.java implementation
//  (MainActivity is a subclass of Activity)

// Create the SearchAdView
final SearchAdView searchAdView = new SearchAdView(this);

// Set parameter to request for dynamic height search ads
searchAdView.setAdSize(AdSize.SEARCH); // Important!

// Replace with your pub ID (e.g. ms-app-pub-9616389000213823)
searchAdView.setAdUnitId("ms-app-pub-################");

// Add searchAdView to parent view group
...

उसी Activity में, एक DynamicHeightSearchAdRequest.Builder बनाएं, जो SearchAdView में रेंडर किए जाने वाले विज्ञापन के पैरामीटर के बारे में बताता हो. AFSMA विज्ञापनों को AFS कस्टम खोज विज्ञापनों की तरह ही कॉन्फ़िगर किया जाता है; ज़्यादा जानकारी के लिए, AFS कस्टम खोज विज्ञापन रेफ़रंस देखें.

// Create the ad request
DynamicHeightSearchAdRequest.Builder builder =
        new DynamicHeightSearchAdRequest.Builder();
builder.setQuery("flowers");
builder.setNumber(2);

// Replace with the ID of a style from your custom search styles
builder.setAdvancedOptionValue("csa_styleId", "0000000001");

// Customization options (set using setters on
// DynamicHeightSearchAdRequest.Builder)
builder.setAdTest(true);

DynamicHeightSearchAdRequest.Builder ऑब्जेक्ट पर दूसरी प्रॉपर्टी सेट करके, पसंद के मुताबिक बनाए जा सकने वाले अन्य विकल्प देखे जा सकते हैं.

विज्ञापन अनुरोध करने के लिए, SearchAdView ऑब्जेक्ट से DynamicHeightSearchAdRequest.Builder ऑब्जेक्ट के साथ loadAd() तरीके को कॉल करें:

searchAdView.loadAd(builder.build());

बेहतर विकल्प

DynamicHeightSearchAdRequest.Builder ऑब्जेक्ट पर, ज़्यादातर विज्ञापन अनुरोध पैरामीटर सेटर तरीकों से सेट किए जा सकते हैं. जिन पैरामीटर के लिए, DynamicHeightSearchAdRequest.Builder में सेटर तरीका नहीं है उन्हें setAdvancedOptionValue() तरीके की मदद से की-वैल्यू पेयर का इस्तेमाल करके सेट किया जा सकता है. एएफ़एस कस्टम सर्च विज्ञापनों के लिए, रेफ़रंस लेख पढ़ें. इसमें उन सेटिंग की पूरी सूची दी गई है जिन्हें setAdvancedOptionValue() तरीके से सेट किया जा सकता है.

प्रॉपर्टी को सही तरीके से सेट करने के लिए, कुंजी पैरामीटर से पहले "csa_" जुड़ा होना चाहिए.

// Advanced customization options (set using key-value pair)

// Set a parameter (parameter_name) and its value (parameter_value)
// builder.setAdvancedOptionValue("csa_parameter_name", "parameter_value");

// Example: Show visible URL below description
// (domainLinkAboveDescription: false)
builder.setAdvancedOptionValue("csa_domainLinkAboveDescription", "false");

अगर पैरामीटर के सेटर वाले तरीके का इस्तेमाल किया जाता है और उसे setAdvancedOptionValue का इस्तेमाल करके सेट किया जाता है, तो दूसरा कॉल पहले कॉल की वैल्यू को बदल देगा.

गड़बड़ियों की जांच करना

SearchAdView (searchAdView यहां) में एक setAdListener() तरीका दिया गया है, जो गड़बड़ियों की जांच करने में आपकी मदद करता है. उसी Activity में:

searchAdView.setAdListener(new AdListener() {
    @Override
    public void onAdLoaded() {
        // Called when an ad is loaded
        super.onAdLoaded();
        Toast.makeText(MainActivity.this, "Ad Loaded",
                Toast.LENGTH_SHORT).show();
        Log.d(MainActivity.class.getSimpleName(), "Ad Loaded");
    }

    @Override
    public void onAdOpened() {
        // Called when an ad opens an overlay that covers the screen
        super.onAdOpened();
        Toast.makeText(MainActivity.this, "Ad Opened",
                Toast.LENGTH_SHORT).show();
        Log.d(MainActivity.class.getSimpleName(), "Ad Opened");
    }

    @Override
    public void onAdLeftApplication() {
        // Called when an ad leaves the application
        // (to go to the browser for example)
        super.onAdLeftApplication();
        Toast.makeText(MainActivity.this, "Ad Left Application",
                Toast.LENGTH_SHORT).show();
        Log.d(MainActivity.class.getSimpleName(), "Ad Left Application");
    }

    @Override
    public void onAdFailedToLoad(int errorCode) {
        // Called when an ad request failed
        super.onAdFailedToLoad(errorCode);
        Toast.makeText(MainActivity.this, "Ad Failed to Load: " + errorCode,
                Toast.LENGTH_SHORT).show();
        Log.e(MainActivity.class.getSimpleName(), "Ad Failed to Load: " +
                errorCode);
    }
});

onAdFailedToLoad() कॉलबैक तरीके में इस्तेमाल किए गए कॉन्सटेंट के बारे में एपीआई के रेफ़रंस में बताया गया है.

यह जानें कि Google Play के डेटा के बारे में कौनसी जानकारी देना ज़रूरी है

Google Play ने मई 2021 में, डेटा की सुरक्षा वाले नए सेक्शन का एलान किया था. इस सेक्शन में, डेवलपर यह जानकारी देते हैं कि उनका ऐप्लिकेशन किस डेटा को इकट्ठा करता है, उसे कैसे शेयर किया जाता है, और डेटा की सुरक्षा के लिए क्या तरीके अपनाए जाते हैं.

इस पेज से, AFS नेटिव SDK टूल (AdSense for Shopping के इस्तेमाल पर भी लागू) के इस्तेमाल के बारे में, डेटा की जानकारी ज़ाहिर करने की ज़रूरी शर्तों को पूरा करने में मदद मिल सकती है. इस पेज पर आपको यह जानकारी मिल सकती है कि हमारे SDK टूल, असली उपयोगकर्ता के डेटा का इस्तेमाल करते हैं या नहीं और अगर करते हैं, तो कैसे.

आपकी मदद के लिए हम ज़्यादा से ज़्यादा पारदर्शी होने की कोशिश करते हैं. हालांकि, ऐप्लिकेशन डेवलपर के तौर पर, यह तय करने की पूरी ज़िम्मेदारी आपकी है कि Google Play के डेटा की सुरक्षा वाले सेक्शन के फ़ॉर्म में मांगी गई जानकारी कैसे देनी है. इस फ़ॉर्म में, ऐप्लिकेशन के असली उपयोगकर्ता का डेटा इकट्ठा करने, उसे शेयर करने, और उसकी सुरक्षा के तरीकों के बारे में जानकारी देनी होती है.

इस पेज पर दी गई जानकारी इस्तेमाल करने का तरीका

इस पेज पर, असली उपयोगकर्ता का वह डेटा मौजूद है जो SDK टूल के नए वर्शन से इकट्ठा किया गया है.

डेटा की जानकारी ज़ाहिर करने से जुड़ी प्रोसेस को पूरा करने के लिए, डेटा टाइप के बारे में Android की गाइड का इस्तेमाल किया जा सकता है. इससे आपको यह तय करने में मदद मिलेगी कि कौनसा डेटा टाइप, इकट्ठा किए गए डेटा के बारे में बेहतर तरीके से बताता है. डेटा की जानकारी ज़ाहिर करते समय, यह ज़रूर बताएं कि इकट्ठा किए गए डेटा को आपका खास ऐप्लिकेशन किस तरह शेयर और इस्तेमाल करता है.

डेटा का वह टाइप, जिसे SDK टूल ऐक्सेस और इकट्ठा करता है

पैकेज:

com.google.android.gms:play-services-afs-native

com.google.ads.afsn

अपने-आप इकट्ठा होने वाला डेटा

AFS का SDK टूल, यहां बताया गया डेटा अपने-आप इकट्ठा करता है. विज्ञापन दिखाने के लिए, सारा डेटा डिवाइस से Google को भेजा जाता है. साथ ही, एक जगह से दूसरी जगह भेजने के दौरान सारा डेटा एन्क्रिप्ट (सुरक्षित) किया जाता है. उपयोगकर्ता की निजी जानकारी तब तक इकट्ठा नहीं की जाती, जब तक कि आपके ऐप्लिकेशन से उपयोगकर्ता की क्वेरी में इसे नहीं भेजा जाता.

डेटा यह डेटा इन कामों के लिए इकट्ठा किया जाता है...
आईपी पता खास जानकारी:
  • धोखाधड़ी रोकना, सुरक्षा, और नीतियों का पालन
  • विज्ञापन या मार्केटिंग
  • जगह की अनुमानित जानकारी पाएं
जानकारी:
आईपी पते का इस्तेमाल, धोखाधड़ी और गलत इस्तेमाल पर नज़र रखने के लिए किया जाता है. साथ ही, इसका इस्तेमाल लोगों की जगह की अनुमानित जानकारी का पता लगाने के लिए भी किया जाता है.

इसके बाद, जगह की अनुमानित जानकारी का इस्तेमाल किया जाता है. इससे यह पक्का किया जाता है कि दिखाए जा रहे विज्ञापन, स्थानीय कानूनों के मुताबिक हों. साथ ही, इसका इस्तेमाल किसी उपयोगकर्ता की अनुमानित जगह के हिसाब से काम के विज्ञापन दिखाने के लिए भी किया जाता है.

ऐप्लिकेशन में की गई गतिविधि
  • ऐप्लिकेशन में किए गए टैप और पेज व्यू से जुड़ी जानकारी
  • ऐप्लिकेशन में खोज का इतिहास
खास जानकारी:
  • Analytics
  • धोखाधड़ी रोकना, सुरक्षा, और नीतियों का पालन
  • विज्ञापन या मार्केटिंग
  • मनमुताबिक बनाना
जानकारी:
आपका ऐप्लिकेशन हमें उपयोगकर्ता की क्वेरी देता है, ताकि हम कीवर्ड से जुड़े Search Network में दिखने वाले विज्ञापन दिखा सकें. हम दिखाए जाने वाले विज्ञापनों पर मिले व्यू और उनसे जुड़ने (टैप) को मेज़र करते हैं.
गड़बड़ी की जानकारी खास जानकारी:
  • Analytics
जानकारी:
SDK टूल, विज्ञापनों को रेंडर होने में लगने वाले समय को मापता है, ताकि प्रॉडक्ट को बेहतर बनाया जा सके और उन्हें मेज़र किया जा सके. हम क्रैश/गड़बड़ी की रिपोर्ट भी भेजते हैं और कभी-कभी ज़रूरत के मुताबिक अन्य इंस्ट्रुमेंटेशन भी जोड़ते हैं, ताकि यह समझ सकें कि पब्लिशर अपने फ़ंक्शन का इस्तेमाल किस तरह करते हैं.
डिवाइस या अन्य आइडेंटिफ़ायर खास जानकारी:
  • धोखाधड़ी रोकना, सुरक्षा, और नीतियों का पालन
  • विज्ञापन या मार्केटिंग
जानकारी:
डिवाइस आईडी का इस्तेमाल, धोखाधड़ी और गलत इस्तेमाल पर नज़र रखने के साथ-साथ विज्ञापन की परफ़ॉर्मेंस का आकलन करने के लिए किया जाता है.