2011-11-28 57 views
12

Tôi đang sử dụng một số tính năng mới trong Google DFP và không thể nhận được một bổ sung duy nhất để làm mới trên đó. Tôi có thể làm mới tất cả quảng cáo trên trang nhưng tôi không thể chỉ tạo một quảng cáo để tự làm mới.Google dfp pubads(). Refresh() không hoạt động như mong đợi

Tôi đã cố gắng đoạn mã sau để có được một add để làm mới mà không may mắn:

var slot1 = googletag.display('/6900315/myad2', [300, 250], 'div-2'); 
     googletag.pubads().refresh([slot1]); 

Bất kỳ trợ giúp sẽ được đánh giá cao!

nguồn đầy đủ:

<script type='text/javascript'> 
var googletag = googletag || {}; 
googletag.cmd = googletag.cmd || []; 
(function() { 
    var gads = document.createElement('script'); 
    gads.async = true; 
    gads.type = 'text/javascript'; 
    var useSSL = 'https:' == document.location.protocol; 
    gads.src = (useSSL ? 'https:' : 'http:') + 
'//www.googletagservices.com/tag/js/gpt.js'; 
    var node = document.getElementsByTagName('script')[0]; 
    node.parentNode.insertBefore(gads, node); 
})(); 
</script> 


script type='text/javascript'> 
googletag.cmd.push(function() { 
    googletag.pubads().enableAsyncRendering(); 
    googletag.defineSlot("/69003153/myad1", [728, 90], "div-1").addService   (googletag.pubads()); 
    googletag.defineSlot("/69003153/myad2", [300, 250], "div-2").addService (googletag.pubads()); 
    googletag.enableServices(); 
}); 
</script> 
<script type='text/javascript'> 
function changeAd() { 
    googletag.cmd.push(function() { 
     var slot1 = googletag.display('/6900315/myad2', [300, 250], 'div-2'); 
     googletag.pubads().refresh([slot1]); 
     //googletag.pubads().refresh(); 


    }); 
} 
</script> 
</head> 
<body> 
    <form id="form1" runat="server"> 


    <div id='div-1' style='width:728px; height:90px;'> 
<script type='text/javascript'> 
    googletag.cmd.push(function() { googletag.display('div-1'); }); 
</script> 
</div> 


<!-- BoxAdd_Details --> 
<div id='div-2' style='width:300px; height:250px;'> 
    <script type='text/javascript'> 
     googletag.cmd.push(function() { googletag.display('div-2); }); 
</script> 
</div> 

<input type="button" name="test" title="test" onclick="javascript:window.changeAd();"  value="Reload Ad" /> 

Trả lời

14

Tôi cũng đang gặp vấn đề tương tự. Tôi chưa có quảng cáo để làm mới, nhưng tôi khuyên bạn không cần phải redeclare vị trí quảng cáo của mình trong changeAd().

Thay vì:

googletag.cmd.push(function() { 
    googletag.pubads().enableAsyncRendering(); 
    googletag.defineSlot("/69003153/myad1", [728, 90], "div-1").addService   (googletag.pubads()); 
    googletag.defineSlot("/69003153/myad2", [300, 250], "div-2").addService (googletag.pubads()); 
    googletag.enableServices(); 
}); 

Hãy thử:

googletag.cmd.push(function() { 
    googletag.pubads().enableAsyncRendering(); 
    slot1 = googletag.defineSlot("/69003153/myad1", [728, 90], "div-1").addService   (googletag.pubads()); 
    slot2 = googletag.defineSlot("/69003153/myad2", [300, 250], "div-2").addService (googletag.pubads()); 
    googletag.enableServices(); 
}); 

Tuyên bố họ không có 'var' trước họ làm cho các khe toàn cầu trong phạm vi. Trong chức năng changeAd() của bạn, chỉ cần gọi

googletag.pubads().refresh([slot1]); 

Tôi thậm chí không chắc chắn nếu bạn cần phải đặt rằng bên googletag.cmd.push()

Khi tôi thực hiện nó theo cách này, quảng cáo của tôi vẫn không làm mới, nhưng chạy console.log (slot1) cho thấy rằng vùng quảng cáo còn sống và đang đá ...

Có ai khác có thể trợ giúp thêm?

+0

cảm ơn điều đó đã có tác dụng! Một bổ sung đang làm mới bây giờ bằng cách sử dụng mã ở trên bằng cách sử dụng phạm vi toàn cầu cho slot1 – sooty

+0

Nó hoạt động. Đảm bảo bạn bao gồm googletag.pubads(). EnableAsyncRendering(); trên defineSlot() như tôi đã không và đã cho tôi một thời gian để giải phóng tại sao mã không hoạt động –

+0

googletag.pubads(). refresh(); hoạt động tốt mà không có đối số bên trong :) – Kostadin

Các vấn đề liên quan