Задать вопрос
@den94ka

Как активировать визор в Яндекс Метрике на PHP?

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

Вот код для создания обычного счетчика:
$data = array(
            'site'      => "$url",
            'name'    => "$name",
            'oauth_token' => 'TOKEN'
        );
        $url = "http://api-metrika.yandex.ru/counters";
        $content = json_encode($data);
 
        $curl = curl_init($url);
        curl_setopt($curl, CURLOPT_HEADER, false);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_HTTPHEADER,
            array("Content-type: application/json"));
        curl_setopt($curl, CURLOPT_POST, true);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $content);
 
        $json_response = curl_exec($curl);
 
        $status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
 
        if ( $status != 200 ) {
            die("Error: call to URL $url failed with status $status, response $json_response, curl_error " . curl_error($curl) . ", curl_errno " . curl_errno($curl));
        }
 
        curl_close($curl);


Все работает и счетчик создается. Вот код, который пытается добавить веб визор и карту кликов:

$code_options = array(
            'clickmap' => '1',
            'visor' => '1'
        );
        $c_options = json_encode($code_options);
        $data = array(
            'site'      => "$url",
            'name'    => "$name",
            'code_options' => "$c_options",
            'oauth_token' => 'TOKEN'
        );
        $url = "http://api-metrika.yandex.ru/counters";
        $content = json_encode($data);
 
        $curl = curl_init($url);
        curl_setopt($curl, CURLOPT_HEADER, false);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_HTTPHEADER,
            array("Content-type: application/json"));
        curl_setopt($curl, CURLOPT_POST, true);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $content);
 
        $json_response = curl_exec($curl);
 
        $status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
 
        if ( $status != 200 ) {
            die("Error: call to URL $url failed with status $status, response $json_response, curl_error " . curl_error($curl) . ", curl_errno " . curl_errno($curl));
        }
 
        curl_close($curl);


Этим кодом счетчик тоже создается, но веб визор и карта кликов не активируются.
Что я делаю не так? Может не правильно понял тип "структура" в документации Яндекс Метрики?
  • Вопрос задан
  • 2939 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
Melkij
@Melkij
DBA для вашего PostgreSQL?
Не думаю, что code_options должен быть вторично закодирован в JSON.
У метрики апи местами очень странное, но не настолько.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽