it-swarm.asia

هل من الممكن استخدام جوجل ادسنس غير متزامن ، أي عدم حظر؟

أعلم أن هناك طريقة غير متزامنة لاستخدام Google Analytics ولكن هل هناك شيء مشابه لبرنامج adsense؟ لا يمكنني العثور على واحدة من عمليات البحث الحالية - كنت أتساءل عما إذا كانت هناك خدعة شائعة أفتقدها؟

11
Tom

هذا يفعل ذلك:

<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 Ads Async (غير متزامن) " بشكل أساسي لقد وجدت طريقة للحصول على شفرة الإعلان لتشغيلها بشكل غير متزامن حقًا ..

6
FigmentEngine

نعم ، هناك طريقة - باستخدام iframe نقوم بالتحميل غير المتزامن لمحتوى الإعلان على أحد مواقع عملائنا.

عليك أولاً الاتصال بـ Google للحصول على دعم لإعلاناتها في iframe (والتي لم تكن متوفرة على نطاق واسع عندما أنشأنا هذا الموقع). يمكنك بعد ذلك استخدام JavaScript لتشغيل تحميل محتوى iframe في AdSense ، وهو ما نقوم به.

الحل هو حقًا مستقيم للأمام بمجرد حصولك على دعم iframe من Google.

تحرير: يبدو - من المشاركات المشار إليها بواسطة Virtuosi Media - قد لا ترحب 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>

نحن نملأ جميع فتحاتنا من خلال معرّفات adslot ، لذلك نحن لا نرى أي إعلانات دعم عامة.

5
Oliver

يمكنك استخدام عنصر نائب ، والاتصال برمز Adsense ، ثم تبديل العنصر النائب مع الإعلان. أنا أستخدم شيئًا كهذا على موقعي:

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

توصي Google بالقيام بذلك عندما يقولون أنه يجب أن يكون لديك موضع الإعلان الأكثر أهمية أولاً في شفرة HTML الخاصة بك. إذا كنت تريد تحقيق ذلك ، فسوف يتعين عليك استخدام JS أو CSS لنقل الوحدات الإعلانية الأقل أهمية إلى أعلى (مرئي) من صفحتك.

لكن بقدر ما أعرف ، فإن AdSense يعرض الإعلانات بالفعل بشكل غير متزامن. لقد رأيت أنه نادرًا ما يحظر تحميل الصفحات. لست متأكدا من هذا على الرغم من.

2
Bart van Bragt

لا يقدمون الخيار حاليًا ، بقدر ما أستطيع رؤيته. أفضل خيار لديك ، إذا كان مسموحًا به من قِبل Google TOS ، هو استخدام عنصر نائب واستبداله ديناميكيًا بـ JavaScript بعد تحميل الصفحة. ومع ذلك ، يبدو كما لو كان ضد شروط الخدمة. انظر هذا الموضوع لمزيد من التفاصيل.

2
Virtuosi Media

ليست هناك حاجة أخرى للقيام بذلك. show_ads.js الخاص بـ Google AdSense غير متزامن إلى حد ما. يمكنك قراءة المزيد عن التفاصيل المعتدلة في المدونة الرسمية:

الويب الخاص بك ، نصف ثانية عاجلا

ليست هناك حاجة لتغيير شفرة الإعلان.

0
Salman A

لأن 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 لتكون أكثر أمانًا وأنني أتجنب المتصفحات الصعبة.

ملاحظة: لقد قمت بإنشاء كود مشابه لتحميل google plus ، والفيسبوك وجميع العناصر التي يتم تحميلها بدون سبب في معظم الأحيان.

0
Aristos