it-swarm-eu.dev

Je možné použít asynchronní google adsense, tj. Neblokovat?

Vím, že existuje asynchronní metoda používání Google Analytics , ale existuje něco podobného pro AdSense? Nemohu najít jeden z mých současných vyhledávání - přemýšlel jsem, jestli existuje nějaký běžný trik, který mi chybí?

11
Tom

to dělá:

<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> 

podívejte se na tuto položku blogu „ Google Ads Async (asynchronous) " v podstatě jsem našel způsob, jak získat reklamní kód, aby mohl běžet skutečně asynchronně.

6
FigmentEngine

Ano, existuje způsob - použití prvků iframe. Na jednom z našich zákazníků provádíme asynchronní načítání reklamního obsahu.

Nejprve je třeba kontaktovat společnost Google, aby podporovala jejich reklamy v prvcích iframe (což nebylo při vytváření tohoto webu široce dostupné). Poté můžete pomocí JavaScriptu spustit načítání obsahu AdSense iframe, což děláme.

Jakmile máte podporu prvku iframe od společnosti Google, řešení je opravdu přímé.

pravit: Vypadá to, že - z příspěvků, na které odkazuje Virtuosi Media - nemusí společnost Google tento postup uvítat ...

pravit 2: Toto je kód, který používáme v prvku iframe. Vyzkoušejte, zda funguje, možná i bez výslovného vyžádání podpory společnosti Google. Odebráno type="text/javascript" language="JavaScript" pro lepší čitelnost:

<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>

Všechny naše automaty vyplňujeme pomocí ID reklam, takže nevidíme žádné PSA.

5
Oliver

Můžete použít zástupný symbol, zavolat na kód AdSense a poté přepnout zástupný symbol pomocí reklamy. Na svém webu používám něco podobného:

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

Google to dokonce doporučuje, když tvrdí, že byste měli mít v kódu HTML nejprve nejdůležitější pozici reklamy. Pokud chcete dosáhnout toho, že budete muset přesunout méně důležité reklamní jednotky do (vizuální) horní části stránky pomocí JS nebo CSS.

Pokud však vím, AdSense již reklamy asynchronně vykresluje. Jen velmi zřídka jsem viděl blokování načítání stránek. Nejste si tím jistí.

2
Bart van Bragt

Pokud to vidím, v současné době tuto možnost nenabízejí. Vaše nejlepší volba, pokud to bylo povoleno službou Google TOS, by bylo použití zástupného prvku a po načtení stránky jej dynamicky nahradit skriptem JavaScript. Zdá se však, že by to mohlo být proti TOS. Další podrobnosti viz toto vlákno .

2
Virtuosi Media

Není třeba to dělat. Show_ads.js Google AdSense je nyní poněkud asynchronní. Další informace o krvavých podrobnostech si můžete přečíst na oficiálním blogu:

Váš web, půl vteřiny

Není třeba měnit reklamní kód.

0
Salman A

Protože google říká: „umožňuje zrychlit web“, změním výše uvedený kód, aby se reklamy Google načítaly, pouze pokud jsou viditelné. Kód funguje „tak, jak je“, pouze pro jednu reklamu na google místě, ale myslím si, že ji můžete snadno upravit pro více reklam. Liší se od ostatních kódů

  • Načíst reklamy, pouze pokud jsou pro uživatele viditelné
  • Načítá reklamy a umísťuje je na div (nikoli na konec stránky)
  • Funguje se všemi prohlížeči, protože načítám všechny potřebné položky (nejen první)

Počínaje div, na které umístím reklamy později.

<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>

Testuji to a pracuji se všemi prohlížeči, používám jQuery, abych byl bezpečnější, abych se vyhnul obtížným prohlížečům.

ps, udělal jsem podobný kód pro načtení google plus a facebooku a všech těch položek, které se načítají bez důvodu většinu času.

0
Aristos