Page 1 of 1

Брокеры, споты.

Posted: Sat Jan 28, 2023 7:50 pm
by darkover
Привет!
Вопрос такой возник, как можно сделать.

Экзо дает код

Code: Select all


<script async type="application/javascript" src="https://a.realsrv.com/ad-provider.js"></script>

<ins class="adsbyexoclick" data-zoneid="112">
<ins class="adsbyexoclick" data-zoneid="113">

<script>(AdProvider = window.AdProvider || []).push({'serve': {}});</script> 
Имеем 5 спотов на странице например. 2-3 зоны экзо. И других брокеров с банерами.
Пусть совпало так, что у нас выводится 2 зоны зкзо и 3 зоны от других брокеров.
Как можно определить, что у нас выводится зона экзо, что бы при выводе экзо один раз вывести
https://a.realsrv.com/ad-provider.js где в head потом вывести

Code: Select all

<ins class="adsbyexoclick" data-zoneid="112"> и <ins class="adsbyexoclick" data-zoneid="113">
на месте спотов и заключительно вывести

Code: Select all

<script>(AdProvider = window.AdProvider || []).push({'serve': {}});</script> 
Сейчас выводим как зону так

Code: Select all

<script async type="application/javascript" src="https://a.realsrv.com/ad-provider.js"></script>
<ins class="adsbyexoclick" data-zoneid="112">
script>(AdProvider = window.AdProvider || []).push({'serve': {}});</script> 
И соответственно если все 5 спотов экзо то https://a.realsrv.com/ad-provider.js" 5 раз на странице выводится, pagespeed ругается

Re: Брокеры, споты.

Posted: Mon Jan 30, 2023 5:13 am
by admin
даже если знать что на странице уже выведен 1 раз блок экзо то все равно надо менять код блока 2

предлагаю такой вариант:

меняем на

Code: Select all

<?php if (!$exo_flag) { 
   $exo_flag = true;
?>

<script async ....'

<? } ?>


<ins class="adsbyexoclick" data-zoneid="112">
<script>(AdProvider = window.AdProvider || []).push({'serve': {}});</script>

те даже если будет 5 блоков то часть <script async на странице выведет 1 раз

Re: Брокеры, споты.

Posted: Mon Jan 30, 2023 12:48 pm
by darkover
Так, а что такое $exo_flag - это какая-то переменная брокера ?
Т.е. мы можем сделать так :

Code: Select all


В хидере :

<?php if (!$exo_flag) {  $exo_flag = true; ?>
<script async ....'
<? } ?>

В теле сайта 
<!--SPOT_1--> ... <!--SPOT_5-->
В которых зона у брокера будет всего лишь как: <ins class="adsbyexoclick" data-zoneid="112">


и где-то в футере 

<?php if (!$exo_flag) {  $exo_flag = true; ?>
<script>(AdProvider = window.AdProvider || []).push({'serve': {}});</script>
<? } ?>


Re: Брокеры, споты.

Posted: Mon Jan 30, 2023 1:35 pm
by admin
нет

все зоны экзо надо поменять в вид

Code: Select all

<?php if (!$exo_flag) { 
   $exo_flag = true;
?>

<script async ....'

<? } ?>

<ins class="adsbyexoclick" data-zoneid="112">

другая

Code: Select all

<?php if (!$exo_flag) { 
   $exo_flag = true;
?>

<script async ....'

<? } ?>


<ins class="adsbyexoclick" data-zoneid="115">

тогда если выведет 2 зоны эксзо на одной странице то первая зона выведет <script async ....', а вторая уже нет тк будет флаг

Re: Брокеры, споты.

Posted: Mon Jan 30, 2023 2:53 pm
by darkover
admin wrote: Mon Jan 30, 2023 1:35 pm нет

все зоны экзо надо поменять в вид

Code: Select all

<?php if (!$exo_flag) { 
   $exo_flag = true;
?>

<script async ....'

<? } ?>

<ins class="adsbyexoclick" data-zoneid="112">

другая

Code: Select all

<?php if (!$exo_flag) { 
   $exo_flag = true;
?>

<script async ....'

<? } ?>


<ins class="adsbyexoclick" data-zoneid="115">

тогда если выведет 2 зоны эксзо на одной странице то первая зона выведет <script async ....', а вторая уже нет тк будет флаг
понял, это уже что-то )
А можно как-то после последней зоны вывести

script>(AdProvider = window.AdProvider || []).push({'serve': {}});</script>
Это реализуемо как-то ?

Re: Брокеры, споты.

Posted: Mon Jan 30, 2023 3:38 pm
by admin
а это на скорость страницы не влияет, я б его не двигал для простоты