Android के लिए AdServices कॉन्फ़िगर करें

एपीआई से जुड़ी खास अनुमतियों का एलान करने और कॉन्फ़िगर करने के लिए, नीचे दिए गए निर्देशों का पालन करें टारगेट किए गए एपीआई से मैनेज किए जाने वाले संसाधनों के लिए SDK टूल का ऐक्सेस.

AdServices एपीआई से जुड़ी खास अनुमतियों का एलान करना

हर PPAPI को ऐक्सेस करने के लिए, आपके पास Ad Services normal की अनुमति होनी चाहिए. अपने मेनिफ़ेस्ट, एपीआई के मुताबिक ऐक्सेस की सही अनुमतियों का एलान करें जो आपके ऐप्लिकेशन या SDK टूल में ज़रूरी हैं.

Attribution Reporting API:

<uses-permission android:name="android.permission.ACCESS_ADSERVICES_ATTRIBUTION" />

Attribution Reporting API (डीबग रिपोर्ट के साथ):

<uses-permission android:name="android.permission.ACCESS_ADSERVICES_ATTRIBUTION" />
<uses-permission android:name="android.permission.ACCESS_ADSERVICES_AD_ID" />

Protected Audience / कस्टम ऑडियंस एपीआई:

<uses-permission android:name="android.permission.ACCESS_ADSERVICES_CUSTOM_AUDIENCE" />

Topics API:

<uses-permission android:name="android.permission.ACCESS_ADSERVICES_TOPICS" />

इसके अलावा, एट्रिब्यूशन रिपोर्टिंग की मदद से डीबग रिपोर्ट पाने के लिए एपीआई के लिए, AD_ID अनुमति शामिल करें:

<uses-permission android:name="android.permission.ACCESS_ADSERVICES_AD_ID" />

अगर आपका प्रोजेक्ट, मॉड्यूल या SDK टूल पर निर्भर है, तो हो सकता है कि वे पहले ही एलान कर दें की मेनिफ़ेस्ट फ़ाइलों में ज़रूरी अनुमतियां होनी चाहिए. डिफ़ॉल्ट रूप से, Gradle बिल्ड सभी मेनिफ़ेस्ट फ़ाइलों को ऐसी एक मेनिफ़ेस्ट फ़ाइल में मर्ज कर देता है जिसे आपके ऐप्लिकेशन में शामिल कर दिया जाता है. मर्ज किए गए मेनिफ़ेस्ट व्यू का इस्तेमाल करके पुष्टि करें कि सही अनुमतियों का इस्तेमाल किया जाता है.

अगर आपको किसी भी अनुमति को अपने ऐप्लिकेशन में मर्ज होने से रोकना है SDK टूल जैसी डिपेंडेंसी के ज़रिए, इसके लिए remove नोड मार्कर को शामिल करें करने की ज़रूरत नहीं है. नीचे दिए गए उदाहरण में, Topics की अनुमति को मर्ज करना.

<uses-permission android:name="android.permission.ACCESS_ADSERVICES_TOPICS"
    tools:node="remove" />

एपीआई से जुड़ी विज्ञापन सेवाएं कॉन्फ़िगर करें

PPAPI ऐक्सेस अनुमतियों की तरह ही, हर एपीआई की एंट्री विज्ञापन सेवाओं का कॉन्फ़िगरेशन. यह कॉन्फ़िगरेशन आपको आपके ऐप्लिकेशन में एपीआई की मदद से मैनेज किए जाने वाले संसाधनों का बेहतर कंट्रोल या एम्बेड किया गया SDK टूल.

अपने मेनिफ़ेस्ट में, दिखाए गए तरीके से adservicesConfig प्रॉपर्टी तय करें नीचे दिए गए उदाहरण:

<application ...>
      ...
    <property android:name="android.adservices.AD_SERVICES_CONFIG"
        android:resource="@xml/ad_services_config" />

      ...
</application>

मेनिफ़ेस्ट में बताए गए विज्ञापन सेवाओं के एक्सएमएल संसाधन के बारे में बताएं, जैसे res/xml/ad_services_config.xml. निजता बनाए रखने वाले हर एपीआई के लिए, जो इन एपीआई पर लागू होते हैं अपने ऐप्लिकेशन (या एम्बेड किया गया SDK टूल) का इस्तेमाल करने के लिए, allowAllToAccess एट्रिब्यूट को true पर सेट करें किसी भी कॉलर को ऐक्सेस दें.

इसके अलावा, अनुमति देने के लिए allowAdPartnersToAccess एट्रिब्यूट का इस्तेमाल किया जा सकता है हर विज्ञापन टेक्नोलॉजी के लिए, बेहतर एपीआई ऐक्सेस. आपको इसकी सूची देनी होगी रजिस्ट्रेशन के ज़रिए मिले, डेवलपर रजिस्ट्रेशन खाते के आईडी. अगर allowAllToAccess एट्रिब्यूट को true पर सेट किया गया है. इस एट्रिब्यूट को प्राथमिकता दी जाती है allowAdPartnersToAccess में तय किए गए किसी भी रजिस्ट्रेशन खाता आईडी से ज़्यादा एट्रिब्यूट की वैल्यू सबमिट करें.

विज्ञापन टेक्नोलॉजी से जुड़े प्लैटफ़ॉर्म को यह भी पक्का करना चाहिए कि उनके ऐप्लिकेशन क्लाइंट विज्ञापन सेवाओं के कॉन्फ़िगरेशन में, निजता बनाए रखने वाले ज़रूरी एपीआई का ऐक्सेस.

इस उदाहरण में, किसी भी रजिस्ट्रेशन को अनुमति देने के लिए, ब्रॉड ऐक्सेस तय करने का तरीका बताया गया है निजता बनाए रखने वाले सभी एपीआई के लिए खाता आईडी का ऐक्सेस:

<ad-services-config>
   <!-- Attribution API -->
   <attribution allowAllToAccess="true" />

   <!-- Topics API -->
   <topics allowAllToAccess="true" />

   <!-- Protected Audience on Android API -->
   <custom-audiences allowAllToAccess="true" />
</ad-services-config>

नीचे दिए गए उदाहरण में, हर एक फ़ाइल के लिए सटीक ऐक्सेस तय करने का तरीका बताया गया है रजिस्ट्रेशन से जुड़े कुछ खाता आईडी के लिए, निजता बनाए रखने वाला एपीआई:

<ad-services-config>
    <!-- Attribution API -->
    <attribution allowAdPartnersToAccess="ENROLLMENT-ID" allowAllToAccess="false" />

    <!-- Topics API -->
    <includes-sdk-library name="ENROLLMENT-ID" />
    <topics allowAdPartnersToAccess="ENROLLMENT-ID" allowAllToAccess="false" />

    <!-- Protected Audience on Android API -->
    <custom-audiences allowAdPartnersToAccess="ENROLLMENT-ID" allowAllToAccess="false" />
</ad-services-config>

Jetpack लाइब्रेरी डिपेंडेंसी का एलान करें

इंटिग्रेट करने के लिए, ads-adservices Jetpack लाइब्रेरी 1.0.0-beta01 या इसके बाद के वर्शन का इस्तेमाल करें निजता बनाए रखने वाले एपीआई के साथ काम करता है. इस लाइब्रेरी का इस्तेमाल इन कामों के लिए किया जा सकता है अपने ऐप्लिकेशन को प्लैटफ़ॉर्म-लेवल की जानकारी से समझें और इंटिग्रेशन को आसान बनाएं निजता बनाए रखने वाले एपीआई.

  1. अपने प्रोजेक्ट में Maven रिपॉज़िटरी जोड़ें.
  2. ads-adservices Jetpack लाइब्रेरी डिपेंडेंसी के बारे में बताएं build.gradle फ़ाइल अपलोड की जा सकती है.
  3. androidx.privacysandbox.ads.adservices.* पैकेज के एपीआई इस्तेमाल करें.
  4. Ads-Adservices Jetpack लाइब्रेरी में पहले से मौजूद Kotlin कोरूटीन उपलब्ध है सहायता. आपको लाइफ़साइकल के बारे में सही जानकारी देने वाली सही जानकारी शामिल करनी पड़ सकती है डिपेंडेंसी जो आपके प्रोजेक्ट के लिए सही है, ताकि कोरूटीन स्कोप मैनेज किया जा सके.

विज्ञापन सेवाओं के एक्सटेंशन वर्शन की उपलब्धता देखना

अगर विज्ञापनों को मैनेज करने वाली Jetpack लाइब्रेरी का इस्तेमाल किया जा रहा है, तो निजता बनाए रखने वाले एपीआई के साथ-साथ लाइब्रेरी यह जांच करती है कि obtain() फ़ंक्शन में एपीआई का अनुरोध किया गया है. फ़ंक्शन शून्य दिखाता है, अगर इस डिवाइस पर एपीआई का अनुरोध नहीं किया जा सकता. यह उदाहरण दिखाता है Topics API के लिए TopicsManager शुरू करने का तरीका. यह इसके लिए इसी तरह काम करता है: निजता बनाए रखने वाले अन्य एपीआई ऐक्सेस करना.

Kotlin

import androidx.privacysandbox.ads.adservices.topics.TopicsManager

// The initialization function will return null if the requested
// functionality is not available on the device.
val topicsManager = TopicsManager.obtain(context)

Java

import androidx.privacysandbox.ads.adservices.topics.TopicsManager;

// The initialization function will return null if the requested
// functionality is not available on the device.
TopicsManager topicsManager = TopicsManager.obtain(context);

अगर एक्सटेंशन SDK टूल में सीधे तौर पर AdServices एपीआई का इस्तेमाल किया जा रहा है, तो AdServices एक्सटेंशन का वर्शन, जिसमें ऐसे AdServices एपीआई शामिल हैं जिनका आपको इस्तेमाल करना है. एपीआई के रेफ़रंस में, किसी खास AdServices वर्शन के बारे में बताया जा सकता है में एपीआई की सुविधा शुरू की गई है. उदाहरण के लिए, TopicsManager क्लास के लिए एपीआई रेफ़रंस इससे पता चलता है कि यह "Ad Services एक्सटेंशन 4 में जोड़ा गया" है. इनका इस्तेमाल करें शर्तों के साथ जांच, ताकि AdServices एपीआई वाले SDK एक्सटेंशन की पुष्टि की जा सके.

Kotlin

import android.os.ext.SdkExtensions

if (SDK_INT >= Build.VERSION_CODES.R && // The extensions API is available since R.
   SdkExtensions.getExtensionVersion(SdkExtensions.AD_SERVICES) >= 4) {

    // AdServices API is available.
...
}

Java

import android.os.ext.SdkExtensions;

if (SDK_INT >= Build.VERSION_CODES.R && // The extensions API is available since R.
   SdkExtensions.getExtensionVersion(SdkExtensions.AD_SERVICES) >= 4) {

    // AdServices API is available.
...
}

फ़ोरग्राउंड ऐक्सेस की सीमा

पारदर्शिता बनाए रखने के लिए, SDK टूल के रनटाइम और निजता बनाए रखने वाले एपीआई का ऐक्सेस दें उन ऐप्लिकेशन तक सीमित है जिनमें गतिविधि दिखती है या IMPORTANCE_FOREGROUND में से RunningAppProcessInfo.