我使用谷歌广告和无限加载。每当我通过AJAX在页面上“加载更多”数据时,它也会自动从Google获取另一个广告,这显然不会显示,因为Google不支持通过AJAX引入广告。
我需要帮助解决如何在页面加载上显示一个广告的逻辑,以及每当按下load更多的按钮时,如何忽略@include ('components.responsive_ad_display_only')
我目前正在考虑使用会话。我正在使用session()->put('retrieve', '1');
后,我包括了广告。然后,一旦“加载更多”被按下,我将检查是否设置了会话。如果它是设置,我不包括广告,同时拉进更多的数据。这个场景的问题是,我最终需要“忘记”会话,这样当访问者刷新主页时,就会出现一个新的广告。
这是我使用的代码:
@php
if (! session()->has('retrieve')) {
$i = 1;
$rand = rand(1, 10);
session()->put('retrieve', '1');
} else {
$i = 1;
$rand = 200; // any integer higher than media items displayed
session()->forget('retrieve');
}
@endphp
@foreach ($media as $media_item)
@if ($i == $rand)
<div class="ad_item">
<!-- Ad Displayed here -->
@include('components.responsive_ad_display_only')
</div>
@endif
<div class="media_item">
<h1>Media Item Name</h1>
</div>
@endforeach
此代码段用于不每隔一次显示广告,因为会话每次都会被设置和取消设置。
我希望能为解决我的困境提供任何帮助和指导。
非常感谢!
发布于 2017-02-27 19:34:05
为了防止广告出现在ajax请求上,有许多方法,包括但不限于
用它就像
//in JS
...
url = "/somefile.php?page=1";
// update it to look like
url = "/somefile.php?page=1&ajax=1";
...
//in PHP
if(!isset($_GET["ajax"]) || $_GET["ajax"] != 1){ //check ajax param in URL
/// Print your ad here
像这样
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) &&
strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{
/// Print your ad here
还有其他方法涉及会话和其他类型的验证,但这些也是最简单的方法。
发布于 2017-02-27 19:01:43
使用此方法在一段时间内使用ajax显示广告。
$i = rand(1, 10);
if ($i == 1 || $i == 4 || $i == 8){
?>
<div class="ad_item">
<!-- Ad Displayed here -->
<?php
@include('components.responsive_ad_display_only');
?>
</div>
<?php
foreach ($media as $media_item){
}
?>
<div class="media_item">
<h1>Media Item Name</h1>
</div>
}
现在,您可以使用会话来防止以这种方式连续显示广告。
if(isset($_SESSION["some_key"])){
if($_SESSION["some_key"] == 1 || $_SESSION["some_key"]== 4 ||
$_SESSION["some_key"] == 8){ // The values for which ads show up
$i == 0; // A value for which ads won't show up
一旦你不需要它,你就可以删除它,如果你需要的话,你可以重置它.
https://stackoverflow.com/questions/42499210
复制相似问题