2009-07-17 11 views
19

Tôi đang gặp vấn đề với google adsense và tải trước mã jQuery của tôi và giết mã của tôi, vì vậy tôi nghĩ tôi sẽ cố gắng thêm JavaScript Google Adsense vào div thích hợp bằng cách sử dụng chức năng sẵn sàng của tài liệu , đây là đoạn code tôi đang cố gắng để viết:jQuery thêm Google Adsense vào div

<script language="javascript" type="text/javascript"> 
$(document).ready(function(){ 
    $(".googleBanners").html("<script language='javascript' type='text/javascript'>\n" + "google_ad_client = 'pub-8487967187298044';\n" + "google_ad_slot = '1088799521';\n" + "google_ad_width = 250;\n" + "google_ad_height = 250;\n" + "</" + "script>\n" + "<script language='javascript' src='http://pagead2.googlesyndication.com/pagead/show_ads.js' type='text/javascript'>" + "</" + "script>"); 
}); 
</script> 

Nhưng tôi không tốt bằng văn bản javascript/jQuery vì vậy nếu ai đó có thể giúp tôi thực hiện điều này đó sẽ là tuyệt vời.

Lỗi trong FF hiện tôi đang nhận là "Lỗi: google_protectAndRun không được xác định". Tôi không chắc chắn điều đó có nghĩa là gì, nhưng tôi đoán tôi đã viết mã jQuery sai. Lol

+0

Ok, vì vậy tôi đã thử một góc khác và tôi vẫn gặp lỗi tương tự. Tôi đã tạo một thành phần trong Joomla chỉ hiển thị mã quảng cáo google - http://www.sportsneo.com/google-ads Và tôi nghĩ tôi sẽ gọi nó bằng cách sử dụng Ajaxify - hoạt động tốt cho các trang web khác tôi đã thực hiện với nội dung ajax, nhưng vì một số lý do mã google adsense này ghét tôi .. http://www.sportsneo.com/fantasy-killed-my-hsc <- trang nơi mã google adsense được yêu cầu tải (bên tay phải) trong FF nó đi đến một trang trống với lỗi và IE không hiển thị bất cứ điều gì trong hộp mà nó phải đi .. :( – SoulieBaby

Trả lời

19

Cách tôi làm điều này là có một trình giữ chỗ tại chỗ tôi muốn quảng cáo xuất hiện.

<html> 
    <body> 
     <div id="googleadgoeshere"></div> 
    </body> 
</html> 

Sau đó đặt mã google vào thùng chứa ở cuối trang.

<div id="adsense" style="display:none;">all the google javascript goes here</div> 

Sau đó, tôi sử dụng jQuery để di chuyển khung nội tuyến mà mã adsense tạo khi trang được tải xong.

$(window).load(function(){ 
    $("#adsense").find("iframe").appendTo("#googleadgoeshere"); 
    $("#adsense").remove(); 
}); 

Nếu bạn chỉ cố di chuyển #adsense div, bạn sẽ kết thúc bằng một trang trống. Nếu bạn cố gắng làm điều này theo bất kỳ cách nào khác, bạn sẽ kết thúc với một trang trống. Google đã xây dựng theo các cách tích cực để kiểm tra xem mã có bị di chuyển không. Nếu có, trang của bạn sẽ trống. Tại sao google đã làm điều này là vượt ra ngoài tôi, nhưng tôi đã tìm thấy cách giải quyết này để làm việc cho tôi ...

+11

Chính sách của Google về việc này là gì? Bạn có vi phạm điều khoản dịch vụ của AdSense không? –

+2

Tôi đồng ý với những gì Scott nói .. Một số người cần phải kiểm duyệt nếu điều này vi phạm ý thức quảng cáo vì chúng tôi sẽ không thực hiện bất kỳ thay đổi nào trong mã adsense. –

+1

Có any1 hỏi trong diễn đàn Adsense cho dù điều này là vi phạm Chính sách Google Adsense –

3

Bạn không thể bao gồm các tập lệnh bên ngoài theo cách đó.

Để bao gồm javascript sau khi trang đã tải, bạn nên sử dụng chức năng jQuery.getScript() của jQuery, nhưng tôi không biết điều đó có hiệu quả với Google Adsense hay không.

Một chút biết thêm có thể được tìm thấy ở đây:

http://geek.littleredstring.com/17-load-adsense-last-jquery

+0

Cảm ơn các liên kết, tôi đã cố gắng rằng trước khi đến đây, cho một số lý do mã adsense giết chết các kịch bản jquery khác của tôi trong IE ..:/Sẽ kiểm tra điều getScript .. :) – SoulieBaby

0

tôi đã cùng một vấn đề chính xác này. Tôi cuối cùng đã giải quyết nó bằng cách sử dụng jQuery để tải một với một src trỏ đến một tập tin html có chứa javascript của Google AdSense. Điều này khá không phù hợp, vì mã Google AdSense tạo ra một . Và, tôi tình cờ làm việc với một ứng dụng Facebook, vì vậy trong trường hợp của tôi, tôi có một số (Quảng cáo Google) trong một số (cái tôi đã sử dụng để tránh lỗi Firefox) trong một (ứng dụng Facebook của tôi)). Nhưng nó đã có tác dụng.

+0

chỉ là một đề xuất, tìm hiểu cách sử dụng các công cụ chỉnh sửa bài đăng để làm nổi bật các thẻ HTML của bạn dưới dạng mã (cũng như bất kỳ mã nào). sau đó bạn đăng bài sẽ có ý nghĩa :) – jaywon

0

Câu trả lời của Danny giải thích giải pháp cơ bản cho điều này sau khi tôi thử nghiệm không thành công một cách rộng rãi. Tuy nhiên, tôi cần một giải pháp phức tạp hơn vì tôi có số lượng quảng cáo không xác định mà tôi muốn thay thế trên một trang nhất định, vì vậy, đây là những gì tôi đã làm:

Sơ đồ html cơ bản, định dạng của Danny tăng số lượng quảng cáo của tôi, dựa trên các yếu tố khác nhau của các hàng từ truy vấn db, tức lànhư vậy mà nó không thể nào biết đếm trước:

<html> 
    <body> 
<? while ($r = mysql_fetch_assoc($rs)) { if (true) { ?> 
     <div class="adslide"><?=$ads++?></div> 
<? } } ?> 
    </body> 
</html> 

tôi tách ra các css cho div adsense tôi sẽ tạo ra trong một khoảnh khắc như tôi có một cho mỗi div adslide tạo ở trên:

<style> .adsense { display: none; } </style> 

ở đây, đặt ở dưới cùng của trang, tôi nhận được quảng cáo thực tế từ google vào html, số lượng được xác định bởi có bao nhiêu khe tôi có cho họ với phần trên:

<?php for ($i = 0; $i < $ads; $i++) { echo '<div class="adsense">'.$adscript.'</div>'; } ?> 

Và cuối cùng tôi cycl e thông qua tất cả các quảng cáo adsense được viết vào html và điền chúng vào, từng người một, vào các khe adslide được tạo ra trong html, đảm bảo mỗi quảng cáo và khe chỉ được sử dụng/điền một lần bằng cách xóa chúng hoặc lớp của chúng sau khi tôi đang thực hiện với họ:

<script> 
// http://stackoverflow.com/questions/1142861/jquery-append-google-adsense-to-div 
$(function() { var b, a = $(".adsense").first(); 
for (; a.length > 0; a = $(".adsense").first()) 
{ b = $(".adslide").first(); b.append(a.find("iframe")); 
    a.remove(); b.removeClass("adslide"); } }); 
</script> 

Đây là một cực kỳ lạ lỗi từ google. Tôi chỉ có thể giả định nó liên quan đến một số bảo vệ mà Google đã tạo để ngăn người khác ẩn quảng cáo của họ (bằng cách định vị chúng trên màn hình hoặc đằng sau các phần tử html khác) hoặc cố gắng thu thập số lần hiển thị mà không thực sự hiển thị quảng cáo (nghĩa là bạn có thể đặt hàng triệu những trong html nhưng người dùng sẽ không bao giờ nhìn thấy chúng, và bạn thu thập tiền mặt cho đến khi google phát hiện ra). Tuy nhiên, thực tế là lỗi này không hiển thị trong IE và Safari nhưng lại có trong Firefox và Chrome của chính Google ... Thật lạ lùng. Họ chắc chắn nên sửa lỗi này về phía họ.

Đối với những người đang làm việc với cùng một phần mềm: Tôi đã gặp phải vấn đề này khi triển khai jQuery Carousel (http://sorgalla.com/projects/jcarousel/) có quảng cáo trộn lẫn với ảnh do người dùng gửi trong băng chuyền .

0

Chỉ mã này làm việc

var i = 0; 
obj = $(".materialContent p"); 
size = obj.size(); 
for (i=0; i<size; i++) 
{ 
    cur = obj[i]; 
    if (i == 2) 
    { 
     $("#mainTopAdvDiv").appendTo(cur); 
    } 
} 

Không được xóa, di chuyển đầy đủ div.

1

Sau khi thử và thất bại với các mã trên đây, tôi đã kết thúc lấy đối tượng jQuery mà tôi đã sử dụng và đặt nó trong một trang html mới. Một khi tôi đã làm điều đó, tôi chỉ sử dụng một khung nội tuyến để đặt nó trên trang với adsense.

Hiện tại, chạy adsense và jQuery cùng một lúc mà không gặp vấn đề gì.

0

Trong trang link đến trang đã được tải qua ajax, tôi đặt data-ajax="false" và sau đó trên trang đã được tải, tôi yêu cầu người dùng sử dụng nút quay lại.

0

Tôi sử dụng biến thể này. Tất cả đều tốt!

$(document).ready(function() { 
$("div.youtube_ad").html("<iframe src='/adsense.html' width='350' height='290' scrolling='no'></iframe>") 
}); 

Trong adsense.html đưa bạn mã AdSense 'Asis'.

+13

Google cấm đặt adsense trong khung nội tuyến và có thể vô hiệu hóa tài khoản của bạn để thực hiện việc này. –

1

Thêm một DIV ẩn với mã adsense trong trang của bạn ở đâu đó:

<div id='adsense' style="display:none"> 
    <script type="text/javascript"><!-- 
     google_ad_client = "ca-pub-xxxxxxxxxxxxxx"; 
     google_ad_slot = "xxxxxxxxxx"; 
     google_ad_width = 300; 
     google_ad_height = 250; 
     //--> 
    </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> 
</div> 

Sử dụng javascript tạo DIV động cho quảng cáo của bạn để tải:

$("body").append("<div id='adslot' ></div>"); 

mã jQuery để chèn Ad:

var ad = $("#adsense").html(); 
$("#adslot").html(ad); 

Điều này phù hợp với tôi.

+0

Làm thế nào tôi có thể tạo một địa điểm ngẫu nhiên cho quảng cáo google? Ví dụ tôi có 10 bài đăng và muốn 2 người trong số họ thay thế bằng google advert nhưng ngẫu nhiên.Tôi có thể làm điều đó @krisrak? –

0

Đây là cách tôi sẽ làm. Đơn giản và ngắn gọn.

<script> 
$(window).load(function(){ 
    $('#adsense').fadeIn(0); 
}); 
</script> 

<div id="adsense" style="display:none;"> 
    [YOUR ADSENSE SCRIPT HERE] 
</div>