Общая информация

Что такое bbq.money?

Видео уроки по работе с сервисом:

Использование bbq.money

Wordpress плагин

Как работает система распределения блоков в статье? Это адаптивная система, то-есть она равномерно заполняет статью. Если в статье есть только один блок - то он становится по середине, если 2-а, то они делят статью на три части, если 3-и блока - на четыре и так дальше.

Не синхронизируется плагин, что делать? Чаще всего не получается синхронизировать плагин по 2-м причинам:

  1. Для синхоронизации нужно создать хоть одно дефолтное рекламное объявление для сайта, который вы пытаетесь синхронизировать.
  2. Неверно указан токен. Взять его нужно в вашей копии скрипта на странице "Профиль".
  3. Неверно указан домен. Убедитесь, что вы указали домен, на котором у вас установлен скрипт BBQ.
  4. Неверно указан протокол домена http, если у вас установлен SSL сертфикат, то домен должен быть указан с https.

Совместимость с другими плагинами. Плагин BBQ не совместим с плагинами минификации кода типа "Autoptimize", если вы используете такой плагин, то исключите файлы плагина BBQ от минификации. Остальных несовместимостей не замечено.

Парковка доменов

Суть парковки домена в том, что припаркованный домен должен стать зеркалом основного домена.

  1. Для привязки домена к хостингу, необходимо на текущих DNS-серверах домена добавить две записи (заменить существующие): где 123.123.123.123 — это IP-адрес сервера хостинга.
  2. В центре сертификации Let’s Encrypt - сгенерировать сертификат для нового домена. Или сделать это с помощью  другого центра сертификации.
  3. Для NGINX - прописать в конфигурации новый виртуальный сервер с root основного проекта и соответствующими настройками для SSL. Не забыть настроить редирект с http на https для нового домена
        server {
           listen 443 ssl http2;
           listen [::]:443 ssl http2;
           server_name new.domain www.new.domain;
           root /var/www/project/;
           error_log /var/log/nginx/new.domain.error.log;

           # инклюдим настройки для нового сертификата
           include global/ssl_starinform.conf;                           
           location / {
               try_files $uri $uri/ /index.php?$args;
           }
           
           location ~* \.(css|png|jpg|jpeg|gif|ico|ttf)$ {
               expires max;
               log_not_found off;
               access_log off;
           }

           location ~ \.php$ {
               try_files $uri =404;
               fastcgi_split_path_info ^(.+\.php)(/.+)$;
               fastcgi_index index.php;
               fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
               fastcgi_buffer_size 8k;
               fastcgi_buffers 8 64k;
               fastcgi_busy_buffers_size 64k;
               fastcgi_temp_file_write_size 64k;
               fastcgi_pass php;
               fastcgi_read_timeout 300;
               include fastcgi_params;
            }

            location ~ /\.(ht|svn|git) {
                deny all;
            }
        }

Если используется связяка Nginx+Apache - отрабатываем SSL на стороне nginx и дальше проксируем запросы на Apache. Так же не забываем про редирект запросов с http на https.

        server {
            server_name domain.new www.domain.new;
            listen 443;
            set $root_path /var/www/project;
            ssl on;
            ssl_certificate         /path_with_ssl;
            ssl_certificate_key     /path_with_private_key;

            location / {
                add_header 'Access-Control-Allow-Credentials' 'true';
                add_header 'Access-Control-Allow-Methods' 'GET';
                proxy_pass http://server_ip:apache_port;
                proxy_redirect http://server_ip:apache_port/ /;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Real-IP $remote_addr;
            }

            location ~* ^/(webstat|awstats|webmail|myadmin|pgadmin)/ {
                proxy_pass http://server_ip:apache_port;
                proxy_redirect http://server_ip:apache_port/ /;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Real-IP $remote_addr;
            }

            location @fallback {
                proxy_pass http://server_ip:apache_port;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Real-IP $remote_addr;
            }

        }
                    
На стороне Apache - создаем соответствующий VirtualHost
    <VirtualHost server_ip:apache_port>
        ServerName domain.new
        CustomLog /var/log/domain.new.access.log combined
        DocumentRoot /var/www/project
        ErrorLog /var/log/domain.new.error.log
        ServerAdmin info@domen.new
        ServerAlias www.domain.new
        SuexecUserGroup www-data www-data
        AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml
        AddType application/x-httpd-php-source .phps
        SetEnvIf X-Forwarded-Proto https HTTPS=on
        php_admin_value open_basedir "/var/www/data:."
        php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f info@domain.new"
        php_admin_value upload_tmp_dir "/var/www/mod-tmp"
        php_admin_value session.save_path "/var/www/mod-tmp"
    </VirtualHost>

Проблемы при выводе рекламных блоков

Огромные отступы от рекламных блоков или 2-а рекламных блока наезжают друг на друга. Иногда в зависимости от верстки шаблона может возникнуть необходимость убрать рекламному блоку css стили "float: left/right" или же добавить "clear:both", или и то и другое вместе. В общем проблема в верстке сайта.

Коробочная версия

Требования

Перед покупкой мы настоятельно рекомендуем ознакомиться с требованиями и инструкцией по установке.

Также отметим, что мы старались сделать установку и обновление системы похожими на Wordpress.

  1. Для нормальной установки и работы сервиса используйте выделеный сервер или VPS
  2. Также настоятельно рекомендуется использовать сервер с SSD накопителями, это позволит достигнуть максимальной скорости отдачи рекламы.
  3. Таблица параметров сервера в зависимости от суммарного дневного трафика всех сайтов.
    Параметры, при которых приложение будет работать максимально эффективно
    Уникальных посетителей в день Ядер ОЗУ SSD
    ~20000 2 4 10
    ~50000 4 4 20
    ~100000 8 8 30
    ~200000 16 16 50
    ~300000 32 32 100
  4. Минимальные требования к серверам:
    • Операционная система Linux.
    • 2 ядра процессора.
    • 2 GB оперативной памяти.
    • 10 GB памяти типа SSD.
    • Установленные PHP 7.1, MySQL версии 5.7, Apache.
    • Установлено расширение Ioncube последней версии. При этом IonCube должен быть установлен как для веб версии PHP так и для cli PHP.

Рекламные объявления по умолчанию

Дефолтные рекламные объявления должны быть сторонней рекламной сетью, например контекст или сторонние тизерные сети.

Если сервер будет недоступен, а рекламное объявление по умолчанию будет тизеркой BBQ, то картинки не будут показываться и клик по ссылке не будет отрабатываться.

Если вы не хотите отображать дефолтное рекламное объявление при работающем сервере, то просто поставьте ему таргет "Исключить пути страниц" домен вашего сайта. Таргетинг при показе дефолтной рекламы не работает, поэтому рекламное объявление по умолчанию будет показываться только при неработающем сервере.

TDS

При создании TDS необходимо добавить потоки скриншот

Каждому потоку можно задать условия таргетинга скриншот

Так же необходимо выбрать поток куда отправляем пользователей, которые не подошли под условия таргетинга. скриншот

TDS можно привязывать в Текстовых блоках, Своих Виджетах и Тизерах.

Многопользовательность

Задача, которую решает многопользовательский режим- предоставление доступа монетизатору для настройки монетизации сайта, но без возможности лить траффик на свои связки, использовать коды блоков из своего личного кабинета в рекламных сетях (Adsense, РСЯ).

  1. Теперь есть две роли- «администратор» и «монетизатор».
  2. Администратор имеет самый полный функционал сервиса, задает все настройки и может создавать пользователей с ролью «монетизатор».
  3. Пользователь с ролью “монетизатор” не может редактировать поля в разделе “Настройки” во вкладках: - модерация; - рекламные домены; - типы рекламных блоков; - Adsense.
  4. Контроль потоков.Все потоки должны проходить модерацию администратором. Если поток не промодерирован админом, то он не будет показываться при выборе потока в момент создания креатива.
  5. Контроль блоков РСЯ. В настройках каждого сайта администратор может указать ID сайта в РСЯ. Монетизатор эту информацию может только просматривать. Если ID сайта в РСЯ совпадает с ID, указанным в рекламном объявлении, то креатив сохраняется и продолжает настраиваться как обычно. Если ID сайта в РСЯ не совпадает с ID, указанным в рекламном объявлении, то выводится сообщение «РСЯ ID проекта не совпадает с РСЯ ID рекламного объявления» Если РСЯ ID в настройках сайта не задано - соответствие РСЯ блоков не производится.
  6. Контроль блоков Adsesne. Подмена блоков Adsense невозможна, так как ca-pub-id аккаунта Adsense задается администратором и не может изменяться/добавляться/удаляться монетизатором.
  7. Контроль блоков Oblivki. Добавить дубль сайта в новом аккаунте (хитрого монетизатора) в тизерной сети без удаления на старом аккаунте (владельца сайта) невозможно.

TDS можно привязывать в Текстовых блоках, Своих Виджетах и Тизерах.

Установка системы

Первым делом вам нужен сервер, на котором будет работать ваша копия bbq. Мы не рекомендуем устанавливать bbq на поддомен, советуем использовать для этого отдельный домен, подойдет абсолютно любой.

Если сервер у вас уже есть, то вы можете приступить к установке системы. Это можно сделать 2-мя способами:

Первый способ

Использовав файл install.php, который вам пришел на почту после совершения покупки. Для этого:

  1. Скачайте архив install.zip себе на компьютер.
  2. Загрузите скачаный архив на сервер в корневую директорию сайта.
  3. Распакуйте его. На сервере должен появиться файл install.php.
  4. Проверьте, чтоб этот файл имел права 644, а владелец файла должен совпадать с именем пользователя, от имени которого работает PHP, скрипт установщика подскажет, если это не так.
  5. Удалите архив.
  6. Создайте новую базу данных и пользователя к ней.
  7. В браузерной строке перейдите по адресу http://ВАШ-ДОМЕН.ru/install.php.
  8. Далее пройдите 3-и шага по установке системы.

Второй способ

Скачивание и распаковка архива bbq.zip в личном кабинете

  1. Перейдите в личный кабинет на сайте bbq.money. В таблице "Лицензии" будут находиться все доступные вам лицензии на установку bbq. Выберите нужную вам лицензию и нажмите кнопку .
  2. Начнется скачивание архива bbq.zip вам на компьютер.
  3. Загрузите скачаный архив на сервер в корневую директорию сайта.
  4. Распакуйте его и затем удалите.
  5. Установите права 777 на папки "assets", "runtime" и "uploads".
  6. Создайте новую базу данных и пользователя к ней.
  7. Далее откройте файл config.php.
  8. Впишите в соответствующие поля настройки к базе данных.
  9. Скопируйте токен из таблицы "Лицензии" личного кабинета и также впишите его в файл config.php.

Настройка веб сервера

!!! Отключите любое кеширование javascript файлов на сервере !!!

Приложение, установленное по инструкциям, приведённым выше, будет работать сразу как с Apache, так и с Nginx под Linux с установленным PHP 7.1.

Рекомендуемые настройки Apache

Добавьте следующее в httpd.conf Apache или в конфигурационный файл виртуального хоста. Не забудьте заменить path/to/basic/web на корректный путь к basic/web.

# Устанавливаем корневой директорией "basic/web"
DocumentRoot "path/to/basic/web"

<Directory "path/to/basic/web">
    RewriteEngine on

    # Если запрашиваемая в URL директория или файл существуют обращаемся к ним напрямую
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    # Если нет - перенаправляем запрос на index.php
    RewriteRule . index.php

    # ...прочие настройки...
</Directory>

Рекомендуемые настройки Nginx

PHP должен быть установлен как FPM SAPI для Nginx. Используйте следующие параметры Nginx и не забудьте заменить path/to/basic/web на корректный путь к basic/web и mysite.local на ваше имя хоста.

server {
    charset utf-8;
    client_max_body_size 128M;

    listen 80; ## listen for ipv4
    #listen [::]:80 default_server ipv6only=on; ## слушаем ipv6

    server_name mysite.local;
    root        /path/to/basic/web;
    index       index.php;

    access_log  /path/to/project/log/access.log;
    error_log   /path/to/project/log/error.log;

    location / {
        # Перенаправляем все запросы к несуществующим директориям и файлам на index.php
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include fastcgi.conf;
        fastcgi_pass   127.0.0.1:9000;
        #fastcgi_pass unix:/var/run/php5-fpm.sock;
    }
}

Используя данную конфигурацию установите cgi.fix_pathinfo=0 в php.ini чтобы предотвратить лишние системные вызовы stat().

Учтите, что используя HTTPS необходимо задавать fastcgi_param HTTPS on; чтобы Yii мог корректно определять защищенное соединение.

Возможные проблемы

  • При обновлении возникает ошибка Error: SQLSTATE[HY000]: General error: 2006 MySQL server has gone away The SQL being executed was: SHOW FULL COLUMNS FROM `migration`

    Попробуйте изменить конфигурацию Apache, установите следующие значения:

    • wait_timeout = 600
    • max_allowed_packet = 64M
  • memory_limit недостаточный, установите ему значение в файле php.ini минимум 128M.

Инструкция по настройке сервера для Timeweb

Необходимо использовать сервер с ОС Ubuntu 16.04 и панелью VestaCP. Мы настоятельно рекомендуем хостера Timeweb.

Настройка:

1. Обновление PHP до версии 7.1.

Для этого выполните следующие команды на сервере:

sudo apt-get update
sudo apt-get install python-software-properties
apt-get install software-properties-common
sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
[enter]
sudo apt-get update
sudo apt-get install php7.1
sudo a2dismod php7.0
sudo a2enmod php7.1
sudo service apache2 restart

2. Установка отсутствующих компонентов

Большинство компонентов можно установить выполнив:

sudo apt-get install openssl php7.1-ctype php7.1-fileinfo php7.1-curl php7.1-dom php7.1-mbstring php7.1-pdo php7.1-pdo-mysql php7.1-zip

Установка ionCube декодера производится отдельно:

wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
tar -zxvf ioncube_loaders_lin_x86-64.tar.gz
cp ioncube/ioncube_loader_lin_7.1.so /usr/lib/php/20160303
echo 'zend_extension=/usr/lib/php/20160303/ioncube_loader_lin_7.1.so' >> /etc/php/7.1/apache2/php.ini
echo 'zend_extension=/usr/lib/php/20160303/ioncube_loader_lin_7.1.so' >> /etc/php/7.1/cli/php.ini
rm -r ioncube
rm ioncube_loaders_lin_x86-64.tar.gz
sudo service apache2 restart

3. Настройка домена и зеркал

3.1 Добавить домен в VestaCP

Перед переносом домена его необходимо добавить в разделе WEB.

Обратите внимание, в настройках домена есть поле Обработка Proxy, из него необходимо исключить значение js.

Зеркала

Если вам необходимо добавить зеркала для домена, вы можете расширить поле Алиасы добавив с новой строки записи.

Например, для создаваемого домена site.ru и зеркала site2.ru, это поле будет выглядить таким образом:

www.site.ru
site2.ru
www.site2.ru

3.2 Необходимо направить домен на сервер. Это можно сделать двумя способами:

Способ 1

Разместите домен в панели управления аккаунтом через кнопку «Перенести домен».

На стороне текущего регистратора или хостинг-провайдера укажите для доменного имени NS-серверы, в случае Timeweb это:

ns1.timeweb.ru
ns2.timeweb.ru
ns3.timeweb.org
ns4.timeweb.org

В результате Вы сможете управлять ресурсными записями домена (MX, А, TXT, CNAME и др.) через панель Timeweb в разделе «Домены и поддомены».

После изменения NS-серверов доменное имя будет недоступно в течение 3-24 часов. Для доменного имени по умолчанию будут указаны ресурсные записи Timeweb.

Способ 2

На стороне держателя NS-серверов, указанных для домена, внесите в качестве А-записи IP-адрес одного из ваших серверов. IP-адрес Вы можете найти на главной странице сервера, в блоке «Список используемых IP-адресов».

Добавлять доменное имя в панель управления аккаунтом в этом случае не нужно.

3.3 Сертификаты (панель VestaCP)

Предварительно измените имейл для администратора по адресу /edit/user/?user=admin на ваш собственный.

Только после того, как информация ДНС серверов обновится и домен будет направлен на сервер, необходимо вновь перейти в настройки домена и поставить галочку для чекбоксов "Поддержка SSL" и "Поддержка Lets Encrypt" и нажать кпоку сохранить.

Таким образом будут сгенерированы сертификаты для основного домена и его зеркал.

Регламент работ

  1. Решение любых проблем/вопросов осуществляется через тикеты. Не нужно писать напрямую разработчикам в телеграмм - это нарушает весь процесс разработки и работу техподдержки. В итоге сдвигаются сроки решения проблем других пользователей, а также сроки разработки нового функционала.
  2. Если сервис перестал работать полностью (нельзя зайти в систему/не отображается реклама на сайте) - писать напрямую в телеграмме вы можете Арчилу Абуладзе. При этом обязательно заводите тикет и в сообщении сразу указывайте его номер.
  3. На каждую проблему/вопрос должен заводиться отдельный тикет. Не нужно заводить тикет по одной проблеме и там же описывать другую.
  4. Для решения любого тикета нам необходимо иметь доступ к коробке BBQ и SSH. Поэтому указывайте эти данные сразу же при создании тикета. Если создаете несколько тикетов сразу - указывайте доступы в каждом. При каких проблемах нам нужны дополнительные доступы - можно прочитать в разделе «Необходимые доступы для решения разных проблем».
  5. При создании тикета об ошибке всегда прилагайте скриншоты, по которым будет видно, в каком разделе присутствует ошибка, а также подробно описывайте последовательность своих действий, которые привели к ошибке. Все это поможет решить ваш вопрос быстрее.
  6. Если проблема еще не решена, то не нужно менять доступы к коробке/админке сайта/SSH, потому что это тормозит решение проблемы.
  7. Обратите внимание, что при смене сервера меняется его IP-адрес, который нужно обязательно сообщить техподдержке, чтоб через определенный период времени вы не получили сообщение с ошибкой лицензии.
  8. Время работы техподдержки- с пн по пт с 9 до 18 по мск; сб, вс, государственные праздничные дни - выходной.

Необходимые доступы для решения разных проблем

Описание ошибки Информация, необходимая для решения проблемы
Серверные ошибки: проблемы при настройке сервера, переезд на другой сервер Коробка (url, логин, пароль), полный доступ SSH
Проблемы с доступностью сайта/страниц: при установке плагина BBQ сайт или отдельные страницы сайта становятся недоступны (появляются уведомления в панели Яндекс Вебмастер о том, что страницы недоступны, выпадают из индекса) Коробка (url, логин, пароль, SSH), WP (логин,пароль, FTP c доступом к логам (рутовский доступ)), WP урлы, где не отображаются страницы.
Некорректное отображение рекламы на сайте: рекламные блоки отображаются не так, как настроено в системе; вписываются в элементы оформления Коробка (url, логин, пароль, SSH), WP (логин,пароль, FTP доступ), WP урлы, где не верно отображаются блоки.
Вопрос по функционалу системы: как работает система, как настраивается реклама, возможности системы Никакие доступы не нужны.
Ошибка в работе системы: система работает неправильно, какие-то настройки не срабатывают, данные загружаются некорректно (есть различия с другими сервисами или партнерками) Предоставить обширное описание проблемы, чтоб можно было воспроизвести шаг за шагом. Если таковой возможности нет, максимально предоставить доступы либо информативные скриншоты (если ПП), на которых все будет предельно понятно. Также необходимы доступы: Коробка (url, логин, пароль, SSH).
Проблемы с установкой/синхронизацией/обновлением плагина: не получается установить плагин BBQ, автоматическая синхронизация не работает, при обновлении плагина возникает ошибка и обновление не загружается Коробка (url, логин, пароль, SSH), WP (логин,пароль, FTP доступ)
Другое: проблема, которая не подпадает ни под одну вышеперечисленную категорию Коробка (url, логин, пароль), полный доступ SSH