Внедрение рекламных блоков в контент

На примере нашего блога покажем, как можно внедрить рекламные дополнительные блоки в контент - статьи, некие каталоги и т.д.

Общая суть - используем специальную форму, которая по определенным правилам выводит HTML блоки с кодами, начинающимися с promo_.

На странице контента

Вставка формы производится динамически через JS. В примере мы вставляем через 4 секунды после загрузки форму рекламы после 15 параграфа в статье. 

setTimeout(function(){
    var p = $('.bl-text p:eq(15)');
    var s  = "
";
  	$(s).insertAfter(p);    
    as.initControls($('.watchpromoCont'));
   /* setInterval(function(){
    	as.initControls($('.watchpromoCont'));
    }, 60000);*/
  }, 4000); 

В примере есть закомменченный код - это на случай, если нам нужна периодическая ротация объявлений.

В itemID формы мы передаем код статьи, на основе которого можно проводить анализ и выдавать реллевантные объявления. В нашем примере мы его не учитываем и просто передаем случайный HTML блок. 

Форма показа баннера watchpromo

Доступна всем (роли = all). 

Разметка формы: 

<div class="row position-relative">
  <div class="col-12">
    <div class="shadow rounded border border-primary p-3">
      <a href="#" class="as-form-submit badge badge-secondary" style="font-size: 12px; line-height: 1.2em; 
                position: absolute; z-index:2;
                bottom: 6px; right: 19px;">Что еще есть?</a>
      {form-subtitle}
    </div>
  </div>

</div>

Через параметры subtitle мы выведем сам баннер.

GetItem - выбираем случайный блок с кодом promo_XXXX: 

CREATE PROCEDURE [dbo].[fm_watchpromo_getItem]
    @itemID nvarchar(128),	
	@username nvarchar(256)

AS
BEGIN
	select 1 
    declare @text nvarchar(max)
    select top 1 @text = html from as_htmlBlocks
    where code like 'promo_%'
    order by newid()
    
    select isnull(@text, '') Subtitle
END

В SaveItem мы обрабатываем нажатие кнопки "Что еще есть?" - просто обновляем контейнер, где находится форма. 

CREATE PROCEDURE [dbo].[fm_watchpromo_saveItem]
   @username nvarchar(256), 
   @itemID nvarchar(256),
   @parameters ExtendedDictionaryParameter READONLY	   
AS
BEGIN	
	-- SELECT 1 
	select 1 Result, ' ' Msg, '.watchpromoCont' RefreshContainer
END

Посмотреть как это работает можно на нашем блоге https://falconspace.ru/blog/tz-na-sozdanie-sistemy-ili-sayta---prosto-o-slozhnom

Falcon Space - функциональная веб-платформа разработки на узком стеке MS SQL/Bootstrap. Вводная по Falcon Space
Насколько полезной была статья?

Google поиск по нашей документации

Выгода от использования Falcon Space

В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Нужна бесплатная консультация?
Планируете делать веб-проект?
Сайт использует Cookie. Правила конфиденциальности OK