Google 웹 로그 분석을 사용 하는 비동기 방법이 있지만 애드 센스와 유사한 것이 있습니까? 현재 검색에서 찾을 수 없습니다. 누락 된 일반적인 트릭이 있는지 궁금합니다.
Google 웹 로그 분석을 사용 하는 비동기 방법이 있지만 애드 센스와 유사한 것이 있습니까? 현재 검색에서 찾을 수 없습니다. 누락 된 일반적인 트릭이 있는지 궁금합니다.
답변:
이것은 그것을한다 :
<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 (비동기) "를 참조하십시오. 기본적으로 광고 코드가 실제로 비동기로 실행되도록하는 방법을 찾았습니다.
예, iframe을 사용하는 방법이 있습니다. 고객 사이트 중 하나에 광고 콘텐츠를 비동기식으로로드합니다.
먼저 iframe에서 광고를 지원하려면 Google에 문의해야합니다 (Google에서 해당 사이트를 구축 할 때 널리 사용되지 않았 음). 그런 다음 자바 스크립트를 사용하여 애드 센스 iframe 콘텐츠로드를 트리거 할 수 있습니다.
Google의 iframe을 지원하면 솔루션이 매우 간단합니다.
편집 : 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 id를 통해 모든 슬롯을 채우므로 PSA가 표시되지 않습니다.
자리 표시자를 사용하고 애드 센스 코드를 호출 한 다음 자리 표시자를 광고로 전환 할 수 있습니다. 내 사이트에서 다음과 같은 것을 사용하고 있습니다.
if ( ad1 = document.getElementById('ad-top') )
{
ad2 = document.getElementById('banner_tmp468');
ad1.appendChild(ad2);
ad2.style.display = 'block';
}
HTML 코드에서 가장 중요한 광고 게재 순위를 가져야한다고 말하는 경우에도이 작업을 수행하는 것이 좋습니다. 그렇게하려면 JS 또는 CSS를 사용하여 덜 중요한 광고 단위를 페이지의 (시각적) 맨 위로 이동해야합니다.
그러나 내가 아는 한 애드 센스는 이미 광고를 비동기 적으로 렌더링합니다. 페이지로드를 차단하는 경우는 거의 없습니다. 그래도 확실하지 않습니다.
구글은 "웹을 더 빠르게 만든다"고 말하기 때문에 구글 광고가 보일 때만로드되도록 위의 코드를 변경한다. 이 코드는 하나의 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를 사용합니다.
추신 : 나는 구글 플러스, 페이스 북 및 대부분의 이유없이로드되는 모든 항목을로드하는 비슷한 코드를 만들었습니다.
더 이상이 작업을 수행 할 필요가 없습니다. Google 애드 센스의 show_ads.js는 이제 다소 비동기 적입니다. 공식 블로그에서 gory 세부 사항에 대해 자세히 읽을 수 있습니다.
광고 코드를 변경할 필요가 없습니다.
document.write function
나중에 복원 하는 방식이 매우 흥미 롭습니다 . 유일한 단점은 Google Adsense TOS가 이러한 종류의 작업을 허용하는지 궁금합니다.