Что такое Яндекс Дзен
Яндекс Дзен — это сервис, который создаёт индивидуальную подборку материалов для конкретного пользователя на основе его предпочтений. По сути, Яндекс Дзен чем-то напоминает ленту любой социальной сети — новостные тизеры или краткие посты, изображения и видео, анонсы событий, обзоры мероприятий, статей и иных материалов, которые, возможно, будут интересны пользователю.
С точки зрения вебмастера, сервис позволяет сайту получать дополнительную аудиторию и трафик, а также монетизироваться за счёт пользователей, которые используют:
- Яндекс Браузер — подборка Дзен отображается при открытии новой вкладки в клиенте для дестопа, iPhone, смартфонов и планшетов на базе Android;
- мобильное приложение Яндекс и Yandex Launcher;
- браузер Mozilla Firefox для компьютера, если в нем установлены Визуальные закладки;
Какие преимущества даёт Яндекс Дзен авторам
Яндекс Дзен позволяет авторам получать дополнительную аудиторию и трафик на свой сайт, который, к тому же, можно дополнительно монетизировать. Подробнее:
- Расширение и вовлечение аудитории
- Пользователи, которые регулярно пользуются Яндекс Дзен, а также подписаны на канал, чаще видят новые публикации, по сути, становясь постоянными подписчиками.
Если канал становится популярным, его начинают видеть новые пользователи. - Монетизация канала
- Если ваш канал собирает больше 7 тысяч дочитываний статей в неделю, то он получает возможность дополнительной монетизации.
Также, каждый месяц самые популярные каналы Дзена получают дополнительную поддержку в продвижении и возможность подать заявку на спонсорский грант от Яндекса в размере полумиллиона рублей.
Как добавить свой сайт в Яндекс Дзен
Чтобы добавить свой сайт к каналу Яндекс Дзен, Вам нужно:
- Cоздать свой канал;
Канал будет привязан к тому аккаунту, под которым вы авторизованы в Яндексе. Рекомендую для отдельного проекта завести отдельный аккаунт.
- Подготовить специально размеченную ленту RSS (ниже есть плагин для WordPress);
- Добавить сайт в Яндекс Вебмастер из-под того аккаунта Яндекса, который является владельцем канала Дзен. Для этого, клик на логотип канала слева сверху, слева откроются настройки;
- Если сайт ещё не зарегистрирован, переходите в Яндекс Вебмастер и добавляете его;

- Подтверждаете право владения. Самый простой вариант — загрузить HTML-файл в корень сайта;

- Также, если сайт уже добавлен в Яндекс Вебмастер на другом аккаунте, просто делегируйте права на него на тот аккаунт, который является владельцем канала Яндекс Дзен;

- После успешного подтверждения прав владения сайтом переходите обратно в настройки канала и отправляете сайт на модерацию. Она может занять от 7 дней до нескольких недель.


Как настроить Яндекс Дзен для сайта
Чтобы пройти модерацию в Яндекс Дзен, нужен функционал или плагин, который создаст RSS-ленту.
Требования к оформлению
- Наличие не менее 50 публикаций в ленте;
- Каждая публикация должна иметь не менее 1 изображения с шириной не менее 400 пикселей;
- Рекомендуется вырезать из контента, попадающего в ленту, элементы с тегами, не поддерживающимися стандартами RSS, например
<iframe>,<style>,<script>. Сюда же относятся блоки вставки из соцсетей: Facebook, Twitter, Instagram и других, а также видеороликов из YouTube и Vimeo (их нужно оборачивать в тег<video>).
Список тематик Яндекс Дзена
- Авто
- Война
- Дизайн
- Дом
- Еда
- Здоровье
- Знаменитости
- Игры
- Кино
- Культура
- Литература
- Мода
- Музыка
- Наука
- Общество
- Политика
- Природа
- Происшествия
- Психология
- Путешествия
- Спорт
- Технологии
- Фотографии
- Хобби
- Экономика
- Юмор
Плагин WordPress для создания RSS для Яндекс Дзен
<?php
/*
Plugin Name: Sheensay Zen Yandex RSS Generator
Plugin URI: http://sheensay.ru.ru/?p=3478
Description: Генератор RSS для <a href="https://yandex.ru/support/zen/publishers/rss.html" >Яндекс Дзен</a> | <a rel="nofollow" target="_blank" href="/feed/zen">Ваша лента RSS тут</a>.
Version: 1.1.1
Author: Sheensay
Author URI: http://sheensay.ru.ru/?p=3478
License: GPLv2
Tag: sheensay_zen_yandex
*/
defined( 'ABSPATH' ) or exit;
final class Sheensay_Zen_Yandex {
// Рубрика
private $category = 'Общество';
// Указываем, что контент для всех возрастов
private $is_adult = 'nonadult';
// Текст копирайта под изображениями
private $copyright = '';
// Число записей в ленте RSS для Яндекс Дзен
private $posts_per_page = 50;
// Отсортируем посты по дате публикации
private $orderby = 'date';
// Исключённые рубрики
private $category__not_in = array(); // Указывайте ID рубрик через запятую, например array( 1, 3 )
// Типы записей, по умолчанию post
private $post_types = array( 'post' );
//private $post_types = array( 'post', 'page' );
// Ярлык ленты RSS для Яндекс Дзен
private $feed_url = 'zen';
function __construct() {
// Добавляем текст копирайта под изображениями
$this -> copyright = 'c ' . get_bloginfo( 'name' );
// Инициализатор RSS
add_action( 'init', array( $this, 'zen' ) );
// Метабоксы
add_action( 'add_meta_boxes', array( $this, 'metabox' ) );
add_action( 'save_post', array( $this, 'save' ) );
}
function metabox() {
$screens = $this -> post_types;
foreach ( $screens as $screen )
add_meta_box( 'is_in_zen', 'Отображать ли в Яндекс Дзен', array( $this, 'is_in_zen' ), $screen, $context = 'side', $priority = 'high' );
}
function is_in_zen() {
global $post;
$checked = get_post_meta( $post -> ID, 'is_in_zen', 1 );
// Используем nonce для верификации
wp_nonce_field( plugin_basename( __FILE__ ), 'is_in_zen__nonce' );
// Поля формы для введения данных
echo '<label for="is_in_zen">' . __( "Отметьте галочкой, если хотите отображать эту запись в Яндекс Дзен" ) . '</label> ';
echo '<input type="hidden" value="off" name="is_in_zen" />';
echo '<input type="checkbox" id="is_in_zen" name="is_in_zen" ' . checked( 'on', $checked, 0 ) . ' />';
}
function save( $post_id ) {
// Если нет данных $_POST - пропускаем
if ( empty( $_POST ) )
return;
// Если текущий тип записи нас не интересует, пропускаем
if ( !in_array( $_POST['post_type'], $this -> post_types ) )
return;
// Проверка безопасности
if ( !wp_verify_nonce( $_POST['is_in_zen__nonce'], plugin_basename( __FILE__ ) ) )
return;
// Автосохранение пропускаем
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
return;
// Проверка полномочий текущего пользователя
if ( !current_user_can( 'edit_' . $_POST['post_type'], $post_id ) )
return;
// Обновляем данные по Яндекс Дзен в метаданных записи
if ( $is_in_zen = $_POST['is_in_zen'] ) {
update_post_meta( $post_id, 'is_in_zen', $is_in_zen );
}
}
function zen() {
add_feed( $this -> feed_url, array( $this, 'zen_feed' ) );
}
function zen_feed() {
header( 'Content-Type: ' . feed_content_type( 'rss-http' ) . '; charset=' . get_option( 'blog_charset' ) );
$p = get_posts( array(
'posts_per_page' => $this -> posts_per_page, // Максимальное количество записей для отображения в фиде
'category__not_in' => $this -> category__not_in, // Массив с исключёнными рубриками
'post_type' => $this -> post_types, // Проходят только записи только нужного типа (по умолчанию, "Записи")
'orderby' => $this -> orderby, // Отсортируем посты в ленте по дате публикации, модификации или ещё чего-то
// Ниже блок, который позволяет отбирать только те записи, в метаданных которых присутствует 'is_in_zen' = 'on'
// Вы можете удалить его, тогда в ленту Дзена автоматически будут попадать все опубликованные записи
'meta_query' => array(
array(
'key' => 'is_in_zen',
'value' => 'on',
)
),
// Конец блока, дальше не удалять
) );
if ( $p ) {
echo '<?xml version="1.0" encoding="' . get_option( 'blog_charset' ) . '"?' . '>';
?>
<rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:media="http://search.yahoo.com/mrss/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
<?php do_action( 'rss2_ns' ); ?>>
<channel>
<title><?php bloginfo_rss( 'name' ); ?></title>
<link><?php bloginfo_rss( 'url' ) ?></link>
<description><?php bloginfo_rss( 'description' ) ?></description>
<language>ru</language>
<?php
foreach ( $p as $post ) {
setup_postdata( $post );
?>
<item>
<?php
$title = get_the_title( $post );
// nbsp в пробел
$title = str_replace( ' ', ' ', $title );
// mdash в тире
$title = str_replace( '—', '—', $title );
?><title><?= $title; ?></title>
<link><?= get_the_permalink( $post ); ?>?utm_source=zen_yandex</link>
<pubDate><?php echo get_post_time( 'D, d M Y H:i:s +0000', $gmt = TRUE, $post, $translate = FALSE ); ?></pubDate>
<media:rating scheme="urn:simple"><?= $this -> is_adult ?></media:rating>
<author><?= get_the_author(); ?></author>
<category><?= $this -> category; ?></category>
<?php
$gallery = get_attached_media( 'image', $post );
foreach ( $gallery as $img ) {
echo '<enclosure url="' . $img -> guid . '" type="' . $img -> post_mime_type . '" />';
} unset( $img );
// Если прикреплённых к записи медиафайлов нет, вытаскиваем и вставляем изображения из контента
// Если изображения не прикрепляются к записям, то стоит это условие убрать. В таком случае, возможно дублирование изображений в <enclosure, но лучше продублировать, чем пропустить
if ( empty( $gallery ) ) {
// Если в контенте есть изображение
if ( FALSE !== strpos( $post -> post_content, '<img' ) ) {
preg_match_all( '/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post -> post_content, $matches );
// Выводим все изображения
foreach ( $matches[1] as $src ) {
// По-хорошему, надо определять mime-type изображения, но по дефолту сгодится и image/jpeg
$mime = 'image/jpeg';
echo '<enclosure url="' . $src . '" type="' . $mime . '" />';
} unset( $src );
}
}
?>
<description><![CDATA[<?= get_the_excerpt( $post ); ?>]]></description>
<content:encoded><![CDATA[
<?php
$content = apply_filters( 'the_content', get_the_content() );
$pattern = '/(<img([^>]*)>)/i';
$replacement = '<figure>$1<figcaption>
' . get_the_title( $post ) . '
<span class="copyright">' . $this -> copyright . '</span>
</figcaption>
</figure>';
$content = preg_replace( $pattern, $replacement, $content );
// Удаляем лишние парные теги и их содержимое
$r = array( 'script', 'iframe', 'style', 'ins' );
foreach ( $r as $_ ) {
$content = preg_replace( '#<' . $_ . '.*?>(.*?)</' . $_ . '>#is', '', $content );
} unset( $_ );
// Удаляем все пустые парные теги
$content = preg_replace( '#<\w+[^>]*>(\s*( )?\s*)<\/\w+>#i', '', $content );
// Удаляем лишние символы
$r = array( ' ', );
foreach ( $r as $_ ) {
$content = str_replace( $_, ' ', $content );
} unset( $_ );
// Отображаем контент
echo strip_tags( html_entity_decode( $content ),'<p><span><img><figure><figcaption><h2><h3><h4><h5><h6><dd><dt><dl><ul><ol><li><b><i><strong><em>' );
?>]]></content:encoded>
<?php rss_enclosure(); ?>
</item>
<?php } wp_reset_postdata(); ?>
</channel>
</rss>
<?php
}
}
}
new Sheensay_Zen_Yandex();
- Этот код я рекомендую вставить как MU Plugin (создать каталог
/wp-content/mu-plugins/, в нём создать файлsheensay_zen_yandex.php, туда скопировать код).
Файл нужно сохранять строго в кодировке UTF-8
- Затем отправиться в
Настройки—Постоянные ссылки(http://example.com/wp-admin/options-permalink.php), и, ничего не меняя на странице, нажать Сохранить;
Теперь, на страницах записей появится метабокс:

Лента RSS для Яндекс Дзен доступна по адресу
http://example.com/feed/zen/
Браузеры жёстко кешируют страницу с фидом. Если вносите изменения в код или просто проверяете фид, не забывайте обновлять вкладку с фидом, очищая кеш, с помощью Ctrl+F5.
Как отправить все записи в RSS разом
Если необходимо, чтобы по умолчанию в Дзен попадали все опубликованные записи, нужно в вышеуказанном плагине найти часть кода и удалить или закомментировать его:
'meta_query' => array( array( 'key' => 'is_in_zen', 'value' => 'on', ) ),
Если нужно, чтобы в Дзен попадали только избранные записи, вышеуказанный блок кода удалять не надо. А чтобы не отмечать все статьи, которые хочется добавить в ленту RSS для Дзена, вручную, Вы можете воспользоваться следующей инструкцией:
<?php
/**
* Манипуляции с метаданными записей для их подготовки в RSS Яндекс Дзен
* http://sheensay.ru/?p=3478
*/
defined( 'ABSPATH' ) or exit;
add_action( 'admin_action_zen_update_post_meta', 'admin_action_zen_update_post_meta' );
function admin_action_zen_update_post_meta() {
// Только админ имеет возможность отправки запросов
current_user_can( 'manage_options' ) or exit;
// Получаем все записи
$p = get_posts( array(
'posts_per_page' => -1,
'post_type' => array( 'post' ),
'post_status' => array( 'publish', 'future' ),
) );
// Перебор записей
foreach ( $p as $post ) {
setup_postdata( $post );
// Прописываем записям метаданные, чтобы они попадали в RSS-ленту Яндекс Дзен
update_post_meta( $post -> ID, 'is_in_zen', 'on' );
// Удаляем метаданные, чтобы записи НЕ попадали в RSS-ленту Яндекс Дзен
// delete_post_meta( $post -> ID, 'is_in_zen' );
} wp_reset_postdata();
echo 'Done';
exit;
}
- Код выше копируете и вставляете в файл
/wp-content/mu-plugins/zen_update_post_meta.php; - Затем, запускаете следующий URL:
http://example.com/wp-admin/admin.php?action=zen_update_post_meta(example.comменяете на свой домен); - Страница может загружаться долго. Когда увидите надпись Done, значит всё готово, и все записи отмечены.
Настройка канала Яндекс Дзен
В этом разделе собраны решения по настройке канала.
Все настройки находятся в одном месте. Как туда попасть:
- Авторизоваться в Яндекс Дзен;
- В левом верхнем углу найти лого канала, нажать на него;
- Провести нужные манипуляции;
- Сохранить изменения.
Ниже приведены варианты, что можно настроить.
Как изменить URL канала Яндекс Дзен
По умолчанию, при регистрации Дзен, каналу даётся циферный неудобчитаемый адрес https://zen.yandex.ru/id/59706d883c50f7cc7f69b291. Чтобы заменить цифры на уникальный ярлык, например https://zen.yandex.ru/zenmag, нужно
- По инструкции выше перейти в настройки канала;
- Нажать кнопку Создать короткий адрес. Использовать можно латиницу, цифры и
_.
Если кнопки нет, значит, Ваш канал ещё не набрал необходимые 10 000 просмотров в неделю
- Сохранить изменения.
Сменить адрес можно только 1 раз за существование канала.
Как собирать статистику канала Дзен
Теперь можно подключить Яндекс Метрику, чтобы собирать аналитику канала.
- По инструкции выше перейдите в настройки канала;
- Перейдите в Метрику и добавьте новый счётчик, сохраните его уникальный номер (его можно найти на странице со списком всех счётчиков;

- Потом после создания счётчика вернитесь в настройки канала, и привяжите номер нового счётчика;



(7 оценок, в среднем: 4,86 из 5)
Свежие комментарии