Задать вопрос
@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);


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

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

Похожие вопросы