मुझे पता है कि Google Analytics का उपयोग करने का एक अतुल्यकालिक तरीका है, लेकिन क्या एडसेंस के लिए भी ऐसा ही कुछ है? मुझे अपनी वर्तमान खोजों में से एक नहीं मिल रहा है - मैं सोच रहा था कि क्या कोई सामान्य ट्रिक है जो मुझे याद आ रही है?
मुझे पता है कि Google Analytics का उपयोग करने का एक अतुल्यकालिक तरीका है, लेकिन क्या एडसेंस के लिए भी ऐसा ही कुछ है? मुझे अपनी वर्तमान खोजों में से एक नहीं मिल रहा है - मैं सोच रहा था कि क्या कोई सामान्य ट्रिक है जो मुझे याद आ रही है?
जवाबों:
यह करता है:
<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 (एसिंक्रोनस) " मूल रूप से मुझे विज्ञापन कोड को सही तरीके से चलाने के लिए एक तरीका मिला है ..
हाँ, एक तरीका है - 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>
हम अपने सभी स्लॉट विज्ञापनों के आईडी के माध्यम से भरते हैं, इसलिए हम कोई पीएसए नहीं देख रहे हैं।
वे वर्तमान में विकल्प प्रदान नहीं करते हैं, जहां तक मैं देख सकता हूं। आपका सबसे अच्छा विकल्प, यदि इसे Google टीओएस द्वारा अनुमति दी गई थी, तो पृष्ठ लोड होने के बाद प्लेसहोल्डर तत्व का उपयोग करना और इसे जावास्क्रिप्ट के साथ गतिशील रूप से बदलना होगा। हालाँकि, ऐसा प्रतीत होता है जैसे यह टीओएस के खिलाफ हो सकता है। देखें इस सूत्र अधिक जानकारी के लिए।
आप एक प्लेसहोल्डर का उपयोग कर सकते हैं, विज्ञापन कोड को कॉल कर सकते हैं और फिर विज्ञापन के साथ प्लेसहोल्डर को स्विच कर सकते हैं। मैं अपनी साइट पर कुछ इस तरह का उपयोग कर रहा हूं:
if ( ad1 = document.getElementById('ad-top') )
{
ad2 = document.getElementById('banner_tmp468');
ad1.appendChild(ad2);
ad2.style.display = 'block';
}
Google भी ऐसा करने की सलाह देता है जब वे कहते हैं कि आपके पास अपने HTML कोड में सबसे महत्वपूर्ण विज्ञापन स्थिति होनी चाहिए। यदि आप यह पूरा करना चाहते हैं कि आपको अपने पृष्ठ के ऊपर (दृश्य) कम महत्वपूर्ण विज्ञापन इकाइयों को स्थानांतरित करने के लिए JS या CSS का उपयोग करना होगा।
लेकिन जहाँ तक मुझे पता है कि AdSense पहले ही विज्ञापनों को अतुल्यकालिक रूप से प्रस्तुत करता है। मैंने केवल बहुत कम ही देखा है कि यह पैगलोइडिंग को अवरुद्ध करता है। हालांकि इस बारे में निश्चित नहीं है।
क्योंकि Google का कहना है कि "वेब को तेज़ बनाने देता है" मैं उपरोक्त कोड Google विज्ञापनों को लोड करने के लिए केवल तभी बदलता हूं जब वे दिखाई देते हैं। यह कोड "जैसा है" केवल एक Google स्थान विज्ञापन के लिए है, लेकिन मुझे लगता है कि आप इसे और अधिक विज्ञापनों के लिए संशोधित कर सकते हैं। अन्य कोड के साथ अलग हैं
इसके साथ ही 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 और सभी आइटम है कि लोड कारण बाहर सबसे अधिक बार।
ऐसा करने के लिए आगे कोई आवश्यकता नहीं है। Google AdSense का show_ads.js अब कुछ अतुल्यकालिक है। आप आधिकारिक ब्लॉग पर gory विवरण के बारे में अधिक पढ़ सकते हैं:
विज्ञापन कोड बदलने की कोई आवश्यकता नहीं है।
document.write function
और बाद में इसे पुनर्स्थापित करता है। केवल नकारात्मक पक्ष यह है कि मैं सोच रहा हूँ कि क्या Google Adsense TOS इस तरह का सामान करने की अनुमति देता है?