पसंद के मुताबिक नेटिव विज्ञापन फ़ॉर्मैट

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

कस्टम नेटिव विज्ञापन फ़ॉर्मैट लोड करना

कस्टम नेटिव विज्ञापन फ़ॉर्मैट, AdLoader ऑब्जेक्ट का इस्तेमाल करके लोड किए जाते हैं. forCustomTemplateAd() तरीके से, AdLoader को कस्टम नेटिव विज्ञापन फ़ॉर्मैट मैनेज करने के लिए कॉन्फ़िगर किया जाता है. हर कस्टम नेटिव विज्ञापन फ़ॉर्मैट से, टेंप्लेट आईडी की वैल्यू जुड़ी होती है. आपको कस्टम नेटिव विज्ञापन फ़ॉर्मैट का टेंप्लेट आईडी देना होगा. यह वह फ़ॉर्मैट होना चाहिए जिसके लिए आपका ऐप्लिकेशन AdLoader से अनुरोध करना चाहता है. Ad Manager के यूज़र इंटरफ़ेस (यूआई) में, उस नेटिव विज्ञापन फ़ॉर्मैट के टेंप्लेट आईडी खोजें जिसके लिए आपको अनुरोध करना है.

void LoadCustomNativeTemplateAd()
{
    AdLoader adLoader = new AdLoader.Builder("/21775744923/example/native")
        .forCustomNativeAd("10063170")
        .Build();
    adLoader.LoadAd(new AdRequest.Builder().Build());
}

एक विज्ञापन यूनिट को एक से ज़्यादा क्रिएटिव टेंप्लेट दिखाने के लिए सेट अप किया जा सकता है. इसलिए, forCustomTemplateAd() को अलग-अलग टेंप्लेट आईडी के साथ कई बार कॉल किया जा सकता है, ताकि एक से ज़्यादा संभावित कस्टम नेटिव विज्ञापन फ़ॉर्मैट के लिए Adloader तैयार किया जा सके. नीचे दिए गए कोड स्निपेट में, कई कस्टम नेटिव विज्ञापन फ़ॉर्मैट टेंप्लेट के लिए AdLoader तैयार करने का तरीका बताया गया है.

void LoadCustomNativeTemplateAd()
{
    AdLoader adLoader = new AdLoader.Builder("/21775744923/example/native")
        .forCustomNativeAd("10063170")
        .forCustomNativeAd("10063171")
        .forCustomNativeAd("10063172")
        .Build();
    adLoader.LoadAd(new AdRequest.Builder().Build());
}

कस्टम नेटिव विज्ञापन फ़ॉर्मैट के विज्ञापन इवेंट

AdLoader क्लास, EventHandler टाइप के विज्ञापन इवेंट उपलब्ध कराती है. इससे आपको कस्टम नेटिव विज्ञापन फ़ॉर्मैट के लाइफ़साइकल के बारे में सूचना मिलती है. नीचे दिए गए उदाहरण में, कस्टम नेटिव विज्ञापन फ़ॉर्मैट के विज्ञापन इवेंट के लिए रजिस्टर करने का तरीका बताया गया है:

adLoader.onCustomNativeTemplateAdLoaded += HandleCustomNativeAdLoaded;
adLoader.OnAdFailedToLoad += HandleCustomNativeAdFailedToLoad;

HandleCustomNativeAdLoaded() तरीके में CustomNativeEventArgs पैरामीटर शामिल है. लोड किए गए कस्टम नेटिव विज्ञापन फ़ॉर्मैट को इस इवेंट पैरामीटर के ज़रिए ऐक्सेस किया जा सकता है. इसे यहां दिखाया गया है:

private boolean adLoaded;
private CustomNativeTemplateAd customNativeTemplateAd;
...
void HandleCustomNativeAdLoaded(object sender, CustomNativeEventArgs args)
{
    customNativeTemplateAd = args.nativeAd;
    adLoaded = true;
}

डिसप्ले कस्टम नेटिव विज्ञापन फ़ॉर्मैट

कस्टम नेटिव विज्ञापन फ़ॉर्मैट, उपयोगकर्ता की ओर से तय की गई इमेज और टेक्स्ट ऐसेट की किसी भी संख्या के लिए सहायता उपलब्ध कराते हैं. इन ऐसेट को CustomNativeTemplateAd क्लास के ज़रिए ऐक्सेस किया जाता है. यह क्लास, GetTexture2D() और GetText() तरीके उपलब्ध कराती है. ये तरीके, टेंप्लेट फ़ील्ड के वैरिएबल आईडी को पैरामीटर के तौर पर लेते हैं.

यहां दिए गए उदाहरण में, CustomNativeTemplateAd से ऐसेट निकालने का तरीका बताया गया है:

public const int NATIVE_AD_TEMPLATE_1 = 10063170;
public const int NATIVE_AD_TEMPLATE_2 = 10063171;

private boolean adLoaded;
private Texture2d mainImageTexture;
private string headline;
private CustomNativeTemplateAd customNativeTemplateAd;
...

void Update()
{
    if(adLoaded)
    {
        mainImageTexture = customNativeTemplateAd.GetTexture2D("MainImage");
        headline = customNativeTemplateAd.GetText("Headline");

        string templateId = customNativeTemplateAd.GetCustomTemplateId();
        if (templateId == NATIVE_AD_TEMPLATE_1)
        {
            ...
        }
        else if (templateId == NATIVE_AD_TEMPLATE_2)
        {
            ...
        }
        ...
        adLoaded = false;
    }
}
...

void HandleCustomNativeAdLoaded(object sender, CustomNativeEventArgs args)
{
    customNativeTemplateAd = args.nativeAd;
    adLoaded = true;
    ...
}

कस्टम नेटिव विज्ञापन फ़ॉर्मैट के क्लिक और इंप्रेशन मैनेज करना

कस्टम नेटिव विज्ञापन फ़ॉर्मैट के लिए, आपके ऐप्लिकेशन की यह ज़िम्मेदारी होती है कि वह इंप्रेशन रिकॉर्ड करे और क्लिक इवेंट की जानकारी SDK टूल को दे.

रिकॉर्ड किए गए इंप्रेशन

कस्टम नेटिव विज्ञापन फ़ॉर्मैट के लिए इंप्रेशन रिकॉर्ड करने के लिए, उससे जुड़े CustomNativeTemplateAd पर RecordImpression() तरीके को कॉल करें:

customNativeTemplateAd.RecordImpression();

रिपोर्ट पर क्लिक करें

एसडीके को यह बताने के लिए कि किसी ऐसेट पर क्लिक किया गया है, उससे जुड़े CustomNativeTemplateAd पर PerformClick() तरीके को कॉल करें. साथ ही, उस ऐसेट का नाम पास करें जिस पर क्लिक किया गया था. उदाहरण के लिए, अगर आपके कस्टम नेटिव विज्ञापन फ़ॉर्मैट में "MainImage" नाम की कोई ऐसेट है और आपको उस ऐसेट से जुड़े टेक्सचर पर हुए क्लिक की रिपोर्ट करनी है, तो आपका कोड ऐसा दिखेगा:

customNativeTemplateAd.PerformClick("MainImage");

कस्टम टेंप्लेट विज्ञापन पर क्लिक की रिपोर्ट मिलने पर, एसडीके से दो तरह की प्रतिक्रियाएं मिल सकती हैं. ये प्रतिक्रियाएं इस क्रम में मिलती हैं:

  1. विज्ञापन के डीप लिंक यूआरएल के लिए, कॉन्टेंट रिज़ॉल्वर ढूंढें और उसे शुरू करें.
  2. कोई ब्राउज़र खोलें और विज्ञापन के पारंपरिक डेस्टिनेशन यूआरएल पर जाएं.

कस्टम क्लिक ऐक्शन

आपके पास यह तय करने का विकल्प होता है कि आपको कस्टम नेटिव विज्ञापन फ़ॉर्मैट के लिए, क्लिक ऐक्शन को खुद मैनेज करना है. इसके लिए, उपयोगकर्ता को डीप लिंक या वेब ब्राउज़र पर ले जाने के बजाय, खुद क्लिक ऐक्शन को मैनेज करें. इसके लिए, AdLoader.Builder.forCustomTemplateAd() तरीके में वैकल्पिक Action<CustomNativeTemplateAd, string> उपलब्ध कराएं. कस्टम क्लिक ऐक्शन सेट करने पर, एसडीके के क्लिक बिहेवियर को बदला जा सकता है. इसके बारे में ऊपर बताया गया है. यहां एक उदाहरण दिया गया है, जिसमें किसी ऐसेट के लिए क्लिक को लॉग करने के लिए, कस्टम क्लिक ऐक्शन का इस्तेमाल किया गया है:

private void LoadCustomNativeTemplateAd()
{
    AdLoader adLoader = new AdLoader.Builder("/21775744923/example/native")
        .forCustomNativeAd("10063170", HandleCustomNativeAdClicked)
        .Build();
    adLoader.onCustomNativeTemplateAdLoaded += HandleCustomNativeAdLoaded;
    adLoader.OnAdFailedToLoad += HandleCustomNativeAdFailedToLoad;
    adLoader.LoadAd(createAdRequest());
}

private void HandleCustomNativeAdClicked(CustomNativeTemplateAd customNativeTemplateAd, string assetName)
{
    Debug.Log("Native ad asset with name " + assetName + " was clicked.");
}