В девелоперских сборках браузеров Chrome, Firefox и Opera появилась поддержка нового элемета picture , призванного решить ряд проблем возникающих при разработке адаптивных дизайнов. Давайте рассмотрим его подробнее.
Новый элемент picture , решает следующие задачи, встающие перед разработчиком адаптивных веб-приложений (я воспользуюсь классификацией, предложенной pepelsbey на одной из недавних конференций по фронтенду):
...
Элемент 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 экрана производится на основе ширины исходных файлов.
Изображения давно известны как самые трудоемкие аспекты адаптивного веб-дизайна. Сегодня, мы увидим как можно использовать элемент picture в качестве решения проблемы адаптивных изображений прямо сейчас.
Во-первых, сама проблемаВремена дизайна сайтов с фиксированной шириной и полным соответствием макету давно позади. В нынешнее время широкоформатных мониторов, интернет-телевидения, планшетов и смартфонов различных размеров наш дизайн должен принимать в расчет любые разрешения – от 320 пикселей и до 7680.
Все эти разрешения предъявляют требования к изображениям – они должны растягиваться и уменьшаться, чтобы соответствовать всему разнообразию требований. Это может оказаться проблемой, т.к. за исключением векторной графики, большинство изображений имеет фиксированную ширину в пикселях, которая не изменяется.
Так что же делать?
Нынешнее, самое распространенное решениеКак правило, вы найдете следующее в CSS коде практически любого адаптивного сайта:
img { max-width: 100%; height: auto;}
img { max - width : 100 % ; height : auto ; } |
Этот код использует настройку max-width: 100%; для того, чтобы убедиться в том, что изображение не будет выдаваться за пределы родительского контейнера. Если родительский контейнер станет меньше ширины изображения, изображение будет уменьшаться вместе с ним. Настройка height: auto; присутствует для того, чтобы при уменьшении сохранялись пропорции изображения.
Одно «резиновое» изображение для всех устройств
Это решает проблему в одном ключе, позволяя нам показывать одно изображение при разных обстоятельствах. Но, оно не позволяет нам показывать разные изображения для различных обстоятельств.
Новое решение: тэг picturepicture — это новый элемент, который должен стать частью HTML5. Он значительно ускорит процесс размещения адаптивных изображений аналогично принципам работы элементов audio и video. Он позволит задавать несколько элементов source, каждый из которых будет указывать на различные файлы изображений вместе с условиями, при которых они должны загружаться.
Он позволит вам загружать различные изображения в зависимости от:
Результатов медиа-запроса, например, высота окна просмотра, ширина, ориентация
Плотность пикселей
Что означает, что вы можете:
Загружать изображения соответствующих размеров, с максимальной отдачей используя имеющуюся ширину канала.
Загружать изображения с различной обрезкой и пропорциями в соответствии с изменением разметки для экранов разной ширины.
Загружать изображения с высоким разрешением для экранов с высокой плотностью пикселей.
Разные изображения загружаются в зависимости от обстоятельств
Как работает элемент picture?Основные шаги для работы с элементом picture это:
Создание открывающих и закрывающих тэгов picture.
Внутри этих тэгов создайте элемент source для каждого запроса, который вы хотите произвести.
Добавьте атрибут media вашему запросу для таких вещей как высота окна просмотра, ширина, ориентация, и т.д.
Добавьте атрибут srcset с соответствующим именем файла изображения для загрузки.
Добавьте дополнительные имена файлов вашему srcset атрибуту, если вы хотите поддерживать экраны с высокой плотностью пикселей, например Ретина.
Добавьте элемент img в качестве запасного варианта.
Вот несложный пример, который проверяет, если окно просмотра меньше 768 пикселей, и в случае соответствия загружает изображение меньшего размера:
< picture > < source srcset = "smaller.jpg" media = "(max-width: 768px)" > < source srcset = "default.jpg" > < img srcset = "default.jpg" alt = "My default image" > < / picture > |
Вы заметите, что синтаксис, использованный в атрибуте media точно такой же, как и тот, к которому вы привыкли, составляя медиа запросы на CSS. Вы можете использовать такие же проверки, значит, вы можете создать запросы для max-width, min-width, max-height, min-height, orientationи так далее.
Вы можете использовать эти проверки для того, чтобы загружать альбомную или портретную версии изображения в зависимости от ориентации устройства, и вы также можете добавить запросы размеров. Например:
< picture > < source srcset = "smaller_landscape.jpg" media = "(max-width: 40em) and (orientation: landscape)" > < source srcset = "smaller_portrait.jpg" media = "(max-width: 40em) and (orientation: portrait)" > < source srcset = "default_landscape.jpg" media = "(min-width: 40em) and (orientation: landscape)" > < source srcset = "default_portrait.jpg" media = "(min-width: 40em) and (orientation: portrait)" > < img srcset = "default_landscape.jpg" alt = "My default image" > < / picture > |
Код выше загружает уменьшенную, обрезанную для альбомной ориентации версию изображения для устройства с соответствующей ориентацией. Он загружает увеличенную версию того же изображения для устройств с большим экраном.
Если устройство имеет портретную ориентацию, он загружает изображение, обрезанное соответствующим образом: в меньшем размере – для небольших устройств и увеличенное изображение для устройств с более высоким разрешением.
Если вы хотите предоставлять версии изображений с различным разрешением для экранов с более высокой плотность, вы можете это сделать с помощью добавления дополнительных имен файлов атрибуту srcset. Например, давайте посмотрим на первый пример кода выше с добавлением поддержки разрешения экрана «Ретина 2х»:
< picture > < source srcset = "smaller.jpg, smaller_retina.jpg 2x" media = "(max-width: 768px)" > < source srcset = > < img srcset = "default.jpg, default_retina.jpg 2x" alt = "My default image" > < / picture > |
Медиа запрос обрабатывается в первую очередь, таким образом, вы можете контролировать размеры изображения на экране. Затем, проверяется плотность пикселей экрана и если высокая плотность поддерживается и разрешена настройками пользователя, будет загружена версия изображения с более высоким разрешением.
Использование picture сегодняшний деньСейчас родная имплементация picture находится в разработке для браузеров Chrome, Firefox и Opera.В будущем, мы скорее всего, увидим более широкую поддержку и в остальных браузерах. Но, на сегодняшний день поддержка только ожидается.
Пока что, вам не нужно ждать, если вы хотите начать использовать picture прямо сейчас. Вам всего лишь нужно использовать Picturefill 2.0 — полизаполнение предоставляемое разработчиками из Filament Group .
После того, как вы скачаете файл picturefill.js в свой проект, он может применяться всего лишь загрузкой его в секцию head вашего сайта:
|
Также есть возможность загружать скрипт асинхронно для большей эффективности, о чем вы можете прочитать в документации Picturefill . Вместе с загрузкой этого скрипта, элемент picture будет работать так, как я описал, с небольшими ограничениями. ] -- > < source srcset = "smaller.jpg" media = "(max-width: 768px)" > < source srcset = "default.jpg" > < ! -- [ if IE 9 ] > < / video > < ! [ endif ] -- > < img srcset = "default.jpg" alt = "My default image" > < / picture >
Android 2.3
Также как IE9, Android 2.3 не видит элементы source внутри тэгов picture. Однако, он распознает атрибут srcset, когда тот присваивается обычному тэгу img. Убедитесь в том, что вы включаете запасной элемент img с дефолтным именем файла в атрибуте srcset для Android 2.3 или любого другого браузера со схожей проблемой.
Требуется JavaScript и родная поддержка медиа запросов
Так как это решение реализовано на JavaScript, соответственно, оно нуждается в JavaScript для корректной работы в браузере. Picturefill 2.0 не предоставляет решений для “no-js”, потому что в противном случае, множество изображений стало бы появляться на страницах, когда родная поддержка будет реализована. Однако, вы можете использовать Picturefill 1.2 если возможность “no-js” важна для вас.
Следующим требованием Picturefill является родная поддержка медиа запросов, для того чтобы запросы в атрибуте media работали. Все современные браузеры поддерживают медиа запросы, в то время как IE8 и ниже является единственным не поддерживающим браузером с небольшой остаточной базой пользователей .
Возможны дополнительные HTTP запросы
Для браузеров, имеющих родную поддержку srcset, но не поддерживающих picture, возможно заданное имя файла в запасном элементе img может быть запрошено до того, как более подходящее изображение будет определено в элементе img. Эта проблема временная и она решится тогда, когда родная поддержка picture будет реализована.
Для создания смарт-баннера вам нужно добавить фид - файл с информацией о товарах и услугах. Директ проанализирует содержание фида и автоматически сформирует смарт-баннер с товарными предложениями для показа в сетях. Вы можете использовать фид, загруженный при создании динамических объявлений.
Типы бизнеса и фидовДля загрузки фида нужно выбрать тип бизнеса, который вы рекламируете.
Фид Яндекс.Маркета (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 | Возможность купить товар:
|
id | Идентификатор товара. Обязательный атрибут. |
type | Тип описания предложения. Значение должно быть vendor.model . Обязательный атрибут. |
available | Возможность купить товар:
|
Элементы, входящие в
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).
Если произошла ошибка при добавлении фида (например, размер, формат фида или ссылка на него не соответствуют требованиям), вы увидите статус «Ошибка загрузки» и ссылку на отчет об ошибках.
Валидация файлаПри чтении файла проверяются следующие условия:
- присутствуют все обязательные элементы;
- все названия элементов являются корректными;
- каждый элемент присутствует не более одного раза.
При невыполнении любого из этих условий файл отклоняется.