Banner Rotation in 1C-Bitrix: Weights, A/B Tests & Custom Solutions

Ad banners stagnating? Users see the same banner for weeks? That is a classic symptom of misconfigured ad block rotation. Without rotation, you lose control over reach: a static banner quickly becomes stale, and A/B tests become impossible. We have been solving this on 1C-Bitrix for over 10 years —

Our competencies:

Frequently Asked Questions

Ad banners stagnating? Users see the same banner for weeks? That is a classic symptom of misconfigured ad block rotation. Without rotation, you lose control over reach: a static banner quickly becomes stale, and A/B tests become impossible. We have been solving this on 1C-Bitrix for over 10 years — more than 50 rotation projects. We configure both the built-in Advertising module and custom solutions for complex scenarios. Proper weight tuning can save up to 30% of your budget — a real result from our clients. Get a free engineer consultation — we will assess your project at no cost.

How to Configure Banner Rotation in 1C-Bitrix?

Rotation configuration depends on flexibility and load requirements. We cover two approaches: using the Advertising module and a custom solution on information blocks.

Why Rotation Fails: Typical Mistakes

Most issues stem from caching. If the advertising.banner component is cached, the first visitor locks a banner, and all subsequent viewers see the same one. Another mistake is incorrect weights: the sum of weights does not equal 100, skewing distribution. High server load is another pain point — statistics are written on every impression. We solve this by disabling statistics or aggregating them via cron. According to our practice, these three mistakes occur in 80% of projects.

Option 1: Advertising Module

Architecture: Contract → Banner → Place. A place is created in the admin panel with a type (TEXT, HTML, BANNER) and linked to a site area. Key tables: b_adv_banner, b_adv_contract, b_adv_type, b_adv_stat_day.

Example component call:

$APPLICATION->IncludeComponent('bitrix:advertising.banner', '.default', [ 'TYPE' => 'main_slider', 'SHOW_COUNT' => 1, 'CACHE_TYPE' => 'N', ]); 

According to the documentation 1C-Bitrix: Advertising Module, caching must be disabled for rotation.

Weighted rotation is based on the WEIGHT field in b_adv_banner. If two banners have weights 60 and 40, the first shows in 60% of cases. The module uses a weighted random selection on each request — this creates database load. For high-traffic projects (10,000+ impressions per minute), we recommend disabling statistics or aggregating them through a queue.

Option 2: Custom Solution on Information Blocks

If the Advertising module is missing or lacks flexibility, we implement rotation via information blocks plus JavaScript. PHP outputs all active banners for a position as JSON, and the client picks a random banner. The advantage: PHP component caching works, rotation happens client-side, reducing server load. A custom solution can be up to 3 times faster in server response than the Advertising module due to caching.

class BannerRotator { constructor(banners) { this.banners = banners; this.current = Math.floor(Math.random() * banners.length); } getNext() { const banner = this.banners[this.current]; this.current = (this.current + 1) % this.banners.length; return banner; } } const rotator = new BannerRotator(window.bannerData['main_slider']); setInterval(() => displayBanner(rotator.getNext()), 5000); 
When to choose a custom solution If you need regional rotation, device segmentation, or integration with Google Optimize — custom gives full freedom. Implementation time: from 5 business days.

How to Set Up A/B Testing of Banners in Bitrix?

The Advertising module supports A/B testing by splitting traffic across contracts. Create two banners with 50/50 weights, after 7–14 days analyze statistics at /bitrix/admin/adv_stat.php, and keep the winner. For deep segmentation by device or region, we integrate A/B testing with external tools.

When Should You Use a Custom Rotation Solution?

A custom solution is justified when the built-in module cannot handle non-standard requirements: complex segmentation logic, performance constraints, or integration with external platforms. In our estimation, custom is more effective in 30% of projects.

What Our Work Includes: Step-by-Step Plan

  1. Diagnose current scheme and server loads
  2. Design architecture (Advertising module or custom)
  3. Configure contracts, banners, weights, and segmentation
  4. Integrate with external services (Google Optimize, CDEK, YooMoney)
  5. Test on different devices and browsers
  6. Deliver documentation and train managers

Comparison of Rotation Methods

Parameter Advertising Module Custom Solution
Setup complexity Medium (admin panel) High (requires PHP development)
Flexibility Limited Full
Performance Medium (SQL queries) High (cache + client side)
A/B testing Built-in Requires integration
Regional targeting Basic (via conditions) Any (via API)

Typical Mistakes in Rotation Setup

Mistake Cause Solution
Banner does not show Component caching enabled CACHE_TYPE = N
Banners appear equally often despite different weights Sum of weights not normalized Normalize weights to sum to 100
High server load Statistics written on each impression Disable ADV_STAT or aggregate via cron
Empty ad slot No contract assigned or wrong place type Check links in admin panel

Timeline and Cost

A typical project takes 3 to 10 business days. Cost is calculated individually after analyzing your configuration. Order rotation setup — get stable banner performance and budget savings.

Guarantees

We offer a guarantee on all rotation work. If issues arise within a month after delivery, we fix them free of charge. Our experience: 10+ years on the market, 50+ projects implemented. Contact us for a consultation.