Обязательные, необязательные и недопустимые элементы. Требуется JavaScript и родная поддержка медиа запросов. Требования к фиду

Для создания смарт-баннера вам нужно добавить фид - файл с информацией о товарах и услугах. Директ проанализирует содержание фида и автоматически сформирует смарт-баннер с товарными предложениями для показа в сетях. Вы можете использовать фид, загруженный при создании динамических объявлений.

Типы бизнеса и фидов

Для загрузки фида нужно выбрать тип бизнеса, который вы рекламируете.

Тип фида Тип бизнеса Для чего
Фид Яндекс.Маркета (XML) Розничная торговля Продажа электроники и аксессуаров, бытовой техники, промышленного оборудования, одежды, мебели, товаров для сада и огорода, спортивных товаров, строительных материалов, детских товаров, шин и дисков, косметики, парфюмерии и т. д.
Фид «Отели и аренда жилья» Google Рекламы (CSV) Отели Бронирование отелей
Фид Авто.ру (XML) Автомобили Продажа новых и подержанных автомобилей
Фид Яндекс.Недвижимости (XML) Недвижимость Продажа жилой недвижимости
Фид «Авиабилеты» Google Рекламы (CSV) Авиабилеты Продажа авиабилетов
Универсальный фид (CSV) Другой бизнес Товары и услуги, не подходящие другим типам бизнеса
Фид Яндекс.Маркета (XML)
Фид «Специальный» Google Рекламы (CSV)
Фид «Путешествия» Google Рекламы (CSV) Продажа туров, билетов на поезда, паромы и т. д.

Товарные предложения, описанные не в соответствии со своим типом, отклоняются.

Требования к фиду

Любой XML-документ может содержать только один корневой элемент. Формат YML в качестве корневого использует элемент . Атрибут date элемента должен соответствовать дате и времени генерации YML-файла на стороне рекламодателя. Дата должна иметь формат YYYY-MM-DD hh:mm.

  • Упрощенный тип описания
  • Произвольный тип описания (vendor.model)

Базовый, более простой тип описания.

Пример: \n \n 1620.00\n 1800.00\n RUB\n 19\n \n false\n true\n false\n Антивирус ESET NOD32 Platinum Edition\n Eset\n NOD32-ENA-NS(BOX)-2-1\n Антивирус ESET NOD32 Platinum Edition - лицензия на 2 года NOD32-ENA-NS(BOX)-2-1\n Оплата: Наличные, Б/Н, пластиковые карты, кредит\n true\n Россия\n 18\n

Атрибуты элемента

Элементы, входящие в

Элемент Описание
name

Название товарного предложения. В названии упрощенного предложения рекомендуется указывать наименование и код производителя.

Обязательный элемент.

url

URL страницы товара.

Обязательный элемент.

picture
price
currencyId
model
vendor

Производитель.

vendorCode
description
categoryId

.

market_category
store
pickup
delivery
oldprice
sales_notes

Информация о заказе:

manufacturer_warranty

Наличие гарантии:

country_of_origin

Страна производства товара.

adult
age
downloadable

Возможность скачать товар:

    true - товар можно скачать;

    false - товар нельзя скачать.

Этот тип описания является наиболее удобным и универсальным, он рекомендован для описания товаров из большинства категорий.

Пример: \nhttp://www.надежнаятехника.рф/catalog/element/index.php?from=ya_market&utm_source=ya_market&utm_medium=cpc& \n889.00 \n17000.00 \nRUR \n1111 \nhttp://89.123.45.678/catalog/photo/19/6.JPG \nfalse \nfalse \ntrue \nПринтер \nНP \nDeskjet D2663 \nСерия принтеров для людей, которым нужен надежный, простой в использовании цветной принтер для повседневной печати... \nНеобходима предоплата. \ntrue \nЯпония \n

Атрибуты элемента

Атрибут Описание
id

Идентификатор товара.

Обязательный атрибут.

type

Обязательный атрибут.

available

Возможность купить товар:

  • true - товар есть в наличии;
  • false - товара нет в наличии.
Атрибут Описание
id

Идентификатор товара.

Обязательный атрибут.

type

Тип описания предложения. Значение должно быть vendor.model .

Обязательный атрибут.

available

Возможность купить товар:

  • true - товар есть в наличии;
  • false - товара нет в наличии.

Элементы, входящие в

Элемент Описание
url

URL страницы товара.

Обязательный элемент.

picture

Обязательный элемент для смарт-баннеров.

price

Цена, по которой данный товар можно приобрести.

currencyId

Код валюты (RUB , USD , UAH , KZT).

Обязательный элемент, если есть элемент price .

model

Обязательный элемент.

vendor

Производитель.

Обязательный элемент.

vendorCode

Код товара (указывается код производителя).

description

Описание товарного предложения.

typePrefix
categoryId

Обязательный элемент. Элемент может содержать только один элемент .

market_category
store

Возможность купить товар в розничном магазине:

    true - товар можно купить в розничном магазине;

    false - возможность покупки в розничном магазине отсутствует.

pickup

Возможность самовывоза из пунктов выдачи:

    true - товар можно забрать самостоятельно;

    false - возможность самовывоза отсутствует.

delivery

Возможность курьерской доставки товара:

    true - возможна курьерская доставка;

    false - товар не может быть доставлен курьером.

oldprice

Старая цена на товар, которая обязательно должна быть выше новой цены (price).

sales_notes

Информация о заказе:

    минимальной сумме заказа, минимальной партии товара, необходимости предоплаты;

    вариантах оплаты, описания акций и распродаж.

manufacturer_warranty

Наличие гарантии:

    true - товар имеет официальную гарантию;

    false - товар не имеет официальной гарантии.

country_of_origin

Страна производства товара.

adult
age
downloadable

Возможность скачать товар:

    true - товар можно скачать;

    false - товар нельзя скачать.

Отели: фид «Отели и аренда жилья» Google Рекламы

Фид «Отели и аренда жилья» Google Рекламы в формате CSV должен использоваться для типа бизнеса «Отели» . Первая строка содержит названия столбцов, а следующие строки ― сами данные. Содержимое столбцов отделяется друг от друга запятой. Данные в фиде должны быть в кодировке UTF-8.

Элемент Описание

Идентификатор отеля.

Обязательный элемент.

Название отеля.

Обязательный элемент.

URL страницы предложения.

Обязательный элемент.

Destination name

Обязательный элемент.

Обязательный элемент для смарт-баннеров.

Price
Элемент Описание

Идентификатор отеля.

Обязательный элемент.

Название отеля.

Обязательный элемент.

URL страницы предложения.

Обязательный элемент.

Destination name

Местоположение отеля (не более 25 символов).

Обязательный элемент.

Обязательный элемент для смарт-баннеров.

Price

Цена предложения. Число и код валюты (RUB , USD , UAH , KZT). Используйте точку (.) в качестве десятичного разделителя.

Количество звезд. Целое число от 1 до 5.

Пользовательская оценка, число. Используйте точку (.) в качестве десятичного разделителя.

Максимально возможная оценка, целое число. По умолчанию 5.

Услуги отеля. Укажите значения через точку с запятой: бар;бассейн;бесплатный Wi-Fi

Примечание. Значения, содержащие запятую, нужно заключить в кавычки (\"\"). Например, \"Москва , центр\".

Автомобили: фид Авто.ру

Фид Авто.ру в формате XML должен использоваться для типа бизнеса «Автомобили» . Данные в фиде должны быть в кодировке UTF-8.

Список предложений о продаже недвижимости рекламодателя содержится в элементе . Каждое товарное предложение (квартира) описывается отдельным элементом .

В одном фиде можно передавать информацию о разных ЖК разных застройщиков. Для этого укажите в каждом правовую информацию о застройщике в элементе .

Внимание.

Мы не принимаем фиды с предложениями об аренде недвижимости.

Пример: \n продажа\n жилая\n квартира\n http://www.developer.ru/search18\n 2015-04-02T19:00:06+03:00\n \n Санкт-Петербург\n о. Васильевский\n

18-я линия В.О., 32
\n \n Василеостровская\n 10\n 5\n \n \n \n 4780000\n RUR\n \n \n ЗАО \"Застройщик\" \n \n 13\n 15\n \n 63.00\n кв. м\n \n Северная фантазия\n http://www.developer.ru/images/plans/000001289.jpg\n

Атрибуты элемента

Элементы, входящие в

В таблице ниже описаны элементы фида, которые используются для создания смарт-баннеров или динамических объявлений.

Элемент Описание
type

Тип сделки.

Значение - только продажа.

Обязательный элемент.

location

\n \n

\n \n …\n

Обязательный элемент.

locality-name

Название населенного пункта.

Обязательный элемент.

sub-locality-name
address
metro

Ближайшая станция метро.

\n \n \n \n

name
time-on-transport
time-on-foot
url

Обязательный элемент.

image

Обязательный элемент для смарт-баннеров.

building-name

Обязательный элемент.

sales-agent

\n \n

Обязательный элемент.

organization

Обязательный элемент.

price

\n \n \n

value
currency

Код валюты (RUB , USD , UAH , KZT).

area

Общая площадь.

\n \n \n

value
unit

Единица площади помещения.

floor
Элемент Описание
type

Тип сделки.

Значение - только продажа.

Обязательный элемент.

location

Набор элементов, описывающих местоположение объекта. Во вложенных тегах детализируется информация об адресе объекта.

\n \n

\n \n …\n

Обязательный элемент.

locality-name

Название населенного пункта.

Обязательный элемент.

sub-locality-name
address
metro

Ближайшая станция метро.

Если станций несколько, каждая должна быть указана в отдельном элементе. Во вложенных тегах указывается подробная информация.

\n \n \n \n

name
time-on-transport

Время до метро в минутах на транспорте.

time-on-foot
url

Обязательный элемент.

image

Обязательный элемент для смарт-баннеров.

building-name

Название жилого комплекса. По этому элементу квартиры объединяют в ЖК.

Если название ЖК неизвестно, укажите улицу и номер дома (Ленина, 25)

Обязательный элемент.

sales-agent

Информация о застройщике. Во вложенных тегах указывается подробная информация:

\n \n

Обязательный элемент.

organization

Наименование юридического лица застройщика.

Обязательный элемент.

price

Набор элементов, описывающих стоимость объекта. Во вложенных тегах указывается цена и валюта, в которой указана стоимость:

\n \n \n

value
currency

Код валюты (RUB , USD , UAH , KZT).

Обязательный элемент, если есть элемент value .

area

Общая площадь.

Значение и единица измерения площади передаются во вложенных тэгах:

\n \n \n

value
unit

Единица площади помещения.

Элемент используется, если цена указана за единицу площади.

Возможные значения: кв. м / sq. m .

floor

Авиабилеты: фид «Авиабилеты» Google Рекламы

Фид «Авиабилеты» Google Рекламы в формате CSV должен использоваться для типа бизнеса «Авиабилеты» . Первая строка содержит названия столбцов, а следующие строки ― сами данные. Содержимое столбцов отделяется друг от друга запятой. Данные в фиде должны быть в кодировке UTF-8.

Пример: Элементы, входящие в CSV

В таблице ниже описаны элементы фида, которые используются для создания смарт-баннеров или динамических объявлений.

Элемент Описание

Обязательный элемент.

Destination name

Название пункта назначения.

Обязательный элемент.

электронную коммерцию

Название пункта отправления.

URL страницы предложения.

Обязательный элемент.

Обязательный элемент для смарт-баннеров.

Flight price

Цена предложения. Число и код валюты (RUB , USD , UAH , KZT). Используйте точку (.) в качестве десятичного разделителя.

Элемент Описание

Идентификатор пункта назначения.

Обязательный элемент.

Destination name

Название пункта назначения.

Обязательный элемент.

Идентификатор пункта отправления.

Если вы указываете в фиде Origin ID и подключили электронную коммерцию в Яндекс.Метрике, используйте в качестве идентификатора предложения в Ecommerce-объекте Origin ID и Destination ID через дефис. Например, \"id\": \"VKO-LHR\" .

Название пункта отправления.

URL страницы предложения.

Обязательный элемент.

Обязательный элемент для смарт-баннеров.

Flight price

Цена предложения. Число и код валюты (RUB , USD , UAH , KZT). Используйте точку (.) в качестве десятичного разделителя.

Другой бизнес: универсальный фид

Универсальный фид в формате CSV может использоваться в типе «Другой бизнес» . Первая строка содержит названия столбцов, а следующие строки - сами данные. Содержимое столбцов отделяется друг от друга запятой. Данные в фиде должны быть в кодировке UTF-8.

Элементы, входящие в CSV

Элемент Описание

Идентификатор предложения.

Обязательный элемент.

электронную коммерцию

URL страницы предложения.

Обязательный элемент.

Обязательный элемент для смарт-баннеров.

Title Название предложения.
Description

Описание предложения.

Currency Идентификатор предложения.

Обязательный элемент.

Второй идентификатор предложения.

Если вы указываете в фиде ID2 и подключили электронную коммерцию в Яндекс.Метрике, используйте в качестве идентификатора предложения в Ecommerce-объекте ID и ID2 через дефис. Например, \"id\": \"VKO-LHR\" .

URL страницы предложения.

Обязательный элемент.

Обязательный элемент для смарт-баннеров.

Title Название предложения.
Description

Описание предложения.

Цена предложения без валюты. Используйте точку (.) в качестве десятичного разделителя.

Currency

Код валюты (RUB , USD , UAH , KZT).

Обязательный элемент, если есть элемент Price .

Старая цена предложения, которая обязательно должна быть выше новой цены (Price).

Описание

Идентификатор предложения.

Обязательный элемент.

Второй идентификатор предложения.

Если вы указываете в фиде ID2 и подключили электронную коммерцию в Яндекс.Метрике, используйте в качестве идентификатора предложения в Ecommerce-объекте ID и ID2 через дефис. Например, \"id\": \"VKO-LHR\" .

URL страницы предложения.

Обязательный элемент.

Обязательный элемент для смарт-баннеров.

Item title

Название предложения.

Item description

Описание предложения.

В Яндекс.Метрике, используйте в качестве идентификатора предложения в Ecommerce-объекте ID и ID2 через дефис. Например, \"id\": \"VKO-LHR\" .

URL страницы предложения.

Обязательный элемент.

Обязательный элемент для смарт-баннеров.

Item title

Название предложения.

Item description

Описание предложения.

Цена предложения с кодом валюты в кодировке ISO 4217 (RUB, USD, UAH, KZT). Используйте точку (.) в качестве десятичного разделителя.

Новая цена предложения, которая обязательно должна быть ниже старой цены (Price).

Другой бизнес: фид «Путешествия» Google Рекламы

Фид «Путешествия» Google Рекламы в формате CSV может использоваться в типе «Другой бизнес» . Первая строка содержит названия столбцов, а следующие строки - сами данные. Содержимое столбцов отделяется друг от друга запятой. Данные в фиде должны быть в кодировке UTF-8.

Элементы, входящие в CSV

В таблице ниже описаны элементы фида, которые используются для создания смарт-баннеров.

Элемент Описание

Идентификатор пункта назначения.

Обязательный элемент.

Destination name

Название пункта назначения.

Идентификатор пункта отправления.

Если вы указываете в фиде Origin ID и подключили электронную коммерцию

Название пункта отправления.

URL страницы предложения.

Обязательный элемент.

Обязательный элемент для смарт-баннеров.

Название предложения.

Идентификатор пункта назначения.

Обязательный элемент.

Destination name

Название пункта назначения.

Идентификатор пункта отправления.

Если вы указываете в фиде Origin ID и подключили электронную коммерцию в Яндекс.Метрике, используйте в качестве идентификатора предложения в Ecommerce-объекта Origin ID и Destination ID через дефис. Например, \"id\": \"MOS-AMS\" .

Название пункта отправления.

URL страницы предложения.

Обязательный элемент.

Обязательный элемент для смарт-баннеров.

Название предложения.

Цена предложения с кодом валюты в кодировке ISO 4217 (RUB , USD , UAH , KZT). Используйте точку (.) в качестве десятичного разделителя.

Новая цена предложения, которая обязательно должна быть ниже старой цены (Price).

Добавление фида

Чтобы добавить фид, на странице со списком кампаний перейдите по ссылке Фиды . На странице Управление фидами нажмите кнопку +Добавить фид и выберите тип вашего бизнеса.

  • Ссылка на файл
  • Загрузить файл

Выберите необходимый для загрузки файл. Размер загруженного файла не должен превышать 512 Мб. При обновлении файл скачивается роботом, и новые данные импортируются в Директ.

Вы можете разместить фид в архиве, созданном с помощью алгоритма сжатия ZIP (расширение.zip) или GNU ZIP (расширение.gz).

Если произошла ошибка при добавлении фида (например, размер, формат фида или ссылка на него не соответствуют требованиям), вы увидите статус «Ошибка загрузки» и ссылку на отчет об ошибках.

Валидация файла

При чтении файла проверяются следующие условия:

  • присутствуют все обязательные элементы;
  • все названия элементов являются корректными;
  • каждый элемент присутствует не более одного раза.

При невыполнении любого из этих условий файл отклоняется.

Самый простой вариант "адаптировать" картинку - задать ширину 100% а высоту рассчитывать автоматически. Наше изображение никогда не будет шире родительского блока, при этом браузер будет ресайзить его с сохранением пропорций. Недостаток этого способа в том что и мобилке и дэсктопу отдаётся одна и таже, большая картинка. Будет лучше если на смартфон будет отправлена картинка меньшего размера. Таким образом мы экономим трафик посетителю и ускоряем загрузку страницы.

Тег

Adaptive Images

Adaptive Images интересное решение учитывая простоту установки и отсутствие заморочек с изменением разметки. Определяет размер экрана посетителя и вставляет на страницу нужное изображение.

В установке нет ничего сложного. Скачиваем дистрибутив с сайта http://adaptive-images.com/. Копируем файлы adaptive-images.php и.htaccess в корень сайта. Скорее всего в корне уже лежит файл.htaccess. В этом случае отредактируйте его но прежде сделайте копию на всякий случай. Если в вашем.htaccess файле есть раздел который начинается с

вставьте в этот раздел то, что содержится между # Adaptive-Images и # END Adaptive-Images. Если же такого раздела нет, то скопируйте содержимое целиком.
В раздел нужно вставить следующий JS код

  1. < script> document.cookie = "resolution=" + Math .max (screen.width , screen.height ) + "; path=/" ;

Этот код должен загружаться раньше других скриптов.
Последний шаг - конфигурация файла adaptive-images.php. В переменной $resolution - указывается ширина экранов. Как правило задаются размеры указанные в медиа-запросах в CSS. $cashe_path путь к папке куда будут складываться изменённые изображения.

Теперь о том как всё это работает. Размер окна посетителя определяется JavaScript размещённом в разделе . Эта информация записывается в куки. Когда браузер встречает на странице тег и отправляет запрос на сервер чтобы получить изображение он отправляет куки. Веб-сервер Apache получив запрос на изображение смотрит есть ли у него какие нибудь специальные инструкции для файлов. В.htaccess у нас есть правило по которому сервер любой запрос на jpg, png или gif отправляет в adaptive-images.php. PHP файл ищет куки и узнаёт какой размер экрана. Дальше происходит сравнение значения из куки со значениями прописанными в переменной $resolution и выбирается лучшее значение. Предположим было выбрано значение 480px. Отресайзенная картинка должна находиться в папке /ai-cashe/480/. Если её там нет то будет запрошен исходный файл и если его ширина будет меньше ширины экрана то по посетителю отдадут исходный файл. Если размер больше, то файл уменьшается до нужного размера и посылается пользователю. Изменённая копия сохраняется, чтобы в следующий раз не ресайзить.

Ещё пара способов сделать адаптивные изображения

Просматривая возможные решения я обратил внимание что все они были предложены до элемента Этот новый элемент предлагает лучший вариант решения проблемы адаптивных картинок.

Adaptive Image - простой в настройке. Это хорошая альтернатива если нет желания заморачиваться с кучей файлов, создавая по три файла на каждую картинку. Хотя этот плюс может обратиться в минус. Часто уменьшая большие фотографии в конечном итоге лучше вырезать какую-то часть чем просто отресайзить. Ещё один минус Adaptive Image - нагрузка на сервер.

Кстати, если ваш на сайт работает на Drupal в следующей статье попробуем внедрить И максимально автоматизировать процесс ресайза картинок.

В девелоперских сборках браузеров Chrome, Firefox и Opera появилась поддержка нового элемета picture , призванного решить ряд проблем возникающих при разработке адаптивных дизайнов. Давайте рассмотрим его подробнее.

Новый элемент picture , решает следующие задачи, встающие перед разработчиком адаптивных веб-приложений (я воспользуюсь классификацией, предложенной pepelsbey на одной из недавних конференций по фронтенду):

  1. Р етина, т.е. экраны с плотностью точек на дюйм 150 и выше, на которых обычное изображение выглядит размыто
  2. А даптивность, задача изменения размеров изображения согласно вашим правилам, прописанным в дизайне в зависимости от размера вьюпорта.
  3. Ф ормат, возможность использовать современные форматы, такие как WebP, если они поддерживаются браузером
  4. К адрирование или Художественные цели. Обрезка маловажных частей изображения, при показе на устройствах с меньшим экраном.
Сложив первые буквы, получаем мнемонику РАФК

Синтаксис

Условно, расширенный синтаксис нового элемента выглядит так
...
Элемент picture не рендерит никакой контент, а лишь является справочным контейнером для вложенного в него тега img .

Поэтому для большинства задач хватит сокращенной записи, совсем без использования picture

Давайте рассмотрим как решаются вышеозначенные проблемы с помощью нового элемента. Все файлы примеров можно найти в этом репозитории github.com/fetis/picture

Для тестирования примеров из данной статьи на десктопе вам понадобятся либо Firefox Nighlty (поддержка picture включается настройкой dom.image.picture.enable в about:config), либо Chrome Canary , либо Opera Developer . На мобильном устройстве новый элемент можно протестировать в Chrome Beta

Ретина

У нас есть изображение 400х300 пкс, которое мы хотим также красиво показывать при двукратной и трехкратной плотности пикселей. Для этого готовим еще 2 картинки, размерами 800x600 и 1200х900 и пишем следующий код

2x и 3x это дескрипторы плотностей пикселей , они говорят браузеру, что вот эти картинки были подготовлены для вот этой плотности, если хочешь, можешь использовать. Обратите внимание, они не заставляют бразуер использовать эти картинки, а только подсказывают ему. Окончательное решение остается за ним в зависимости от других условий, например, текущего соединения.

Атрибут src в данном случае служит источником картинки для плотности < 2 и фолбеком на случай, если браузер не поддерживает новый элемент.

Адаптивность

Представим раскладку, в которой есть единственная контрольная точка (breakpoint) 700пкс. При размере вьюпорта более 700 пкс мы показываем справа сайдбар и размер нашего изображения должен быть 75% от ширины экрана. В противном случае сайдбар располагается в конце страницы и изображение должно быть растянуто на всю ширину. Это реализуется следующим кодом

400w, 800w, 1200w - это дескрипторы ширины , они подсказывают браузеру картинка какой ширины находится по данному URL и на основе этой информации браузер принимает решение какое изображение лучше всего подойдет в текущей ситуации. Как и в случае с ретиной информация носит рекомендательный характер и окончательное решение какое изображение грузить остается за браузером.

Одновременное использование дескрипторов плотности и ширины недопустимо.

В атрибуте sizes перечисляются размеры изображения для всех контрольных точек в нашем дизайне. Контрольные точки задаются в виде обычного медиавыражения, браузер берет первое, которое возвращает Истину и дальше цепочку не рассматривает. Для значения ширины используется новая единица длины vw , которая возвращает значение в процентах от ширины вьюпорта.

Если для картинки нет необходимости использовать контрольные точки, то запись можно сократить до такой sizes="100vw" . А для более сложных дизайнов можно использовать CSS-функцию calc() , например
sizes="(max-width: 30em) 100vw, (max-width: 50em) 50vw, calc(33vw - 100px)"

Самый сложный в поведении атрибут на мой взгляд. Если не указывать sizes , то браузер всегда выбирал самую большую картинку. В сочетании с width не работает, хотя казалось бы логичное сочетание и ряд других глюков. Возможно это особенности ранней реализации.

Как видите, мы уже покрыли 80% потребностей адаптивной верстки, а еще ни разу не использовали picture , настало время ему тоже вступить в игру.

Формат

Использование различных форматов для изображений мало отличается от способов используемых для тегов video или audio

Мы указываем список источников и mime/type для каждого, а браузер уже выбирает первый, который знает. В качестве фолбека используется изображения из атрибута src .

Кадрирование

Когда мы показываем фото на меньшем экране иногда имеет смысл обрезать лишние детали, оставив только основную часть. С этой задачей нам поможет справиться атрибут media

В каждом атрибуте media мы задаем медиавыражение, при котором у нас будет меняться исходное изображение и, в отличие от предыдущих примеров, браузер будет обязан ему следовать. Обратите также внимание как кадрирование здесь сочетается с адаптивностью, чтобы растянуть изображение на всю ширину.

РАФК

А теперь все 4 метода в одном флаконе:) Возможно так будет выглядеть вставка картинок через пару лет (пример из блога Оперы)

Здесь используются 2 формата JPEG и WebP. При ширине экрана более 1280 пкс показывается полноразмерная картинка в половину вьюпорта. При ширине от 640 до 1279 показывается обрезанное фото на 60% ширины вьюпорта. При ширине экрана меньше 640пкс показывается обрезанная фотография на 100% ширины. Выбор под текущее DPI экрана производится на основе ширины исходных файлов.

  • Не найдено описание для элемента "yml_catalog". Возможно неверно указан корневой элемент.
  • Ошибка видимо из-за того, что XML совсем не формируется, либо вы сообщили Яндексу неверную ссылку на YML. Для поиска причин ошибки откройте ссылку на ваш YML в браузере.

  • Фатальная ошибка: Ошибка парсинга XML: Error parsing XML feed: Unknown tag: XML tag "b" (строка...
  • В процессе формирования YML, произошла какая-то ошибка. PHP выкинул сообщение об ошибке, а он это делает в тэге "b". Откройте исходный код YML, по номеру строки вы легко найдете текст PHP ошибки. Если не знаете, что она значит - поищите в Google. Уверен, вы найдете и рекомендации по устранению этой ошибки.

  • Отсутствует обязательный элемент picture
  • По правилам Яндекс.Маркета, у товара в экспорте должна быть картинка, хотя бы одна. Товары без картинок не экспортируются. Проверьте, что в настройках модуля в поле "Кол-во картинок товара" присутствует число больше нуля. И проверьте, чтобы у товаров в магазине базе были картинки.

  • Ошибка спецификации XML. Приведите прайс-лист в соответствие с техническими требованиями выбранного формата...
  • Ошибка вызвана тем, что в YML-экспорте присутствуют посторонние тэги. Это происходит, если вы экспортируете что-то в тэг keywords. Яндексу этот тэг не нужен. Укажите в настройках модуля "Брать тэг keywords из поля" = "Не выгружать"

  • No required offers"s parameter
  • Ошибка сообщает, что в YML не найден обязательный параметр товарного предложения. Для одежды, обуви и аксессуаров цвет и размер товара должен присутствовать в YML. По строке, где возникла ошибка, вы можете узнать, у какого именно товаре не указан цвет и/или размер. Для этого товара в OpenCart надо указать атрибут или опцию, которая будет экспортирована модулем в YML. Этот атрибут или опцию отметьте галкой в настройках модуля.

Ошибки, которые показываются в браузере

  • При открытии YML в браузере ошибка 500 или 502 "Bad Gateway", или просто белый экран.
  • Скрипт, формирующий YML был завершен с ошибкой. Настройки вашего сайта таковы, что ошибки не показываются. Вам необходимо включить отображение ошибок. Включить ошибки в настройках магазина в админке OpenCart скорее всего будет недостаточно. Отображение ошибок надо включать в файлах.htaccess и php.ini . Но и этого может быть недостаточно. Хостинг сайта может быть так настроен, что файлы эти могут не влиять на вывод ошибок. Правильнее всего - обратиться с технической поддержке хостинга.

  • Ошибка синтаксического анализа XML: корневой элемент не найден
  • Скрипт, формирующий YML был завершен с ошибкой. При этом YML был сформирован не полностью - нет закрывающих тэгов. Загляните в исходный код YML. Если в конце есть сообщение об ошибке - ищите текст ошибки в Яндексе или Гугле. Если сообщения об ошибке нет - смотрите предыдущий пункт.

  • Ошибка "Maximum execution time of 30 seconds exceeded"
  • PHP-скрипту по-умолчанию отводится 30 секунд на выполнение. Если за 30 секунд скрипт не сформировал YML, то скрипт был принудительно завершен. Разумеется, YML при этом не сформировался, либо сформировался не полностью.
    Дело в том, что экспорт всей товарной базы - довольно ресурсоемкая операция. Особенно много времени занимает масштабирование картинок для Яндекса, ведь Яндекс принимает картинки размером не менее, чем 600x600 пикселей. К счастью, OpenCart сохраняет масштабированные картинки в кэш изображений. При повторном экспорте картинки будут быстро браться уже из кэша. Пока кэш изображений не сформирован полностью, скрипт экспорта в YML может работать долго. Попробуйте позапускать скрипт несколько раз, сформируется кэш, скрипт будет работать быстрее, попадая в лимит времени.
    Если это не помогло, время формирования YML по-прежнему велико (из-за того, что у вас очень много товаров), то можно попробовать увеличить параметр max_execution_time в файле настроек PHP php.ini.
    Если и этого мало (ваш хостинг слабоват для Интернет-магазина с такой товарной базой), то можно попытаться формировать YML-экспорт, запуская скрипт через php-cli .

    Вопросы по содержимому YML

    • В экспорте присутствуют не все товары.
    • Может быть несколько причин, по которым не все товары присутвуют в YML-экспорте. Общая причина - настройки модуля и содержимое товарной базы.

  1. У товаров не указан производитель, а во вкладке настроек модуля "Что экспортировать" производители выбраны.
  2. У товаров не проставлены главные категории, но стоит галка "У товаров есть главные категории" во вкладке "Общие".
  3. Товар в черном списке или не в белом списке, который задан на вкладке "Что экспортировать" настроек модуля.
  4. Поля "Выгружать только если товар дороже", "Не выгружать, если товар дороже" или галка "Не выгружать товары без картинок" во вкладке "Что экспортировать" исключают товар из иэкспортируемых.
  5. Товара нет на складе, а статус его "Остутствие на складе" такой, что товар не экспортируется. Чтобы экспортировать закончившийся товар, во вкладке "Склад и доставка" настроек модуля, не выбирайте ни одного статуса в поле "Статус Нет в наличии".
  • В экспорте присутствуют не все категории.
  • В OpenCart один товар может показываться в нескольких категориях, а в формате YML товар может принадлежать лишь к одной категории. Модуль экспорта привязывает товар к первой попавшейся категории. Поэтому может оказаться, что в некоторых категориях товаров нет, и эти категории не будут присутствовать в экспорте, хотя товары присутствовать будут, правда в других категориях.
    В ocStore есть главные категории , и можно привязывать товары только к главным категориям. Для этого в настройках модуля поставьте галку "У товаров есть главные категории". В этом случае вы получите более детальную классификацию товаров в YML-экспорте, но товары, у которых главная категория не проставлена, вобще не будут экспортированы.

    Как сделать, чтобы...?

    • Как не экспортировать товар, у которого количество нулевое?
    • В настройках модуля во вкладке "Склад и доставка" ищите поле «Статус "Нет в наличии"». В этом поле отметьте Все статусы товара. Чтобы отметить несколько элементов списка, при клике мышью держите клавишу Ctrl.

    Разработка на языках : PHP, JavaScript, node.js. Базы данных : MySQL, PostgreSQL, MongoDB.
    Доработка CMS : OpenCart, PrestaShop, Wordpress. Интеграция с : платежными системами, ВКонтакте, Facebook, Яндекс.

    Продолжаем серию статей про настройку динамических поисковых кампаний (Dynamic Search Ads). Ранее я писал про DSA для Google Рекламы . Сегодня рассмотрим элементы и примеры фидов для Яндекс.Директ.

    Товарный фид — файл с данными о всех товарах на сайте и их атрибутах (уникальные идентификаторы, ссылки на товары и их изображения).

    Категории фидов в Яндекс.Директ

    В сервисе доступны такие категории фидов:

    1. «Розничная торговля».
    2. «Отели».
    3. «Недвижимость».
    4. «Автомобили».
    5. «Авиабилеты».

    Как подготовить фид для «Розничной торговли»

    Сформируйте фид в формате YML. Любой XML-документ может содержать только один корневой элемент.

    Формат YML в качестве корневого использует элемент . Атрибут date элемента должен соответствовать дате и времени генерации YML-файла на стороне рекламодателя. Задайте дату в формате YYYY-MM-DD hh:mm .

    http://www.надежнаятехника.рф/catalog/element/index.php?from=ya_market&utm_source=ya_market&utm_medium=cpc& 889.00 17000.00 UAH 1111 http://89.123.45.678/catalog/photo/19/6.JPG false false true Принтер НP Deskjet D2663 Серия принтеров для людей, которым нужен надежный, простой в использовании цветной принтер для повседневной печати... Необходима предоплата. true Япония

    Как составить фид для «Отелей»

    Для типа бизнеса «Отели» вы можете использовать фид «Отели и аренда жилья» Google Рекламы (формат CSV). Содержимое столбцов отделяется друг от друга запятой. Данные в фиде должны быть в кодировке UTF-8.

    Элемент

    Описание

    Идентификатор отеля.

    Обязательный элемент.

    Название отеля.

    Обязательный элемент.

    URL страницы предложения.

    Обязательный элемент.

    Destination name

    Местоположение отеля (не более 25 символов).

    Обязательный элемент.

    Цена предложения. Число и код валюты в кодировке ISO 4217. Используйте точку (.) в качестве десятичного разделителя. Рекомендуемый элемент.

    Количество звезд. Целое число от 1 до 5.

    Пользовательская оценка, число. Используйте точку (.) в качестве десятичного разделителя.

    Максимально возможная оценка, целое число. По умолчанию 5.

    Услуги отеля. Укажите значения через точку с запятой: бар; бассейн; бесплатный Wi-Fi.

    Значения с запятой заключите в кавычки ("").

    Как подготовить фид для «Недвижимости»

    Список предложений о продаже недвижимости рекламодателя содержится в элементе . Каждое товарное предложение (квартира) описывается отдельным элементом .

    В одном фиде можно передавать информацию о жилых комплексах разных застройщиков. Для этого укажите в каждом правовую информацию о застройщике в элементе .

    Элемент

    Описание

    Обязательный элемент.

    Тип сделки.

    Значение — только «продажа».

    Обязательный элемент.

    Набор элементов, описывающих местоположение объекта. Во вложенных тегах — детали информации об адресе объекта.
    Обязательный элемент.

    Название населенного пункта.

    Обязательный элемент.

    sub-locality-name

    Ближайшая станция метро.

    Если станций несколько, каждая должна быть указана в отдельном элементе. Во вложенных тегах укажите подробную информацию.
    Рекомендуемый элемент.

    time-on-transport

    Время до метро в минутах на транспорте.

    Обязательный элемент.

    Обязательный элемент.

    Набор элементов, описывающих стоимость объекта. Во вложенных тегах — цена и валюта, в которой указана стоимость:
    Рекомендуемый элемент.

    Название жилого комплекса. По этому элементу квартиры объединяют в ЖК.

    Если название ЖК неизвестно, укажите улицу и номер дома (например, Пушкинская, 25).

    Обязательный элемент.

    Информация о застройщике. Во вложенных тегах укажите подробную информацию.
    Обязательный элемент.

    Полное название юридического лица застройщика.

    Обязательный элемент.

    Общая площадь.

    Значение и единица измерения площади передаются во вложенных тегах.

    Единица площади помещения.

    Элемент используется, если цена указана за единицу площади.

    Возможные значения: «кв. м»/«sq. m».

    Фиды с предложениями об аренде недвижимости не принимаются.

    продажа жилая квартира http://www.developer.ru/search18 2015-04-02T19:00:06+03:00 Санкт-Петербург о. Васильевский

    18-я линия В.О., 32
    Василеостровская 10 5 4780000 UAH ЗАО "Застройщик" 13 15 63.00 кв. м Северная фантазия http://www.developer.ru/images/plans/000001289.jpg

    Как сформировать фид для «Автомобилей»

    Элемент

    Описание

    Идентификатор товарного предложения.

    Обязательный элемент, если нет элемента vin.

    Марка автомобиля.
    Обязательный элемент.

    Наименование модели.

    Обязательный элемент.

    Наименование модификации.

    Обязательный элемент.

    Обязательный элемент.

    Обязательный элемент.

    Тип кузова.

    Обязательный элемент.

    Год выпуска.

    Обязательный элемент.

    Цена автомобиля.

    Обязательный элемент.

    Валюта, в которой указана цена.
    Обязательный элемент.

    VIN-номер (17 символов).

    Пример фида:

    Ford Fusion 1.4d AT (68 л.с.) http://www.auto.ru/1 http://picture.auto.ru/1.jpg Хэтчбек 5 дв. красный в наличии растаможен 2015 575000 UAH XWBCA41ZXDK259205

    Как подготовить фид для «Авиабилетов»

    Элемент

    Описание

    URL страницы предложения.

    Обязательный элемент.

    Обязательный элемент (для смарт-баннеров).

    Цена предложения. Число и код валюты в кодировке ISO 4217. Используйте точку (.) в качестве десятичного разделителя.

    Идентификатор пункта назначения.

    Обязательный элемент.

    Идентификатор пункта отправления.

    Destination name

    Название пункта назначения.

    Обязательный элемент.

    Название пункта отправления.

    Как добавить фид

    Для добавления фида в Яндекс.Директ перейдите в интерфейсе по ссылке «Фиды» внизу под кампаниями.

    Затем нажмите «Добавить фид».

    Как добавить фид по ссылке

    Для размещения на сайте размер фида не должен превышать 512 Мб. Один раз в сутки фид скачивает робот и импортирует в Яндекс.Директ. При генерации динамических объявлений робот проверяет фид для отбора товарных предложений по заданным фильтрам один раз в сутки или чаще, если это возможно.

    Файл должен быть доступен по протоколу HTTP, HTTPS или FTP. Для доступа используйте авторизацию.

    Если в ссылках в фиде указаны UTM-метки, которые не подходят для отслеживания рекламной кампании, рекомендую удалить их. Для этого установите флажок «Автоматически удалять UTM-метки». Добавить новые UTM-метки можно на странице редактирования группы объявлений.

    Как добавить файл с фидом

    Выберите необходимый для загрузки файл. Размер загружаемого файла не должен превышать 512 Мб. При обновлении файл скачивается роботом, и новые данные импортируются в Яндекс.Директ.

    Вы можете разместить фид в архиве, созданном с помощью алгоритма сжатия ZIP (расширение.zip) или GNU ZIP (расширение.gz).

    Если при добавлении фида произошла ошибка (например, размер / формат / ссылка на фид не соответствуют требованиям), вы увидите статус «Ошибка загрузки». Для просмотра отчета об ошибках перейдите по ссылке «Подробнее».

    Как происходит валидация фида

    Валидация — комплексная проверка соблюдения требований.

    Условия проверки при чтении файла:

    • все обязательные элементы присутствуют;
    • все названия элементов корректные;
    • каждый элемент присутствует не более одного раза.

    При невыполнении любого из этих условий файл отклоняется.

    Вывод

    Мы рассмотрели все варианты и форматы фидов для настройки динамических кампаний в Яндекс Директ.

    Напомню, для правильного создания фида:

    1. Определите ваш тип бизнеса.
    2. Настройте фид в зависимости от типа бизнеса.
      Совет: чем больше полей заполнено в фиде, тем лучше система сможет определить нужного пользователя.
    3. Загрузите фид в аккаунт Яндекс.Директ.

    В следующей статье я расскажу, как настроить кампании с таргетингом на содержание сайта и на фид страниц.