विज्ञापन को पहले से लोड करने की सुविधा (ऐल्फ़ा)

प्लैटफ़ॉर्म चुनें: Android नई सुविधा Android iOS Unity

विज्ञापन को पहले से लोड करने की सुविधा, Google Mobile Ads Unity Plugin में Google की मैनेज की जाने वाली विज्ञापन लोड करने की सुविधा है. यह आपकी ओर से विज्ञापन लोड करने और उन्हें कैश मेमोरी में सेव करने की प्रोसेस को मैनेज करती है. विज्ञापन को पहले से लोड करने की सुविधा का इस्तेमाल करने के लिए, आपको विज्ञापन लोड करने के तरीके में बदलाव करना होगा. विज्ञापन को पहले से लोड करने की सुविधा का इस्तेमाल करके परफ़ॉर्मेंस को ऑप्टिमाइज़ करने के लिए, कस्टम कैश मेमोरी में सेव करने की सुविधा बंद करें और इस काम की ज़िम्मेदारी Google Mobile Ads Unity Plugin को सौंपें.

विज्ञापन को पहले से लोड करने की सुविधा, मैन्युअल तरीके से विज्ञापन लोड करने की तुलना में ये फ़ायदे देती है:

  • रेफ़रंस मैनेजमेंट: लोड किए गए विज्ञापनों को सेव करके रखती है, ताकि आपको उन्हें दिखाने के लिए तैयार होने तक रेफ़रंस बनाए न रखने पड़ें.
  • अपने-आप रीलोड होना: कैश मेमोरी से कोई विज्ञापन हटाने पर, नया विज्ञापन अपने-आप लोड हो जाता है.
  • मैनेज किए गए फिर से कोशिश करने के अनुरोध: एक्सपोनेंशियल बैकऑफ़ का इस्तेमाल करके, फ़ेल हुए अनुरोधों को अपने-आप फिर से भेजती है.
  • समयसीमा खत्म होने से पहले रीफ़्रेश करना: विज्ञापन की समयसीमा खत्म होने से पहले (आम तौर पर, एक घंटे बाद) उन्हें अपने-आप रीफ़्रेश करती है.
  • कैश मेमोरी को ऑप्टिमाइज़ करना: अगर कैश मेमोरी का साइज़ एक से ज़्यादा है, तो Google Mobile Ads Unity Plugin सबसे अच्छा विज्ञापन दिखाने के लिए कैश मेमोरी के क्रम को ऑप्टिमाइज़ करता है.

इस गाइड में, विज्ञापनों को पहले से लोड करने की सुविधा को कॉन्फ़िगर करने, पहले से लोड किए गए विज्ञापनों की उपलब्धता की जांच करने, और पहले से लोड किए गए विज्ञापन दिखाने के बारे में बताया गया है.

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

ट्यूटोरियल के साथ आगे बढ़ने से पहले, आपको ये काम करने होंगे:

विज्ञापनों को पहले से लोड करना शुरू करना

विज्ञापनों को पहले से लोड करने के लिए, Preload() को कॉल करें. इस तरीके को, हर प्रीलोड आईडी के लिए सिर्फ़ एक बार कॉल करें. हमारा सुझाव है कि ऐप्लिकेशन का सेशन शुरू होने पर, इस तरीके को कॉल करें. Preload() को कॉल करने के बाद, Google Mobile Ads Unity Plugin विज्ञापनों को अपने-आप पहले से लोड करता है. साथ ही, उन प्रीलोड आईडी के लिए फ़ेल हुए अनुरोधों को फिर से भेजता है.

यहां दिए गए उदाहरण में, विज्ञापनों को पहले से लोड करने की प्रोसेस शुरू की गई है:

var preloadConfiguration = new PreloadConfiguration
{
    AdUnitId = AD_UNIT_ID,
    Request = new AdRequest(),
};

// Start the preloading initialization process after MobileAds.Initialize().
InterstitialAdPreloader.Preload(
    // The Preload ID can be any unique string to identify this configuration.
    AD_UNIT_ID,
    preloadConfiguration);

पहले से लोड किए गए विज्ञापन को पाना और दिखाना

विज्ञापन को पहले से लोड करने की सुविधा का इस्तेमाल करने पर, Google Mobile Ads Unity Plugin कैश मेमोरी में सेव किए गए विज्ञापनों को सेव करके रखता है. जब आपको कोई विज्ञापन दिखाना हो, तो DequeueAd() को कॉल करें. Google Mobile Ads Unity Plugin उपलब्ध विज्ञापन को वापस लाता है और बैकग्राउंड में अगले विज्ञापन को अपने-आप पहले से लोड कर लेता है.

यहां दिए गए उदाहरण में, पहले से लोड किए गए विज्ञापन को वापस लाया गया है और दिखाया गया है:

// DequeueAd returns the next available ad and loads another ad in the background.
var ad = InterstitialAdPreloader.DequeueAd(AD_UNIT_ID);

if (ad != null)
{
    // [Optional] Interact with the ad object as needed.
    ad.OnAdPaid += (AdValue value) =>
    {
        Debug.Log($"Ad paid: {value.CurrencyCode} {value.Value}");
        // [Optional] Send the impression-level ad revenue information to your preferred
        // analytics server directly within this callback.
    };

    // Do not hold onto preloaded ads, always show a preloaded ad immediately.
    ad.Show();
}

पहले से लोड किए गए विज्ञापन की उपलब्धता की जांच करना

विज्ञापन की उपलब्धता की जांच करने के लिए, इनमें से कोई एक विकल्प चुनें:

पहले से लोड किए गए विज्ञापन की उपलब्धता की जानकारी पाना

यहां दिए गए उदाहरण में, विज्ञापन की उपलब्धता की जांच की गई है:

var isAdAvailable = InterstitialAdPreloader.IsAdAvailable(AD_UNIT_ID);

पहले से लोड किए गए विज्ञापन की उपलब्धता की जानकारी सुनना

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

पहले से लोड करने की सुविधा के इवेंट, आंकड़ों के मकसद से होते हैं. पहले से लोड करने की सुविधा के इवेंट कॉल बैक में:

  • Preload() को कॉल न करें.
  • DequeueAd() को तब तक कॉल न करें, जब तक विज्ञापन तुरंत न दिखाया जाए.

यहां दिए गए उदाहरण में, विज्ञापन इवेंट के लिए रजिस्टर किया गया है:


void StartPreloadWithCallbacks()
{
    var preloadConfiguration = new PreloadConfiguration
    {
        AdUnitId = AD_UNIT_ID,
        Request = new AdRequest(),
    };

    // Start the preloading initialization process after MobileAds.Initialize().
    InterstitialAdPreloader.Preload(
        // The Preload ID can be any unique string to identify this configuration.
        AD_UNIT_ID,
        preloadConfiguration,
        onAdPreloaded,
        onAdFailedToPreload,
        onAdsExhausted);
}

void onAdPreloaded(string preloadId, ResponseInfo responseInfo)
{
    Debug.Log($"Preload ad configuration {preloadId} was preloaded.");
}

void onAdFailedToPreload(string preloadId, AdError adError)
{
    string errorMessage = $"Preload ad configuration {preloadId} failed to " +
                          $"preload with error : {adError.GetMessage()}.";
    Debug.Log(errorMessage);
}

void onAdsExhausted(string preloadId)
{
    Debug.Log($"Preload ad configuration {preloadId} was exhausted");
    // [Important] Don't call Preload() or DequeueAd() from onAdsExhausted.
}

विज्ञापनों को पहले से लोड करना बंद करना

अगर आपको सेशन में किसी प्रीलोड आईडी के लिए विज्ञापन फिर से नहीं दिखाने हैं, तो विज्ञापनों को पहले से लोड करना बंद किया जा सकता है. किसी खास प्रीलोड आईडी के लिए विज्ञापनों को पहले से लोड करना बंद करने के लिए, प्रीलोड आईडी के साथ Destroy() को कॉल करें. सभी प्रीलोडर के लिए विज्ञापनों को पहले से लोड करना बंद करने के लिए, DestroyAll() को कॉल करें.

InterstitialAdPreloader.Destroy(AD_UNIT_ID);
InterstitialAdPreloader.DestroyAll();

बफ़र का साइज़ सेट करना

बफ़र का साइज़, मेमोरी में पहले से लोड किए गए विज्ञापनों की संख्या को कंट्रोल करता है. डिफ़ॉल्ट रूप से, Google, मेमोरी की खपत और विज्ञापन दिखाने में लगने वाले समय के बीच बैलेंस बनाए रखने के लिए, बफ़र के साइज़ को ऑप्टिमाइज़ करता है. अगर आपका ऐप्लिकेशन, अगले विज्ञापन के लोड होने से पहले विज्ञापन दिखाता है, तो मेमोरी में सेव किए गए विज्ञापनों की संख्या बढ़ाने के लिए, कस्टम बफ़र साइज़ सेट किया जा सकता है. हमारा सुझाव है कि बफ़र का साइज़ दो या तीन रखें.

पहले से लोड करने की सुविधा की कैश मेमोरी की सीमाएं

Google Mobile Ads Unity Plugin सभी विज्ञापन यूनिट और प्रीलोड आईडी के लिए, पहले से लोड किए गए विज्ञापनों की कुल संख्या पर, ऐप्लिकेशन के लिए एक सीमा लागू करता है:

  • डिफ़ॉल्ट सीमा: Google Mobile Ads Unity Plugin मेमोरी में ज़्यादा से ज़्यादा छह विज्ञापन पहले से लोड करके रखता है. यह सीमा, सभी फ़ॉर्मैट और प्रीलोड आईडी के लिए एक जैसी होती है.
  • हमारा सुझाव है कि हर प्रीलोड आईडी के लिए, बफ़र का साइज़ दो या तीन रखें.
new PreloadConfiguration
{
    AdUnitId = AD_UNIT_ID,
    Request = new AdRequest(),
    BufferSize = 5
};