क्या अतुल्यकालिक Google ऐडसेंस का उपयोग करना संभव है, अर्थात गैर-अवरुद्ध?


11

मुझे पता है कि Google Analytics का उपयोग करने का एक अतुल्यकालिक तरीका है, लेकिन क्या एडसेंस के लिए भी ऐसा ही कुछ है? मुझे अपनी वर्तमान खोजों में से एक नहीं मिल रहा है - मैं सोच रहा था कि क्या कोई सामान्य ट्रिक है जो मुझे याद आ रही है?

जवाबों:


6

यह करता है:

<script type="text/javascript"><!--
// dynamically Load Ads out-of-band
setTimeout((function ()
{
    // placeholder for ads
        var eleAds = document.createElement("ads");  
        // dynamic script element
        var eleScript = document.createElement("script");  
        // remember the implementation of document.write function
        w = document.write;
        // override and replace with our version
        document.write = (function(params)
        {
        // replace our placeholder with real ads
        eleAds.innerHTML = params;
        // put the old implementation back in place
        // Aristos, add this check because called more than ones
        //  and ends, with this symbol.
        if(params.indexOf("</ins>") != -1)
            document.write=w;
        });
        // setup the ads script element
        eleScript.setAttribute("type", "text/javascript");
        eleScript.setAttribute("src", "http://pagead2.googlesyndication.com/pagead/show_ads.js");
        // add the two elements, causing the ads script to run
        document.body.appendChild(eleAds);              
        document.body.appendChild(eleScript);           
}), 1);
                //-->
        </script> 

इस ब्लॉग आइटम को देखें " Google विज्ञापन Async (एसिंक्रोनस) " मूल रूप से मुझे विज्ञापन कोड को सही तरीके से चलाने के लिए एक तरीका मिला है ..


1
लिंक में दिए गए स्मार्ट समाधान के लिए +1। यह बहुत ही दिलचस्प है जिस तरह से यह मानक का बैकअप लेता है document.write functionऔर बाद में इसे पुनर्स्थापित करता है। केवल नकारात्मक पक्ष यह है कि मैं सोच रहा हूँ कि क्या Google Adsense TOS इस तरह का सामान करने की अनुमति देता है?
मार्को डेमायो

विचार के लिए +1, मैं इसे लेता हूं और इसे थोड़ा बेहतर बनाता हूं और यहां पोस्ट करता हूं। मैं इस GS_googleAddAdSenseService को अन्य विचार के साथ काम करने में विफल रहा हूं।
अरस्तू

5

हाँ, एक तरीका है - iframes का उपयोग करना। हम अपने किसी ग्राहक की साइट पर विज्ञापन सामग्री का अतुल्यकालिक लोडिंग करते हैं।

आपको सबसे पहले iframes में उनके विज्ञापनों के समर्थन के लिए Google से संपर्क करना होगा (जो उस साइट को बनाते समय व्यापक रूप से उपलब्ध नहीं था)। फिर आप AdSense iframe कंटेंट की लोडिंग को ट्रिगर करने के लिए जावास्क्रिप्ट का उपयोग कर सकते हैं, जो कि हम करते हैं।

आपके पास Google का iframe समर्थन होने के बाद समाधान वास्तव में सीधे आगे है।

संपादित करें: ऐसा लगता है - Virtuosi मीडिया द्वारा संदर्भित पदों से - इस अभ्यास का Google द्वारा स्वागत नहीं किया जा सकता है ...

संपादन 2: यह वह कोड है जिसका उपयोग हम iframe में करते हैं। यह देखने की कोशिश करें कि क्या यह काम करता है, शायद विशेष रूप से Google से समर्थन मांगे बिना भी। type="text/javascript" language="JavaScript"बेहतर सुगमता के लिए हटाया गया :

<head runat="server">
    <script src="http://partner.googleadservices.com/gampad/google_service.js">
    </script>

    <script>
        GS_googleAddAdSenseService("ca-pub-YOURKEY");
        GS_googleEnableAllServices();
    </script>

    <!-- For this method, it is not necessary to define the slots in advance 
         and we do not use the FetchAds function -->
    <script>
        GA_googleUseIframeRendering(true);    //<%-- This indicates iframe rendering for all slots --%>
    </script>
</head>
<body>
    <form id="formAd" runat="server">
        <div>
            <script>
                GA_googleFillSlotWithSize("ca-pub-YOURKEY", "AdSlotId",
                                          iframeWidth, iframeHeight);
            </script>
        </div>
    </form>
</body>

हम अपने सभी स्लॉट विज्ञापनों के आईडी के माध्यम से भरते हैं, इसलिए हम कोई पीएसए नहीं देख रहे हैं।


1
क्या आप इसके बारे में Google से संपर्क करने पर अधिक विवरण प्रदान कर सकते हैं? मुझे अपने AdSense खाते में इसके बारे में कुछ भी दिखाई नहीं दे रहा है।
वर्चुओसी मीडिया

इसके अलावा, मुझे यह जानने की उत्सुकता होगी कि क्या विज्ञापन इकाइयाँ अभी भी प्रासंगिक विज्ञापन या सिर्फ पीएसए और आप उस समस्या के आसपास कैसे काम करती हैं।
विदुषी मीडिया

वास्तव में, हम अपने सभी स्लॉट विज्ञापनों के आईडी के माध्यम से भरते हैं, इसलिए हम कोई पीएसए नहीं देख रहे हैं।
ओलिवर

इस पद्धति का उपयोग करते समय, मुझे GA_googleFillSlotWithSize परिभाषित नहीं है त्रुटि
टिमो हुओविनन

@YuriKolovsky: ऐसा लगता है कि Google की स्क्रिप्ट ठीक से लोड नहीं हो रही है। मेरा संपादन 2 देखें: आपको Google के साथ इस विधि के लिए आवेदन करना होगा।
ओलिवर

2

वे वर्तमान में विकल्प प्रदान नहीं करते हैं, जहां तक ​​मैं देख सकता हूं। आपका सबसे अच्छा विकल्प, यदि इसे Google टीओएस द्वारा अनुमति दी गई थी, तो पृष्ठ लोड होने के बाद प्लेसहोल्डर तत्व का उपयोग करना और इसे जावास्क्रिप्ट के साथ गतिशील रूप से बदलना होगा। हालाँकि, ऐसा प्रतीत होता है जैसे यह टीओएस के खिलाफ हो सकता है। देखें इस सूत्र अधिक जानकारी के लिए।


2

आप एक प्लेसहोल्डर का उपयोग कर सकते हैं, विज्ञापन कोड को कॉल कर सकते हैं और फिर विज्ञापन के साथ प्लेसहोल्डर को स्विच कर सकते हैं। मैं अपनी साइट पर कुछ इस तरह का उपयोग कर रहा हूं:

if ( ad1 = document.getElementById('ad-top') )
{
    ad2 = document.getElementById('banner_tmp468');
    ad1.appendChild(ad2);
    ad2.style.display = 'block';
}

Google भी ऐसा करने की सलाह देता है जब वे कहते हैं कि आपके पास अपने HTML कोड में सबसे महत्वपूर्ण विज्ञापन स्थिति होनी चाहिए। यदि आप यह पूरा करना चाहते हैं कि आपको अपने पृष्ठ के ऊपर (दृश्य) कम महत्वपूर्ण विज्ञापन इकाइयों को स्थानांतरित करने के लिए JS या CSS का उपयोग करना होगा।

लेकिन जहाँ तक मुझे पता है कि AdSense पहले ही विज्ञापनों को अतुल्यकालिक रूप से प्रस्तुत करता है। मैंने केवल बहुत कम ही देखा है कि यह पैगलोइडिंग को अवरुद्ध करता है। हालांकि इस बारे में निश्चित नहीं है।


0

क्योंकि Google का कहना है कि "वेब को तेज़ बनाने देता है" मैं उपरोक्त कोड Google विज्ञापनों को लोड करने के लिए केवल तभी बदलता हूं जब वे दिखाई देते हैं। यह कोड "जैसा है" केवल एक Google स्थान विज्ञापन के लिए है, लेकिन मुझे लगता है कि आप इसे और अधिक विज्ञापनों के लिए संशोधित कर सकते हैं। अन्य कोड के साथ अलग हैं

  • विज्ञापन केवल तभी लोड करें जब उपयोगकर्ता को दिखाई दे
  • विज्ञापन लोड करें और उन्हें एक div पर रखें (पृष्ठ के अंत में नहीं)
  • सभी ब्राउज़रों के साथ काम करता है क्योंकि मैं सभी आवश्यक वस्तुओं को लोड करता हूं (न केवल पहले)

इसके साथ ही divमैं विज्ञापनों को बाद में शुरू करता हूं।

<div id="adSpot" ></div>

<script type="text/javascript">
    // load the script with cache
    function getScriptCcd(url, callback)
    {
        jQuery.ajax({
                type: "GET",
                url: url,
                success: callback,
                dataType: "script",
                cache: true
        });
    };

    // to unbind the scroll I keep the total binds of scroll
    // in this example I have only one.
    var cPosaScrollExo = 0;
    // bind the scrool to monitor if ads are visible    
    function addThisScroll(RunThisFunction)
    {
        jQuery(window).scroll(RunThisFunction);
        cPosaScrollExo++;
    }
    // unbind all scroll if all they not needed any more
    function unBindScroll()
    {
        cPosaScrollExo--;

        if(cPosaScrollExo <= 0)
        {
            cPosaScrollExo = 0;
            jQuery(window).unbind('scroll');
        }
    }

    // here I check if the element is visible to the user with a 100pixel advanced.
    function isScrolledOnMatia(pioSimio) 
    {
        var SimioPouTheloNaFenete = (jQuery(pioSimio).offset().top - 100 );
        var scrollPosition = jQuery(window).height() + jQuery(window).scrollTop();

        return (scrollPosition >= SimioPouTheloNaFenete );
    }   

    // the ads informations
    google_ad_client = "pub-XXXXXXXXXXXXXXX";
    google_ad_slot = "XXXXX";
    google_ad_width = 468;
    google_ad_height = 60;

    var GoogleIsVisible = false;
    // we call this function on every window scroll
    function CheckAdsVisibility()
    {
        if(!GoogleIsVisible)
        {
            if(isScrolledOnMatia("#adSpot"))
            {
                unBindScroll();
                GoogleIsVisible = true;

                            // finally I go to show the ads
                LoadAdsLater();
            }
        }
    }

    // here is a modification of the function that load the ads
    function LoadAdsLater()
    {
        try
        {
                    // Aristos: nice trick here 
            // remember the implementation of document.write function
            w = document.write;

            // override and replace with our version
            document.write = (function(params)
            {
                jQuery("#adSpot").append(params);

                // put the old implementation back in place when
                            //  all writes are finish
                if(params.indexOf("</ins>") != -1)
                    document.write=w;
            });             

            // loading script
            getScriptCcd("http://pagead2.googlesyndication.com/pagead/show_ads.js");
        }
        catch(e)
        {
            // check for errors on debug
        }
    }

    // and here we setup the hole thin
    jQuery(document).ready(function() 
    {       
            // check if all ready is visible !
        CheckAdsVisibility();
            // bind the scroll
        addThisScroll(CheckAdsVisibility);
    });
</script>

मैंने इसका परीक्षण किया है और सभी ब्राउज़रों के साथ काम कर रहा हूं, मैं अभी और अधिक सुरक्षित होने के लिए jQuery का उपयोग करता हूं कि मैं ब्राउज़र से बचना मुश्किल हूं।

पी एस, मैं गूगल प्लस लोड करने के लिए इसी तरह का कोड है, और facebook और सभी आइटम है कि लोड कारण बाहर सबसे अधिक बार।


0

ऐसा करने के लिए आगे कोई आवश्यकता नहीं है। Google AdSense का show_ads.js अब कुछ अतुल्यकालिक है। आप आधिकारिक ब्लॉग पर gory विवरण के बारे में अधिक पढ़ सकते हैं:

योर वेब, हाफ अ सेकंड सूकर

विज्ञापन कोड बदलने की कोई आवश्यकता नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.