Moscow Calling: использование скрипта Аллока Аналитика с учетом GeoIP



Внимание! Этот материал содержит строчки кода, поэтому, если у вас классическое гуманитарное образование, но жизнь заставила податься в интернет-маркетинг, лучше позовите к монитору родителей программиста.

 

 

Нам частно задают вопрос: "У меня клиенты по всей России, как я могу использовать ваш скрипт, учитывая регионы, у вас же городские номера? Может быть 8-800?" Технически, мы можем выделить и 8-800 и его аналог 8-804, но это сильно удорожает использование, вы сами знаете, сколько стоит поддержка хотя бы одного номера 8-800. А технология Аллоки устроена так, что на один сайт могут потребоваться десятки, а то и сотни номеров.

 

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

 

Этот функционал вы можете реализовать самостоятельно на своем сайте. 

 

Москва звонит

 

Владельцам интернет-ресурса BeUnique.ru понадобилось отслеживать звонки посетителей только из Москвы. Для реализации данной возможности они сделали так, чтобы скрипт Аллока Аналитика для размещения на сайте срабатывал только в случае, если посетитель зашёл на их сайт с московского IP-адреса.

 

Принцип работы

 

Если у вас на сайте уже есть механизм определения региона посетителя, то от вас практически не потребуется никаких дополнительных усилий для отслеживания звонков из определённых населённых пунктов. Вам просто необходимо выводить наш код для сайта только в случае, если посетитель пришёл из интересующего вас региона.

 

Рассмотрим данный механизм на примере технологии PHP, которая является наиболее распространённой в интернете.

 

Допустим, вы выводите код Аллока Аналитика в шаблоне своего сайта:

 

<!DOCTYPE>
<html>
    <head>
        <script type="text/javascript">
            var _alloka = {
                objects: {
                    'fc53c5690210c791': {
                        block_class: 'phone_alloka'
                    }
                },
                trackable_source_types: ['typein', 'referrer', 'utm']
            };
        </script>
        <script src="https://analytics.alloka.ru/v4/alloka.js" type="text/javascript"></script>
    </head>

    <body>
        <div class="phone_alloka">8 800 000 00 00</div>
    </body>
</html>

 

Если у вас есть переменная ($visitor_city в примере ниже), в которой выводится название города посетителя, то вы можете показывать скрипт Аллока Аналитика только посетителям из Москвы подобным способом:

 

<!DOCTYPE>
<html>
    <head>
        <?php if ($visitor_city == 'Москва') : ?>
        <script type="text/javascript">
            var _alloka = {
                objects: {
                    'fc53c5690210c791': {
                        block_class: 'phone_alloka'
                    }
                },
                trackable_source_types: ['typein', 'referrer', 'utm']
            };
        </script>
        <script src="https://analytics.alloka.ru/v4/alloka.js" type="text/javascript"></script>
        <?php endif; ?>
    </head>

    <body>
        <div class="phone_alloka">8 800 000 00 00</div>
    </body>
</html>

 

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

 

Альтернативы

 

Если же данного функционала (определение региона посетителя) у вас ещё нет, то необходимо будет либо использовать внешний интернет-сервис для определения географического положения IP-адреса, либо внедрять на ваш сайт специальную систему определения местоположения.

 

Для первого варианта мы рекомендуем использовать Alloka API. Обращаться к нему вы сможете через любую современную технологию для построения веб-сайтов.

 

Для второго варианта, по нашему мнению, наиболее подходящим будет встраиваемый программный модуль Sypex Geo для PHP. Если же вы используете Ruby, то лучшим выбором для вас будет расширение geocoder. Аналогичные решения существуют для любой современной технологии.

 

Определение местоположения с помощью Alloka API

 

Мы расскажем вам про наиболее общий вариант – с использованием Alloka API. Использовать данный способ можно с любой технологией. Местоположение получается путём HTTP-запроса к API, с передачей ему IP-адреса пользователя.

 

Пример запроса: https://api.alloka.ru/v1/geo/ip/83.69.201.12

 

В результате этого запроса вы получите Geo-данные в ответ:

{
    "country_code": "RU",
    "country": "RUSSIAN FEDERATION",
    "region": "MOSCOW CITY",
    "city": "MOSCOW"
}

 

В ответе от сервера вы увидите поле city. Это и есть город посетителя вашего сайта.

 

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

 

Допустим, у вас имеется несколько объектов в системе Аллока Аналитика. Один московский, один ульяновский и один фиксированный 8800 для остальных городов. Ниже приведён приблизительный пример на языке PHP показа скрипта Аллока Аналитика в зависимости от города посетителя вашего сайта, с определением местоположения по IP-адресу.

 

PHP-код:

 

<?php
// Получаем IP-адрес посетителя вашего сайта
$ip = $_SERVER['REMOTE_ADDR'];

// Составляем URL запроса к Alloka API
$url = "https://api.alloka.ru/v1/geo/ip/{$ip}"; 

// Указываем ваш API-ключ авторизации в Alloka API
$api_key = "Sz7RuhaiYUJHEh6PFgAAMGAJ4y18no5y";

// Инициализация запроса
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 1);

// Авторизация
curl_setopt($ch, CURLOPT_USERPWD, $api_key . ":");

// Производим запрос и закрываем соединение
$response = curl_exec($ch);
curl_close($ch);

// Данная переменая будет содержать название города посетиля.
// Либо пустую строку, если определить город не вышло.
$visitor_city = '';

// Обработка ответа от Alloka API
if ($response != null)
{
    $json = @json_decode($response);

    if ($json != null && property_exists($json, 'city')) {
        $visitor_city = $json->city;    
    }
}

// Определяем какой объект будем использовать в зависимости от города посетителя
// Также зададим подходящий формат отображения телефонного номера
switch ($visitor_city) {
    // Московский объект
    case 'MOSCOW':
        $alloka_oid = 'ИДЕНТИФИКАТОР_МОСКОВСКОГО_ОБЪЕКТ';
        $alloka_format = '+7 (#{XXX) #{XXX}-#{XX}-#{XX}';
    break;

    // Ульяновский объект
    case 'ULYANOVSK':
        $alloka_oid = 'ИДЕНТИФИКАТОР_УЛЬЯНОВСКИЙ_ОБЪЕКТ';
        $alloka_format = '+7 (#{XXXX) #{XX}-#{XX}-#{XX}';
    break;

    // Допустим, это будет объект на тарифе 8800.
    // На случай, если посетитель пришёл не из тех городов, для которых вы создали объекты с динамическим трекингом
    default:
        $alloka_oid = 'ИДЕНТИФИКАТОР_ОБЪЕКТА_ДЛЯ_ДРУГИХ_ГОРОДОВ';
        $alloka_format = '8 (#{XXX) #{XXX}-#{XX}-#{XX}';
    break;
}
?>
<!DOCTYPE>
<html>
    <head>
        <script type="text/javascript">
            var _alloka = {
                objects: {
                    '<?php echo $alloka_oid; ?>': {
                        block_class: 'phone_alloka',
                        format: '<?php echo $alloka_format; ?>'
                    }
                },
                trackable_source_types: ['typein', 'referrer', 'utm']
            };
        </script>
        <script src="https://analytics.alloka.ru/v4/alloka.js" type="text/javascript"></script>
    </head>

    <body>
        <div class="phone_alloka">8 800 000 00 00</div>
    </body>
</html>

 

Итого

 

Целью данной статьи было показать перспективы расширенного использования скрипта Аллока Аналитика для размещения на сайте. Вы можете также применять и другие сценарии. Например, можно на разных страницах вашего сайта выводить скрипты отслеживания для разных объектов.

 

Допустим, вы создали в личном кабинете Аллока Аналитика два объекта: “Сайт-Главная” и “Сайт-Контакты”. В свойствах объектов в личном кабинете указываются их идентификаторы.

 

 

 

Ниже приведём пример, на котором показано, как отслеживать звонки на разных страницах по отдельности:

 

<?php
$page_title = 'Наш главный партнёр'; // В этой переменной Вы выводите заголовок страницы
$objects_ids = array(
    'Главная' => '8d2066f490e630cc',
    'Контакты' => '1d2066f490e630c2',
    'Наш главный партнёр' => '3d2066f490e630c4',
    'Ещё один партнёр' => '5d2066f490e630c6'
);
$object_id = $object_ids[$page_title];
?>
<!DOCTYPE>
<html>
    <head>
        <script type="text/javascript">
            var _alloka = {
                objects: {
                    '<?= $object_id ?>': {
                        block_class: 'phone_alloka'
                    }
                },
                trackable_source_types: ['typein', 'referrer', 'utm']
            };
        </script>
        <script src="http://analytics.alloka.ru/v4/alloka.js" type="text/javascript"></script>
    </head>

    <body>
        <div class="phone_alloka">8 800 000 00 00</div>
    </body>
</html>

 

В коде выше рассматривается случай, когда вы создали 4 объекта для вашего сайта. Звонки с разных страниц сайта будут распределяться по соответствующим страницам.

 

Наша задача а разработке технологии - максимально соответствовать бизнес задачам - по анализу входящих звонков, по внедрению маркетинговых инструментов на основе телефонии, по повышению эффективности каждого контакта с клиентом.

 

Пишите нам на request@alloka.ru, описывайте свою бизнес-задачу и мы попробуем ее решить!

 

Приятного использования!