Что такое Яндекс Дзен
Яндекс Дзен — это сервис, который создаёт индивидуальную подборку материалов для конкретного пользователя на основе его предпочтений. По сути, Яндекс Дзен чем-то напоминает ленту любой социальной сети — новостные тизеры или краткие посты, изображения и видео, анонсы событий, обзоры мероприятий, статей и иных материалов, которые, возможно, будут интересны пользователю.
С точки зрения вебмастера, сервис позволяет сайту получать дополнительную аудиторию и трафик, а также монетизироваться за счёт пользователей, которые используют:
- Яндекс Браузер — подборка Дзен отображается при открытии новой вкладки в клиенте для дестопа, 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 раз за существование канала.
Как собирать статистику канала Дзен
Теперь можно подключить Яндекс Метрику, чтобы собирать аналитику канала.
- По инструкции выше перейдите в настройки канала;
- Перейдите в Метрику и добавьте новый счётчик, сохраните его уникальный номер (его можно найти на странице со списком всех счётчиков;
- Потом после создания счётчика вернитесь в настройки канала, и привяжите номер нового счётчика;
Свежие комментарии