Rinat's Blog

Блог о моих мыслях и не только...

Добавление Яндекс.Метрики в Octopress

| Comments

В начале пользования octopress я не обращал внимания на строчку google_analytics_tracking_id в _config.yml, т.к. в самом начале создания блога метрика была не важна. Но по прошествии нескольких дней захотелось установить счетчик, но не Google, а наш православный Yandex. В коробке этого функционала не оказалось, так что решил немного допилить octopress. В принципе ничего сложного нет.
Для начала необходимо добавить переменную в _config.yml, куда, собственно, и будет вписываться id Яндекс.Метрики:

[_config.yml]
1
2
# Yandex Metrica
yandex_metrica_tracking_id: здесь_ваш_id

Затем надо создать yandex_metrica.html в source/_includes/ со следующим содержимым:

(yandex_metrica.html) download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{% if site.yandex_metrica_tracking_id%}
<!-- Yandex.Metrika counter -->
<script type="text/javascript">
(function (d, w, c) {
    (w[c] = w[c] || []).push(function() {
        try {
            w.yaCounter{{ site.yandex_metrica_tracking_id }} = new Ya.Metrika({id:{{ site.yandex_metrica_tracking_id }}, enableAll: true});
        } catch(e) {}
    });

    var n = d.getElementsByTagName("script")[0],
        s = d.createElement("script"),
        f = function () { n.parentNode.insertBefore(s, n); };
    s.type = "text/javascript";
    s.async = true;
    s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//mc.yandex.ru/metrika/watch.js";

    if (w.opera == "[object Opera]") {
        d.addEventListener("DOMContentLoaded", f);
    } else { f(); }
})(document, window, "yandex_metrika_callbacks");
</script>
<noscript><div><img src="//mc.yandex.ru/watch/{{ site.yandex_metrica_tracking_id }}" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->
 {% endif %}

Ну и последнее, надо добавить строчку include yandex_metrica.html в source/_includes/head.html.

Comments