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

Post Reply
darkover
Posts: 1518
Joined: Sat Apr 13, 2013 8:59 pm

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

Post 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 ругается
admin
Site Admin
Posts: 37202
Joined: Wed Sep 10, 2008 11:43 am

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

Post 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 раз
Don't forget to run script update
darkover
Posts: 1518
Joined: Sat Apr 13, 2013 8:59 pm

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

Post 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>
<? } ?>

admin
Site Admin
Posts: 37202
Joined: Wed Sep 10, 2008 11:43 am

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

Post 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 ....', а вторая уже нет тк будет флаг
Don't forget to run script update
darkover
Posts: 1518
Joined: Sat Apr 13, 2013 8:59 pm

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

Post 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>
Это реализуемо как-то ?
admin
Site Admin
Posts: 37202
Joined: Wed Sep 10, 2008 11:43 am

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

Post by admin »

а это на скорость страницы не влияет, я б его не двигал для простоты
Don't forget to run script update
Post Reply