Анализ сайта dekolehti.fi
Основное Готовность: 75%
Домен
dekolehti.fi
Состояние доменного имени
?
Проверяем корректность доменного имени и наличие технических проблем на уровне домена.
Домен второго уровня идеален для продвижения.
Отличный запоминающийся домен.
Ответ сервера
200 Успешный ответ
HTTP-код ответа и цепочка редиректов
?
Код 200 — страница доступна. Коды 3xx — редиректы (цепочки замедляют загрузку и размывают ссылочный вес). Коды 4xx/5xx — ошибки, поисковик не сможет проиндексировать страницу.
Сервер настроен корректно.
Цепочка редиректов:
http://dekolehti.fi
301 MovedPermanently
https://kotiliesi.fi/avainsana/deko/
200 OK
Безопасность
Сайт безопасен
Использование HTTPS и SSL-сертификат
?
HTTPS — обязательный стандарт. Google и Яндекс отдают предпочтение защищённым сайтам. Отсутствие SSL или просроченный сертификат ведут к предупреждениям в браузере и снижению позиций.
Не настроен HSTS (Strict-Transport-Security) — рекомендуется включить.
На сайте работает защищенный протокол ssl и сайт открывается по https.
Ssl-сертификат действителен до 27.09.2026 21:06:59.
HTTP автоматически перенаправляется на HTTPS.
Поздравляем! Сайт не содержится в реестре РКН.
Кодировка
UTF-8
Кодировка символов страницы
?
Стандарт — UTF-8. Неправильная кодировка вызывает нечитаемые символы и мешает поисковику корректно распознать текст страницы.
Указана кодировка на странице UTF-8.
Язык
fi
Атрибут lang в HTML-теге
?
Атрибут lang (<html lang="ru">) сообщает поисковикам и браузерам, на каком языке написана страница. Помогает при ранжировании в региональном поиске.
Язык документа указан явно: fi.
Скорость загрузки
~0,34сек
Время отклика сервера (TTFB)
?
Time To First Byte — время до получения первого байта от сервера. Норма до 200 мс. Медленный отклик ухудшает пользовательский опыт и ранжирование: Яндекс и Google учитывают скорость страниц.
Скорость загрузки сайта 0,34сек оптимальна.
Объем документа
236Кб
Размер HTML-кода страницы
?
Слишком большой HTML замедляет парсинг браузером и сканирование поисковым роботом. Рекомендуется не более 200 Кб.
Объем html-документа 236Кб оптимален.
Структура html-документа корректна.
Ресурсы
Ресурсы: 21
Внешние ресурсы страницы (CSS, JS, изображения)
?
Количество и тип подключённых ресурсов влияют на скорость загрузки. Большое число запросов увеличивает время рендеринга страницы.
Кол-во файлов ресурсов 21 много для одной страницы. Приемлемо до 10. Проведите оптимизацию файлов ресурсов!
Показать полный список ресурсов
| Тип | Название | Значение |
|---|---|---|
| stylesheet | text/css | https://kotiliesi.fi/wp-content/plugins/om-footer/assets/css/om-footer.css?ver=1.1.0 |
| stylesheet | text/css | https://kotiliesi.fi/wp-content/plugins/om-footer/assets/css/om-footer.css?ver=1.1.0 |
| stylesheet | text/css | https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/dist/main.css?ver=1786967071 |
| stylesheet | text/css | https://kotiliesi.fi/wp-content/plugins/miniorange-oauth-oidc-single-sign-on-multi/resources/css/style_login_widget.css?ver=6.9.6 |
| stylesheet | text/css | https://kotiliesi.fi/wp-content/plugins/miniorange-oauth-oidc-single-sign-on-multi/resources/css/style_login_widget.css?ver=6.9.6 |
| stylesheet | text/css | https://kotiliesi.fi/wp-content/plugins/hion-ai-search/assets/styles.css?ver=1786966801 |
| stylesheet | text/css | https://kotiliesi.fi/wp-content/plugins/hion-ai-search/assets/styles.css?ver=1786966801 |
| js | text/javascript | https://kotiliesi.fi/wp-includes/js/jquery/jquery.min.js?ver=3.7.1 |
| js | text/javascript | https://kotiliesi.fi/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1 |
| js | text/javascript | https://kotiliesi.fi/wp-content/plugins/om-preact-components/dist/main.js?ver=1776147292 |
| js | https://storage.googleapis.com/om-gravito-cmp/om_gravito_stubScriptTag.js | |
| js | https://securepubads.g.doubleclick.net/tag/js/gpt.js | |
| js | https://macro.adnami.io/macro/spec/adsm.macro.d1119eb6-8129-4a4d-860e-c8e439bdce09.js | |
| js | https://target.digitalaudience.io/bakery/scripts/da.js | |
| js | //applets.ebxcdn.com/ebx.js | |
| js | text/javascript | https://kotiliesi.fi/wp-content/cache/asauth/fi_blog1.js?ver=78 |
| js | text/javascript | https://kotiliesi.fi/wp-content/plugins/om-asteikko-auth-wp-plugin/js/asteikko-auth.js?ver=1.5.9 |
| js | text/javascript | https://kotiliesi.fi/wp-content/plugins/wp-optimizer/assets/dist/awpo.min.js?ver=1722410914 |
| js | text/javascript | https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/dist/app.js?ver=1786967071 |
| js | text/javascript | https://kotiliesi.fi/wp-content/plugins/hion-ai-search/assets/scripts.js?ver=1786966801 |
| js | https://storage.googleapis.com/digitiimi-cors-bucket/clever_ads.js |
Серверные заголовки
Кол-во: 12
HTTP-заголовки ответа сервера
?
Заголовки сервера передают браузеру и поисковику служебную информацию: кеширование, безопасность (CSP, HSTS), сжатие (gzip). Правильная настройка ускоряет загрузку и повышает защищённость.
Найдены серверные заголовки 12шт. Подробнее про серверные заголовки.
Показать полный список серверных заголовков
| Ключ | Значение |
|---|---|
| Date | Fri, 21 Aug 2026 06:53:51 GMT |
| Link | <https://kotiliesi.fi/wp-json/>; rel="https://api.w.org/" |
| Server | Apache/2.4.68 |
| X-Powered-By | PHP/8.3.33 |
| Vary | Cookie |
| x-batcache | Hit |
| x-batcache-ttl | 848 968 |
| Cache-Control | no-cache, max-age=0 |
| X-Cache | Miss from cloudfront |
| Via | 1.1 b555da360532e114fa684844896e0f6c.cloudfront.net (CloudFront) |
| x-amz-cf-pop | HEL51-P7 |
| x-amz-cf-id | RrlICaIYcyWPTDf9fVWr1HVrt-v4-jr5M0-GElUPvlk8mTJ_8U-3jg== |
CMS
Система управления сайтом (движок)
?
CMS — это движок, на котором работает сайт (WordPress, 1C-Bitrix, Tilda и др.). Знание CMS помогает понять возможности SEO-оптимизации и подобрать подходящие инструменты. «Не определена» — вероятно, самописный сайт или нестандартная сборка.
Сайт работает на CMS WordPress.
Веб-сервер
Программное обеспечение сервера
?
Веб-сервер — это ПО, которое отдаёт страницы посетителям (nginx, Apache, IIS, LiteSpeed и др.). Определяется по серверным заголовкам ответа (Server, X-Powered-By и т.п.). «Не определён» — сервер намеренно скрывает эти заголовки, это нормальная практика безопасности.
Сайт работает на веб-сервере Apache.
Мета-теги Готовность: 23%
Title
Deko - Kotiliesi.fi
Заголовок страницы в браузере и поисковой выдаче
?
Title — главный SEO-заголовок страницы. Влияет на CTR в поиске и ранжирование. Оптимальная длина: 50–70 символов. Ключевые слова — ближе к началу.
Необходимо увеличить число символов в title (текущее значение мало: 19, минимум: 25, оптимально: от 40 до 45)
Дублей словоформ в title не найдено.
Description
Описание страницы в поисковой выдаче (сниппет)
?
Meta Description — текст под заголовком в выдаче. Напрямую на позиции не влияет, но влияет на CTR. Оптимальная длина: 120–160 символов.
Установите мета-тег description!
Keywords
Список ключевых слов страницы (устаревший тег)
?
Meta Keywords не учитывается Яндексом и Google для ранжирования с 2009–2012 годов. Заполнение не обязательно, но не вредит. Конкурент может использовать содержимое для анализа.
Установите мета-тег keywords!
Канонический Url
https://kotiliesi.fi/avainsana/deko/
Указывает поисковику основную версию страницы
?
Canonical (rel=canonical) предотвращает проблему дублей страниц. Должен точно совпадать с URL проверяемой страницы. Неправильный canonical может передать ссылочный вес на другую страницу.
Канонический Url прописан корректно.
Robots
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
Директивы для поисковых роботов на уровне страницы
?
Meta Robots управляет индексацией конкретной страницы: index/noindex — индексировать ли, follow/nofollow — следовать ли по ссылкам. Noindex полностью исключает страницу из поиска.
Meta-тег robots со значениями index, follow не накладывает ограничений на индексирование и показ контента.
Адаптивность
width=device-width, initial-scale=1.0
Настройка масштабирования на мобильных устройствах
?
Тег viewport (<meta name="viewport">) сообщает браузеру, как масштабировать страницу на мобильных. Стандарт: width=device-width, initial-scale=1. Отсутствие — признак отсутствия мобильной версии.
Meta-тег viewport со значением-константой width=device-width задаёт ширину страницы в соответствии с размером экрана.
Meta-тег viewport со значением initial-scale=1.0 определяет масштаб 1:1, т.е. «не масштабировать».
Разметка OpenGraph
Кол-во: 5
Мета-теги для красивых превью в соцсетях
?
OpenGraph (og:title, og:description, og:image) управляет тем, как страница выглядит при репосте в социальных сетях и мессенджерах. Отсутствие OG-тегов — невзрачный превью при шеринге.
Разметка OpenGraph задана. Страница оптимизирована под социальные сети.
Показать полный список og мета-тегов
| Тип | Значение |
|---|---|
| og:locale | fi_FI |
| og:type | article |
| og:title | Deko Archives |
| og:url | https://kotiliesi.fi/avainsana/deko/ |
| og:site_name | Kotiliesi.fi |
Все мета-теги
Кол-во: 13
Полный список мета-тегов страницы
?
Таблица всех meta-тегов, включая нестандартные. Позволяет найти опечатки, дубли и лишние теги.
Найдены мета-теги 13шт. Мета-теги не видимы для человека и предназначены для обмена информацией между веб-страницей и поисковыми системами, браузерами и другими веб-службами. С ними роботы 🤖 и устройства ведут себя более ожидаемо.
Показать полный список мета-тегов
| Тип | Название | Значение |
|---|---|---|
| name | viewport | width=device-width, initial-scale=1.0 |
| name | viewport | width=device-width, initial-scale=1.0 |
| name | robots | index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1 |
| name | twitter:card | summary_large_image |
| name | twitter:site | @kotiliesi_lehti |
| name | generator | WordPress 6.9.6 |
| name | msapplication-TileImage | https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/images/favicons/favicon.ico |
| name | google-site-verification | tN7e2qmywWDaz_2pq5boXF8w0k26qq_5svPW2kjVL88 |
| property | og:locale | fi_FI |
| property | og:type | article |
| property | og:title | Deko Archives |
| property | og:url | https://kotiliesi.fi/avainsana/deko/ |
| property | og:site_name | Kotiliesi.fi |
Оптимизация Готовность: 47%
Структура
Ошибок нет
Семантические HTML-элементы страницы
?
Проверяет наличие основных структурных элементов: nav, header, footer, main. Корректная семантическая структура помогает поисковику понять архитектуру страницы.
Структура документа корректна (теги <html> и <body> присутствуют по одному на документ).
Контент
Есть ошибки
Объём и качество текстового содержимого
?
Анализирует объём полезного текста на странице. Слишком мало — страница может считаться малополезной. Слишком много — ухудшается читаемость и восприятие.
Слова из title 1 встречаются в тексте редко. Добавьте в контент страницы слова из тега <title>!
Абзацев с текстом 8 слишком мало. Добавьте больше абзацев с текстом (тег <p>)!
Среднее число слов в абзаце 5 слишком мало. Сделайте контент более читаемым!
Кол-во слов 361 слишком мало. Добавьте больше текста (минимум 400 слов)!
Кол-во знаков контента 3050 на странице оптимально.
Заголовки
Ошибок нет
Иерархия заголовков H1–H6
?
H1 должен быть один и содержать ключевой запрос. H2–H6 описывают подразделы. Пропуск уровней (H1 → H3) и несколько H1 — типичные ошибки, снижающие понятность страницы для поисковика.
На странице присутствуют заголовки <h1> 1. Это прекрасно.
На странице присутствуют заголовки <h2> 6. Это хорошо.
На странице присутствуют заголовки <h3> 14.
Тошнота
3,74
Насколько одно слово доминирует в тексте
?
Классическая тошнота = √(частота самого повторяющегося слова). Норма до 7–8: текст воспринимается естественно. Выше — поисковик может счесть страницу переспамленной.
Тошнота превышает норму 3. Измените текст страницы!
Академич. тошнота
29,64%
Насколько текст перенасыщен ключевыми словами
?
Академическая тошнота = (частота слова / общее количество слов) × 100%. Показывает долю конкретного слова в тексте. Норма 5–15%.
Академическая тошнота превышает норму 5-15%. Измените текст страницы!
Семантическое ядро
20
Наиболее часто встречающиеся слова на странице
?
Топ слов по частоте использования. Показывает, какие слова доминируют в тексте с точки зрения поисковика.
Контент страницы содержит осмысленный текст и слова.
Показать список слов
| Слово | Кол-во | Частота |
|---|---|---|
| sisustus | 14 | 3,88% |
| kotiliesi | 4 | 1,11% |
| näköislehti | 4 | 1,11% |
| seuraa | 4 | 1,11% |
| reseptihaku | 3 | 0,83% |
| deko-lehteä | 3 | 0,83% |
| kirjaudu | 2 | 0,55% |
| reseptit | 2 | 0,55% |
| ihmiset | 2 | 0,55% |
| hyvinvointi | 2 | 0,55% |
| terveys | 2 | 0,55% |
| käsityö | 2 | 0,55% |
| juhlat | 2 | 0,55% |
| yhteyttä | 2 | 0,55% |
| tilaan | 2 | 0,55% |
| vuotta | 2 | 0,55% |
| vaatehuoneen | 2 | 0,55% |
| avoinna | 2 | 0,55% |
| tietoa | 2 | 0,55% |
| horoskoopit | 2 | 0,55% |
Индексация Готовность: 30%
Индексирование
Ошибок нет
Разрешено ли индексирование страницы
?
Проверяет, не закрыта ли страница от индексации через robots.txt, meta robots или X-Robots-Tag. Страница, закрытая от индексации, не появится в поисковой выдаче.
Анкоров на странице 121 оптимально. Поисковые роботы обязательно проиндексируют сайт.
Robots.txt
Найден корректный robots.txt
Файл управления сканированием сайта роботами
?
Robots.txt указывает поисковым роботам, какие страницы сканировать, а какие — нет. Ошибки в файле могут случайно закрыть важные разделы от индексации.
Robots.txt настроен корректно. Размер файла: 242280 байт. Загружен за: 0сек.
Проверяемая страница не запрещена в robots.txt.
Robots.txt доступен по постоянному адресу
Цепочка редиректов для файла robots.txt:
http://dekolehti.fi/robots.txt
301 MovedPermanently
https://kotiliesi.fi/avainsana/deko/
200 OK
Показать содержимое robots.txt
<!DOCTYPE html>
<html lang="fi">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="profile" href="https://gmpg.org/xfn/11">
<link rel="icon" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/images/favicons/favicon.ico" sizes="any">
<link rel="icon" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/images/favicons/icon.svg" type="image/svg+xml">
<link rel="apple-touch-icon" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/images/favicons/apple-touch-icon.png">
<link rel="manifest" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/manifest.json" crossorigin="use-credentials">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- core preload --><link rel="preload" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/dist/main.css?ver=1786967071" as="style"><link rel="preload" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/dist/app.js?ver=1786967071" as="script"><!-- end of the core preload --><meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1">
<!-- This site is optimized with the Yoast SEO Premium plugin v24.7 (Yoast SEO v26.7) - https://yoast.com/wordpress/plugins/seo/ -->
<title>Deko - Kotiliesi.fi</title>
<link rel="canonical" href="https://kotiliesi.fi/avainsana/deko/">
<link rel="next" href="https://kotiliesi.fi/avainsana/deko/page/2/">
<meta property="og:locale" content="fi_FI">
<meta property="og:type" content="article">
<meta property="og:title" content="Deko Archives">
<meta property="og:url" content="https://kotiliesi.fi/avainsana/deko/">
<meta property="og:site_name" content="Kotiliesi.fi">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@kotiliesi_lehti">
<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"CollectionPage","@id":"https://kotiliesi.fi/avainsana/deko/","url":"https://kotiliesi.fi/avainsana/deko/","name":"Deko - Kotiliesi.fi","isPartOf":{"@id":"https://kotiliesi.fi/#website"},"primaryImageOfPage":{"@id":"https://kotiliesi.fi/avainsana/deko/#primaryimage"},"image":{"@id":"https://kotiliesi.fi/avainsana/deko/#primaryimage"},"thumbnailUrl":"https://kotiliesi.fi/wp-content/uploads/2026/08/web_10.-saunan-edessa.-kisko.jpg","breadcrumb":{"@id":"https://kotiliesi.fi/avainsana/deko/#breadcrumb"},"inLanguage":"fi"},{"@type":"ImageObject","inLanguage":"fi","@id":"https://kotiliesi.fi/avainsana/deko/#primaryimage","url":"https://kotiliesi.fi/wp-content/uploads/2026/08/web_10.-saunan-edessa.-kisko.jpg","contentUrl":"https://kotiliesi.fi/wp-content/uploads/2026/08/web_10.-saunan-edessa.-kisko.jpg","width":2000,"height":1333,"caption":"Elina Aalto kesämökillään."},{"@type":"BreadcrumbList","@id":"https://kotiliesi.fi/avainsana/deko/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Kotiliesi","item":"https://kotiliesi.fi/"},{"@type":"ListItem","position":2,"name":"Deko"}]},{"@type":"WebSite","@id":"https://kotiliesi.fi/#website","url":"https://kotiliesi.fi/","name":"Kotiliesi.fi","description":"","publisher":{"@id":"https://kotiliesi.fi/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://kotiliesi.fi/haku/?q={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fi"},{"@type":"Organization","@id":"https://kotiliesi.fi/#organization","name":"Kotiliesi","url":"https://kotiliesi.fi/","logo":{"@type":"ImageObject","inLanguage":"fi","@id":"https://kotiliesi.fi/#/schema/logo/image/","url":"https://kotiliesi.fi/wp-content/uploads/2019/08/ko_logo_black.png","contentUrl":"https://kotiliesi.fi/wp-content/uploads/2019/08/ko_logo_black.png","width":1000,"height":204,"caption":"Kotiliesi"},"image":{"@id":"https://kotiliesi.fi/#/schema/logo/image/"},"sameAs":["https://www.facebook.com/kotiliesi.fi/","https://x.com/kotiliesi_lehti","https://www.instagram.com/kotiliesi/","https://fi.pinterest.com/Kotiliesi/","https://www.youtube.com/channel/UCpIsFDvmbSBZyC63_saDgvA","https://fi.wikipedia.org/wiki/Kotiliesi"]}]}</script>
<!-- / Yoast SEO Premium plugin. -->
<link rel="preload" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/fonts/ChronicleSSm/ChronicleSSm-Bold.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/fonts/ChronicleSSm/ChronicleSSm-BoldItalic.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/fonts/ChronicleSSm/ChronicleSSm-Book.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/fonts/ChronicleSSm/ChronicleSSm-BookItalic.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/fonts/ChronicleDisplay/ChronicleDisp-Bold.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/fonts/ChronicleDisplay/ChronicleDisp-Italic.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/fonts/Lato/LatoLatin-Black.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/fonts/Lato/LatoLatin-Bold.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/fonts/Lato/LatoLatin-BoldItalic.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/fonts/Lato/LatoLatin-Italic.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/fonts/Lato/LatoLatin-Regular.woff2" as="font" type="font/woff2" crossorigin>
<script>
window.AsteikkoMagWidgets = {
siteUrl: "https:\/\/kotiliesi.fi" };
</script>
<style id="wp-img-auto-sizes-contain-inline-css" type="text/css">
img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
</style>
<style id="classic-theme-styles-inline-css" type="text/css">
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
/*# sourceURL=/wp-includes/css/classic-themes.min.css */
</style>
<style id="global-styles-inline-css" type="text/css">
:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
/*# sourceURL=global-styles-inline-css */
</style>
<link rel="stylesheet" id="om-footer-css" href="https://kotiliesi.fi/wp-content/plugins/om-footer/assets/css/om-footer.css?ver=1.1.0" type="text/css" media="print" onload="this.media='all';this.onload=null;">
<noscript><link rel="stylesheet" id="om-footer-css" href="https://kotiliesi.fi/wp-content/plugins/om-footer/assets/css/om-footer.css?ver=1.1.0" type="text/css" media="all">
</noscript><link rel="stylesheet" id="main-css" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/dist/main.css?ver=1786967071" type="text/css" media="all">
<link rel="stylesheet" id="style_login_widget-css" href="https://kotiliesi.fi/wp-content/plugins/miniorange-oauth-oidc-single-sign-on-multi/resources/css/style_login_widget.css?ver=6.9.6" type="text/css" media="print" onload="this.media='all';this.onload=null;">
<noscript><link rel="stylesheet" id="style_login_widget-css" href="https://kotiliesi.fi/wp-content/plugins/miniorange-oauth-oidc-single-sign-on-multi/resources/css/style_login_widget.css?ver=6.9.6" type="text/css" media="all">
</noscript><link rel="stylesheet" id="hion-ai-css-css" href="https://kotiliesi.fi/wp-content/plugins/hion-ai-search/assets/styles.css?ver=1786966801" type="text/css" media="print" onload="this.media='all';this.onload=null;">
<noscript><link rel="stylesheet" id="hion-ai-css-css" href="https://kotiliesi.fi/wp-content/plugins/hion-ai-search/assets/styles.css?ver=1786966801" type="text/css" media="all">
</noscript> <script type="text/javascript" id="om-website-analytics">
analyticsEvent = function() {};
analyticsSocial = function() {};
analyticsVPV = function() {};
analyticsClearVPV = function() {};
analyticsForm = function() {};
window.dataLayer = window.dataLayer || [];
dataLayer.push([]);
</script>
<script type="text/javascript" src="https://kotiliesi.fi/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script>
<script type="text/javascript" src="https://kotiliesi.fi/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script>
<script type="text/javascript" src="https://kotiliesi.fi/wp-content/plugins/om-preact-components/dist/main.js?ver=1776147292" id="om-preact-components-js"></script>
<link rel="https://api.w.org/" href="https://kotiliesi.fi/wp-json/"><link rel="alternate" title="JSON" type="application/json" href="https://kotiliesi.fi/wp-json/wp/v2/tags/18351"><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://kotiliesi.fi/xmlrpc.php?rsd">
<meta name="generator" content="WordPress 6.9.6">
<!-- Head tag start, do not remove -->
<!-- // kotiliesi.fi -->
<script type="text/javascript">
const timerStart = Date.now();
window.timerStart = timerStart;
var dfpDebug = document.location.href.indexOf("dfpdebug=1") > -1 ? true : false;
var cmpDebug = document.location.href.indexOf("cmpdebug=1") > -1 ? true : false;
var testSRA = document.location.href.indexOf("testsra=1") > -1 ? true : true;
var useAdvantage = useAdvantage ||location.href.includes('?testadvantage1');
</script>
<style>
.om-personalization-root {
opacity: 0;
display: none;
pointer-events: none;
transition: opacity 1.2s ease-in-out, display 1.2s allow-discrete;
}
.om-personalization-root.is-visible {
opacity: 1;
display: block;
pointer-events: auto;
}
@starting-style {
.om-personalization-root.is-visible {
opacity: 0;
}
}
.om-personalization-root-closeBtn {
position: absolute;
top: -10px;
right: -5px;
font-weight: 900;
font-family: "Lato";
color: #971567;
background-color: #fff;
border-radius: 50%;
padding: 0;
border: 1px solid #971567;
font-size: 14px;
z-index: 2000000;
display: flex;
align-items: center;
justify-content: center;
width: 25px;
height: 25px;
}
.om-personalization-floating-button__content {
padding: 12px 0px;
}
.om-personalization-floating-button {
bottom: 6px !important;
margin-left: 6px !important;
width: calc(100vw - 22px) !important;
}
</style>
<script src="https://storage.googleapis.com/om-gravito-cmp/om_gravito_stubScriptTag.js"></script>
<script>
if (location.href.indexOf('testnewcmp=1') >= -1) {
var cookieMatch = document.cookie.match(/(?:^|;\s*)TcString=([^;]+)/);
var tcString = cookieMatch ? decodeURIComponent(cookieMatch[1]) : null;
if (tcString || (window.tcstring_decoded && window.tcstring_decoded.tcString)) {
if (cmpDebug) {console.log('Testing local __tcfapi...')}
var decoded = window.tcstring_decoded || {};
var tcData = {
tcString: tcString || decoded.tcString,
version: 2,
gdprApplies: true,
cmpId: decoded.cmpId || 0,
cmpVersion: decoded.cmpVersion || 0,
tcfPolicyVersion: 0,
vendorListVersion: decoded.vendorListVersion || 0,
eventStatus: "tcloaded",
cmpStatus: "loaded",
purpose: decoded.purpose || { consents: {}, legitimateInterests: {} },
vendor: decoded.vendor || { consents: {}, legitimateInterests: {} },
publisher: decoded.publisher || { consents: {}, legitimateInterests: {} },
specialFeatureOptins: decoded.specialFeatureOptins || {}
};
var __tcfapiListeners = {};
var __tcfapiNextId = 1;
window.__tcfapi = function(command, version, callback, parameter) {
var haveValidString = !!tcData.tcString;
switch (command) {
case "ping":
callback({
cmpLoaded: true,
cmpStatus: "loaded",
tcfPolicyVersion: tcData.tcfPolicyVersion
}, true);
break;
case "getTCData":
callback(haveValidString ? tcData : null, haveValidString);
break;
case "getTCString":
callback(haveValidString ? tcData.tcString : null, haveValidString);
break;
case "addEventListener":
var id = __tcfapiNextId++;
__tcfapiListeners[id] = callback;
callback(haveValidString ? tcData : null, haveValidString);
break;
case "removeEventListener":
if (parameter && __tcfapiListeners[parameter]) {
delete __tcfapiListeners[parameter];
callback(true, true);
} else {
callback(false, false);
}
break;
default:
callback(null, false);
}
if (cmpDebug) {
console.log("[__tcfapi call]", {command, version, parameter});
console.log("[__tcfapi response]", {
time: (Date.now() - timerStart) + 'ms',
command: command,
returnedTcString: haveValidString ? tcData.tcString : null,
decodedObject: decoded || null
});
}
};
}
}
if (cmpDebug) {
__tcfapi('getTCData', 2, (tcData, success) => {
console.log('testdata3: ' + (Date.now() - timerStart) + 'ms --> ', tcData, success);
});
}
</script>
<script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" crossorigin="anonymous"></script>
<script>
function waitForElement(selector) {
return new Promise(function(resolve, reject) {
var element = document.querySelector(selector);
if(element) {
resolve(element);
return;
}
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
var nodes = Array.from(mutation.addedNodes);
for(var node of nodes) {
if(node.matches && node.matches(selector)) {
observer.disconnect();
resolve(node);
return;
}
};
});
});
observer.observe(document.documentElement, { childList: true, subtree: true });
});
}
function waitForCondition(checkFn, interval = 50, timeout = 5000) {
return new Promise((resolve, reject) => {
try {
if (checkFn()) {
resolve(true);
return;
}
} catch (e) {
// ignore early errors (e.g., googletag not yet defined)
}
const start = Date.now();
const timer = setInterval(() => {
try {
if (checkFn()) {
clearInterval(timer);
resolve(true);
} else if (Date.now() - start > timeout) {
clearInterval(timer);
reject(new Error('Timeout waiting for condition'));
}
} catch (e) {
// still ignore transient errors
}
}, interval);
});
}
var cmpRnd = Math.floor(Math.random() * 999999);
if (location.href.indexOf('testcmp=1') > -1) {
waitForElement("body").then(function(element) {
(function(d,s,e,t){e=d.createElement(s);e.type='text/java'+s;e.async='async';
e.src='http'+('https:'===location.protocol?'s://':'://')+'digitiimi.otavamedia.fi/testi/cmp/otavaScript_stacks_purettu.js?' + cmpRnd;
t=d.getElementsByTagName(s)[0];t.parentNode.insertBefore(e,t);})(document,'script');
});
} else {
waitForElement("body").then(function(element) {
(function(d,s,e,t){e=d.createElement(s);e.type='text/java'+s;e.async='async';
e.src='http'+('https:'===location.protocol?'s://':'://')+'storage.googleapis.com/om-gravito-cmp/otavaScript.js';
t=d.getElementsByTagName(s)[0];t.parentNode.insertBefore(e,t);})(document,'script');
});
}
// quick fix for removing "Reseptihaku" - 17.06.2025 09.34.55
waitForElement("#aisearch").then(function(element) {
if (jQuery('#aisearch').length > 0) {jQuery('#aisearch').remove()}
});
</script>
<script async="async" src="https://macro.adnami.io/macro/spec/adsm.macro.d1119eb6-8129-4a4d-860e-c8e439bdce09.js"></script>
<script type="text/javascript">
var jonesOverride = 0;
var cxContextualIds = [], cxSegmentIds = [];
var deliveryType = '';
checkCMPConditions(tcstring_decoded, [1,3,4], [2,7,9,10], [], [755]).then(result => {
if (result) {
if (dfpDebug) {console.log("Consent met: GAM IS ALLOWED TO SERVE personalized ads...")}
//googletag.pubads().setTargeting("deliveryType", "normal");
deliveryType = 'normal';
} else {
checkCMPConditions(tcstring_decoded, [1], [2,7,9,10], [], [755]).then(result => {
if (result) {
if (dfpDebug) {console.log("Consent met: GAM IS ALLOWED TO SERVE Non-personalized ads...")}
//googletag.pubads().setTargeting("deliveryType", "npa");
deliveryType = 'npa';
} else {
checkCMPConditions(tcstring_decoded, [], [2,7,9,10], [], [755]).then(result => {
if (result) {
if (dfpDebug) {console.log("Consent met: GAM IS ALLOWED TO SERVE Limited ads...")}
//googletag.pubads().setTargeting("deliveryType", "lads");
deliveryType = 'lads';
useHBM = false;
} else {
if (dfpDebug) {console.log("Consent not met: GAM IS ALLOWED TO SERVE TAD...")}
//googletag.pubads().setTargeting("deliveryType", "tad");
deliveryType = 'tad';
useHBM = false;
}
});
}
});
}
});
var cX = cX || { options: { tcf20: true } }; cX.callQueue = cX.callQueue || [];
var cxDefaultSegments = '8o1gwyxui6y1,aavib3epzfey,18hq77meo1fv5,8nqech16gy6q';
if (dfpDebug) {console.log('cXsegmentIds1: ' + cxSegmentIds)}
checkCMPConditions(tcstring_decoded, [1,3,4], [], [412], []).then(result => {
if (result) {
if (dfpDebug) {console.log("Consents met: PIANO IS GOOD TO GO...")}
if (dfpDebug) {console.log("cX can load via tcstring...")}
// Async load of cx.js
(function(d,s,e,t){e=d.createElement(s);e.type='text/java'+s;e.async='async';
e.src='http'+('https:'===location.protocol?'s://s':'://')+'cdn.cxense.com/cx.js';
t=d.getElementsByTagName(s)[0];t.parentNode.insertBefore(e,t);})(document,'script');
if(typeof window.localStorage === 'object' && typeof window.localStorage.getItem === 'function') {
if (dfpDebug) {console.log('cX: ls available, getting segments...')}
cxSegmentIds = localStorage.getItem('_cX_segmentInfo');
if (cxSegmentIds && cxSegmentIds.trim().length > 0) {
cxSegmentIds = cxSegmentIds.split(',');
if (dfpDebug) console.log('cX: Calling dfp.init() with lsSegments:', cxSegmentIds);
dfp.init(cxSegmentIds);
} else {
if (dfpDebug) {
console.log('cX: ls cxSegmentIds.trim().length = 0...');
console.log('cX: Calling dfp.init() with default segments...');
}
dfp.init(cxDefaultSegments);
}
}
waitForCondition(() => window.cX && cX.loaded).then(() => {
if (dfpDebug) {console.log('cx.loaded, calling cX.getSegments...')}
cX.getSegments('f1ab28b7c9202ce3defa8bb2979a88f90c7a5ab2', function(segments) {
cxSegmentIds = [];
cxContextualIds = [];
if (dfpDebug) console.log('cX.getSegments length: ' + segments.length);
if (!segments || !Array.isArray(segments) || !segments.length) {
if (dfpDebug) console.warn('cX: Segment fetch failed or empty:', segments);
}
cX.Array.forEach(segments, function (cxTypedSegment, index) {
if (cxTypedSegment.type == 'contextual') {
cxContextualIds.push(cxTypedSegment.id);
} else if (cxTypedSegment.type == 'traffic') {
cxSegmentIds.push(cxTypedSegment.id);
}
});
if(typeof window.localStorage === 'object' && typeof window.localStorage.getItem === 'function') {
localStorage.setItem('_cX_segmentInfo', cxSegmentIds.join(','));
if (dfpDebug) console.log('cX: Segments fetched and stored:', cxSegmentIds);
}
});
}).catch(err => console.warn(err.message));
} else {
if (dfpDebug) {console.log("Consents NOT met: CAN NOT USE PIANO!!!")}
__tcfapi("addEventListener", 2, function (TCData) {
if (dfpDebug) {console.log('Got an answer from TCData...')}
if (TCData.tcString && "cmpuishown" === TCData.eventStatus || 'tcloaded' === TCData.eventStatus || 'useractioncomplete' === TCData.eventStatus) {
//initDFP(cxSegmentIds);
if (dfpDebug) {
console.log('No cX, calling dfp.init() with default segments...');
}
dfp.init(cxDefaultSegments);
}
});
}
});
if (cmpDebug) {
console.time("consentReady");
console.time("windowloaded");
(function() {
document.addEventListener('gravito:tcfv2:client', function (event) {
console.log('Event detail:', JSON.parse(JSON.stringify(event)));
if(gravitoCMP.currentState) {
console.log('%c Gravito currentState ready...', 'background: red; color: #fff');
console.log('Gravito currentstate ready on timerstart: ' + (Date.now() - timerStart) + 'ms...');
console.log('customPurposes: ' + gravitoCMP.currentState.customPurposes);
console.log('nonTCFVendors: ' + gravitoCMP.currentState.nonTCFVendors);
}
}, true);
})();
__tcfapi("addEventListener", 2, function (TCData) {
console.log('tcString: ' + TCData.tcString);
console.log('eventStatus: ' + TCData.eventStatus);
if ( TCData.tcString && "cmpuishown" === TCData.eventStatus || 'tcloaded' === TCData.eventStatus || 'useractioncomplete' === TCData.eventStatus ) {
console.log('%c CMP ready...', 'background: red; color: #fff');
console.timeEnd("consentReady");
console.log('Consent ready on timerstart: ' + (Date.now() - timerStart) + 'ms...');
} else {
console.log('CMP not ready...');
console.timeEnd("consentReady");
console.log('Consent ready on timerstart: ' + (Date.now() - timerStart) + 'ms...');
}
});
window.onload = (event) => {
console.log('%c Window loaded...', 'background: red; color: #fff');
console.timeEnd("windowloaded");
console.log('Window loaded on timerstart: ' + (Date.now() - timerStart) + 'ms...');
console.log('%c Gravito currentState on Window loaded...', 'background: red; color: #fff');
console.log(gravitoCMP.currentState);
};
}
var adsmtag = adsmtag || {};
adsmtag.cmd = adsmtag.cmd || [];
var adLocation = 'content';
if (adLocation == '') {adLocation = 'other'}
//if (adLocation == 'content' && location.href.indexOf('/resepti/') > -1) {adLocation = 'recipes'}
var hideAllAds = false;
var showAds = true;
var showVideo = true;
var takeOver = false;
var blockJP = false;
var fpaShown = false;
var fpaIndex = 25;
var userdpbjs = false;
var hb_setup = 'owpbjs';
var targetingValue = '';
var articleCategory = '', articleCategories = '', recipeTheme = '', articleTags = '', articleSection = '';
var useHBM = true;
useHBM = document.location.href.indexOf('/asuntomessut/') > -1 ? false : true;
var paidContent = false, subscriber = false, paywallState = 'closed';
if (window.dataLayer) {
dataLayer.forEach(function (dataLayerItem) {
if (dataLayerItem['PrimaryCategory'] !== '' && dataLayerItem['PrimaryCategory'] !== undefined) {
articleCategory = dataLayerItem['PrimaryCategory'].toLocaleString().toLowerCase().replace(/, /g, ',');
console.log('ArticleCategory: ' + articleCategory);
}
if (dataLayerItem['Categories'] !== '' && dataLayerItem['Categories'] !== undefined) {
articleCategories = dataLayerItem['Categories'].toLocaleString().toLowerCase().replace(/, /g, ',');
console.log('Categories: ' + articleCategories);
}
if (dataLayerItem['Tags'] !== '' && dataLayerItem['Tags'] !== undefined) {
articleTags = dataLayerItem['Tags'].toLocaleString().toLowerCase().replace(/, /g, ',');
console.log('Tags: ' + articleTags);
}
if (dataLayerItem['Section'] !== '' && dataLayerItem['Section'] !== undefined) {
articleSection = dataLayerItem['Section'].toLowerCase().replace(/, /g, ',');
if (dfpDebug) {console.log('ArticleSection: ' + articleSection);}
} else if (location.href.indexOf('/resepti/') > -1) {
articleSection = 'Resepti';
dataLayerItem['Section'] = articleSection;
if (dfpDebug) {console.log('ArticleSection: ' + articleSection);}
}
if (dataLayerItem['RecipeTheme'] !== '' && dataLayerItem['RecipeTheme'] !== undefined) {
recipeTheme = dataLayerItem['RecipeTheme'].toLocaleString().toLowerCase().replace(/, /g, ',');
console.log('RecipeTheme: ' + recipeTheme);
}
if (dataLayerItem['PaidContent'] !== '' && dataLayerItem['PaidContent'] !== undefined) {
paidContent = dataLayerItem['PaidContent'];
}
if (dataLayerItem['PaidUser'] !== '' && dataLayerItem['PaidUser'] !== undefined) {
subscriber = dataLayerItem['PaidUser'];
}
if (dataLayerItem['PaywallState'] !== '' && dataLayerItem['PaywallState'] !== undefined) {
paywallState = dataLayerItem['PaywallState'].toLocaleString().toLowerCase();
}
});
if(articleCategory.indexOf("pääsiäinen") > -1 || articleCategories.indexOf("pääsiäinen") > -1 || recipeTheme.indexOf("pääsiäinen") > -1 || articleTags.indexOf("pääsiäinen") > -1) {
takeOver = true;
targetingValue = 'pääsiäinen';
}
if(articleCategory.indexOf("joulu") > -1 || articleCategories.indexOf("joulu") > -1 || recipeTheme.indexOf("joulu") > -1 || articleTags.indexOf("joulu") > -1) {
takeOver = true;
targetingValue = 'joulu';
}
if(articleCategory.indexOf("grillaus") > -1 || articleCategories.indexOf("grillaus") > -1 || recipeTheme.indexOf("grillaus") > -1 || articleTags.indexOf("grilli kuumaksi") > -1 || articleTags.indexOf("grilli") > -1) {
takeOver = true;
targetingValue = 'grillikuumaksi';
}
if(articleCategory.indexOf("puutarha") > -1 || articleCategories.indexOf("puutarha") > -1 || articleTags.indexOf("ihana puutarha") > -1 || articleTags.indexOf("puutarha") > -1) {
takeOver = true;
targetingValue = 'ihanapuutarha';
}
} else {
console.error('DataLayer is not defined.')
}
if (document.location.href.indexOf('/tilaajille/') > -1) {hideAllAds = true; console.log('Tilaajille hideAllAds = true...');}
if (document.location.href.indexOf('/asuntomessut/') > -1) {blockJP = true;}
if (document.location.href.indexOf("haltuunotto=hampurilainen") > -1) {
takeOver = true;
targetingValue = 'hampurilainen';
}
if (document.location.href.indexOf("haltuunotto=hampurilainen2") > -1) {
takeOver = true;
targetingValue = 'hampurilainen2';
}
var dfpDebug = false;
if (document.location.href.indexOf("dfpdebug=1") > -1 || dfpDebug) {
dfpDebug = true;
}
var rnd = Math.floor(Math.random() * 50);
if (dfpDebug) {console.log('rnd: ' + rnd + ', fpa: ' + cmpGetCookie('fullpagead'));}
var googletag = googletag || {};
googletag.cmd = googletag.cmd || [];
googletag.cmd.push(function() {
googletag.pubads().addEventListener('slotRenderEnded', function(event) {
if (event.slot.getSlotElementId().includes('dfp__interstitial')) {
if (event.isEmpty) {
if (dfpDebug){console.log('Interstitial empty...');}
}
}
});
});
window.dfp = {
location: 'content',
//location: adLocation,
serviceName: 'kotiliesi',
visibility: (document.documentElement.clientWidth >= 1020 ? 'desktop' : 'mobile'),
isAndroid: (navigator.userAgent.match(/Android/i) ? true : false),
fetchMarginPercent: (document.documentElement.clientWidth >= 1020 ? 200 : 200),
renderMarginPercent: (document.documentElement.clientWidth >= 1020 ? 100 : 100),
networkcode: '135812570',
initialized: false,
definedAds: {},
lazyload: false, // Keep this false
enableAsync: true,
serviceStarted: false,
waypointDFP: [],
// Sizes: array of sizes. If no sizes are defined, it is assumed that the ad unit is an out-of-place ad
// Visibility options: desktop, mobile, all
slots : {
'desk-1' : {
sizes: [[1,1], [728,90], [980,120], [980,400], [980,552], [980,600]],
visibility: 'desktop'
},
'desk-1-wallpaper' : {
sizes: [[1, 2]],
visibility: 'desktop'
},
'desk-2' : {
sizes: [[980,552], [980,400], [980,120], [970,570], [728,90], [620,891], [300,300], [300,250], [2,2], [1,2]],
visibility: 'desktop'
},
'desk-3' : {
sizes: [[980,552], [980,400], [980,120], [620,891], [300,300], [300,250]],
visibility: 'desktop'
},
'rectangle-1' : {
sizes: [[300,600], [300,300], [300,250], ['fluid']],
visibility: 'desktop',
},
'rectangle-2' : {
sizes: [[300,600], [300,300], [300,250], ['fluid']],
visibility: 'desktop',
},
'topad-desk': {
sizes: [[1, 2],[970, 970]],
visibility: 'desktop'
},
'interstitial' : {
sizes: [1, 1],
visibility: 'all'
},
'mob-1' : {
sizes: [[320, 600],[320, 320],[300,600], [300,431], [300,300], [300,250], [300,150], ['fluid']],
visibility: 'mobile'
},
'mob-2' : {
sizes: [[320, 600],[320, 320],[300,600], [300,431], [300,300], [300,250], [300,240], [300,150], ['fluid']],
visibility: 'mobile'
},
'mob-3' : {
sizes: [[320, 600],[320, 320],[300,600], [300,431], [300,300], [300,250], [300,150], ['fluid']],
visibility: 'mobile'
},
'topad-mob': {
sizes: [[1, 2], [300, 220], [300,250],[300, 300],[300, 600]],
visibility: 'mobile'
},
'topad-mob_old': {
sizes: ['fluid'],
visibility: 'mobile'
},
'native-bottom' : {
sizes: ['fluid'],
visibility: 'all'
},
'native-card-1': {
sizes: [[1, 1], ['fluid']],
visibility: 'all'
},
'native-card-1-new': {
sizes: [[1, 1], ['fluid']],
visibility: 'all'
},
'native-card-2': {
sizes: [[1, 1], ['fluid']],
visibility: 'all'
},
'native-card-parade': {
sizes: [[1, 1], ['fluid']],
visibility: 'all'
},
'native-card-parade-2': {
sizes: [[1, 1], ['fluid']],
visibility: 'all'
},
'native-card-section-1': {
sizes: [[1, 1], ['fluid']],
visibility: 'all'
},
'native-card-section-2': {
sizes: [[1, 1], ['fluid']],
visibility: 'all'
},
'native-card-section-3': {
sizes: [[1, 1], ['fluid']],
visibility: 'all'
},
'native-card-section-4': {
sizes: [[1, 1], ['fluid']],
visibility: 'all'
},
'native-card-section-5': {
sizes: [[1, 1], ['fluid']],
visibility: 'all'
},
'native-card-section-6': {
sizes: [[1, 1], ['fluid']],
visibility: 'all'
},
'native-card-section-7': {
sizes: [[1, 1], ['fluid']],
visibility: 'all'
},
'native-card-section-8': {
sizes: [[1, 1], ['fluid']],
visibility: 'all'
},
'native-card-section-9': {
sizes: [[1, 1], ['fluid']],
visibility: 'all'
},
'native-card-section-10': {
sizes: [[1, 1], ['fluid']],
visibility: 'all'
},
'native-text-1': {
sizes: [[1, 1], ['fluid']],
visibility: 'all'
},
'native-recipe-1': {
sizes: [[320, 150]],
visibility: 'mobile'
}
},
pbConfig: {
desktop: {
script: "https://otava-cdn.relevant-digital.com/static/tags/5e4c4c2d53ca952a90fa7fde.js",
configId: {
frontpage: "6094fdc6e50f93cf32beac8e",
content: "6094fea655f32ad7abbeac8f",
blogs: "6094ff2d70099c12afbeac90",
recipes: "6094ff6b9c7e9236a0beac91"
}
},
mobile: {
script: "https://otava-cdn.relevant-digital.com/static/tags/5e4c4c2d53ca952a90fa7f8f.js",
configId: {
frontpage: "6098f67c627b20a7020228b6",
content: "6098f6c36faca408510228b7",
blogs: "6098f6d42526a54b500228b8",
recipes: "6098f6e311cec8a7ac0228b9"
}
}
},
displayAdslot: function (id) {
//if (!this.initialized) this.init();
var that = this;
var parts = id.split('__');
var parts = parts[1].split('_');
var slotName = parts[0];
if (testSRA) {
//if (!(slotName.includes('native'))) {
// return;
//}
return;
}
// Checking that the native adslot is known
if (slotName.includes('native') && this.slots.hasOwnProperty(slotName)) {
googletag.cmd.push(function () {
that.defineNative(id, slotName);
googletag.display(id);
if (dfpDebug) {console.log('googletag.display for ' + slotName + '...')}
});
} else {
// Checking that the adslot is known and visibility matches
if (this.slots.hasOwnProperty(parts[0]) && ["all", this.visibility].indexOf(this.slots[parts[0]]['visibility'] || 'all') >= 0) {
if (parts[0] == 'mob-3') {
setTimeout(function(){
googletag.cmd.push(function () {
var slot = that.defineSlot(parts[0], id);
googletag.display(id);
if (dfpDebug) {console.log('googletag.display for ' + parts[0] + '..')}
});
}, 50)
} else {
googletag.cmd.push(function () {
var slot = that.defineSlot(parts[0], id);
googletag.display(id);
if (dfpDebug) {console.log('googletag.display for ' + parts[0] + '..')}
//if (slotName == 'mob-1' || slotName == 'mob-2') {
// var dfpReady = setInterval(function() {
// if(window.googletag && googletag.pubadsReady) {
// if (dfpDebug) {console.log('//googletag.pubads().refresh([slot]) for ' + id + '..')}
// googletag.pubads().refresh([slot]);
// clearInterval(dfpReady);
// }
// }, 100)
//}
});
}
}
}
},
displayAdslotInfinite: function (id) {
//if (!this.initialized) this.init();
var that = this;
var parts = id.split('__');
var parts = parts[1].split('_');
// Checking that the adslot is known and visibility matches
if (this.slots.hasOwnProperty(parts[0]) && ["all", this.visibility].indexOf(this.slots[parts[0]]['visibility'] || 'all') >= 0) {
googletag.cmd.push(function () {
var slot = that.defineSlot(parts[0], id);
googletag.display(id);
//googletag.pubads().refresh([slot]);
googletag.pubads().refresh([slot], {changeCorrelator: false});
console.log('Infinite slot "' + id + '" refreshed!');
});
}
},
defineSlot: function (slotName, id) {
var id = id || 'dfp__' + slotName;
var path = this.networkcode + '/' + this.serviceName + '/' + this.location + '/' + slotName;
if (slotName == 'interstitial' || slotName.includes('topad-')) {
path = this.networkcode + '/' + window.dfp.serviceName + '/content/' + slotName;
}
this.definedAds[id] = true;
//console.log('defineSlot: ' + slotName + '#' + id);
if (typeof this.slots[slotName]['sizes'] !== 'undefined') {
if (dfpDebug) {console.log('defineSlot for ' + slotName + '...')}
return googletag.defineSlot(path, this.slots[slotName]['sizes'], id).addService(googletag.pubads()).setTargeting('adslotid', id.replace('dfp__',''));
} else {
return googletag.defineOutOfPageSlot(path, id).addService(googletag.pubads());
}
},
defineNative: function(opt_div, slotName) {
var opt_div = opt_div || 'dfp__' + slotName;
var adUnitPath = this.networkcode + '/' + this.serviceName + '/native/' + slotName;
this.definedAds[opt_div] = true;
//console.log('defineNative: ' + slotName + '#' + opt_div;
//return googletag.defineSlot(adUnitPath, 'fluid', opt_div).addService(googletag.pubads());
return googletag.defineSlot(adUnitPath, this.slots[slotName]['sizes'], opt_div).addService(googletag.pubads()).setTargeting('adslotid', opt_div.replace('dfp__',''));
},
init: function (cXsegmentIds) {
//if (dfpDebug) {console.log('Initin segmentit: ' + cXsegmentIds)}
var that = this;
if (!this.serviceStarted) {
googletag.cmd.push(function () {
/*
googletag.pubads().addEventListener('slotRenderEnded', function(event) {
const itemId = event.slot.getSlotElementId();
if (!event.isEmpty && jQuery('#'+itemId).length && jQuery('body.home').length) {
const element = jQuery('#'+itemId).parent();
const items = element.data('items');
if (items > 1 || element.hasClass("grid")) {
element.find('article').last().css({display: "none"});
}
}
});
*/
if (dfpDebug) {
googletag.pubads().addEventListener('slotRenderEnded', function(event) {
if (event.slot.getSlotElementId() == 'dfp__interstitial') {
if (!event.isEmpty) {
console.log('Advertiser ID:', event.advertiserId);
console.log('Campaign ID: ', event.campaignId);
console.log('Line Item ID:', event.lineItemId);
console.log('Creative ID: ', event.creativeId);
console.log('Size:', event.size);
}
}
});
}
googletag.pubads().addEventListener('slotRenderEnded', function(event) {
if (dfpDebug && 1 == 2) {
var origAdSlotId = event.slot.getSlotElementId();
var acceptedSlotIds = ["mob-1_1","mob-2_1","mob-3_1","mob-3_22","mob-3_23","mob-2_1","2_222","3_21","3_24","3_25","3_26","3_27","3_28","3_29"];
if (dfpDebug) {
if (event.slot.getAdUnitPath().indexOf('/recipes/mob-1') > -1) {
console.log('Slot path for slot ' + origAdSlotId + ': ' + event.slot.getAdUnitPath());
console.log('Slot targeting for slot ' + origAdSlotId + ': ' + event.slot.getTargeting("hb_deal"));
}
}
if (acceptedSlotIds.some(value => origAdSlotId.endsWith(value))) {
if (dfpDebug) {console.log('adSlotId is allowed for FRB...')}
var adPath = 'kotiliesi';
if (event.isEmpty) {
setTimeout(function() {
var newAdSlotId = origAdSlotId.replace("-","_") + '_111';
var adSlotName = origAdSlotId.substr(origAdSlotId.indexOf("__")+2);
adSlotName = adSlotName.substr(0, adSlotName.indexOf("_"));
if (dfpDebug) {console.log('adSlotName: ' + adSlotName)};
if (dfpDebug) {console.log('Creating new adslot: ' + '#' + origAdSlotId)};
jQuery('#' + origAdSlotId).after('<div id="' + newAdSlotId + '" class="' + adSlotName + '-article"><script>var ' + newAdSlotId + '; googletag.cmd.push(function(){' + newAdSlotId + ' = googletag.defineSlot("/135812570/'+ adPath +'/' + adLocation + '/' + adSlotName + '", [[300,250],[300,300],[300,431],[300,600],[320,320]], "' + newAdSlotId + '").addService(googletag.pubads()).setTargeting("adslotid", ["' + origAdSlotId.replace("dfp__","") + '-111","frb"])});googletag.cmd.push(function() {googletag.display("' + newAdSlotId + '")});<\/script><\/div>').css('display','none');
if (deliveryType == 'normal') {
relevantDigital.cmd.push(function() {
relevantDigital.loadPrebid({configId: pbjsConf, manageAdserver: false, collapseEmptyDivs: true, collapseBeforeAdFetch: false, noGpt: true, allowedDivIds: [newAdSlotId], noSlotReload: true});
if (dfpDebug) {console.log('Requesting new ad via HBM to: #' + newAdSlotId)};
});
} else {
//googletag.pubads().refresh([newAdSlotId]);
if (dfpDebug) {console.log('Requesting new ad via GAM to: #' + newAdSlotId)};
}
}, 1000);
} else {
if (dfpDebug) {console.log('Ad slot ' + origAdSlotId + ' was not empty...')};
}
}
}
if (event.slot.getSlotElementId().indexOf('dfp__interstitial') > -1) {
if (event.isEmpty) {
if (dfpDebug) {console.log('Fpa is empty, calling webinterstitial...')}
window.canRunWebInterstitial = true;
} else {
if (dfpDebug) {console.log('BBW: preventing sticky player when fpa was shown...')}
window.bluebillywig = window.bluebillywig || {};
window.bluebillywig.cmd = window.bluebillywig.cmd || [];
//window.bluebillywig.cmd.push(function($$api) {
// //const originalStickyMode = $$api.getPlayoutData().stickyMode;
// $$api.updatePlayout({stickyMode: 'none'});
// //$$api.updatePlayout({stickyMode: originalStickyMode});
//});
window.bluebillywig.cmd.push({
playerId: '/p/inarticle/a/kotiliesi',
callback: function($$api) {
$$api.updatePlayout({stickyMode: 'none'});
}
});
}
}
if (event.slot.getSlotElementId().indexOf('dfp__topad') > -1) {
if (!event.isEmpty) {
if (dfpDebug) {console.log('Topad actice, hiding popup...')}
waitForElement("#KA_popup").then(function(element) {
jQuery('#KA_popup').css('display','none');
});
}
}
if ((dfpDebug && 1 == 2) || location.href.indexOf('hidenative=1') >= -1) {
const origAdSlotId = event.slot.getSlotElementId();
const targetSlotRegex = /^dfp__native-card-[12]_/;
if (targetSlotRegex.test(origAdSlotId)) {
if (event.isEmpty) {
const adElement = document.getElementById(origAdSlotId);
if (adElement) {
const listItem = adElement.closest('li');
const listContainer = adElement.closest('ul');
if (listItem && listContainer && listContainer.closest('aside.wp-block-otavamedia-google-ad-slot')) {
listContainer.appendChild(listItem);
if (dfpDebug) {console.log('NATIVE: Native card list order changed for: ' + origAdSlotId)}
}
}
}
}
if (dfpDebug) {console.log('NATIVE: Checking slot replace for rp: ' + origAdSlotId)}
//const acceptedSlotIds = ['dfp__mob-1_1', 'dfp__native-card-section-9_1', 'dfp__native-card-2_1', 'dfp__native-card-2_2', 'dfp__native-card-2_3', 'dfp__native-card-2_4'];
//if (!acceptedSlotIds.includes(origAdSlotId)) return; //exact match
//const acceptedSlotIds = ['dfp__mob', 'dfp__native-card'];
const acceptedSlotIds = ['dfp__mob'];
if (!acceptedSlotIds.some(id => origAdSlotId.includes(id))) return;
if (!event.isEmpty) return;
if (dfpDebug) {console.log('NATIVE: Replacing "' + origAdSlotId + '" with rp...')}
if (origAdSlotId.includes('dfp__mob-')) {
loadReadpeakAd(origAdSlotId, '#' + origAdSlotId, 'append', jQuery('#' + origAdSlotId));
} else {
loadReadpeakAd(origAdSlotId, '#' + origAdSlotId, 'replaceWith');
}
}
});
if (document.location.href.indexOf("testbbw=1") > -1) {
googletag.pubads().addEventListener('slotResponseReceived', function(event) {
if (event.slot.getSlotElementId() == 'outstream') {
if (!event.isEmpty) {
console.log('Slot ' + event.slot.getSlotElementId() + ' is NOT empty...');
} else {
console.log('Slot ' + event.slot.getSlotElementId() + ' is empty...');
}
}
});
}
if (jQuery('body').hasClass('single-post') && takeOver && targetingValue == 'joulu' && document.location.href.indexOf("shownative=1") > -1) {
googletag.pubads().addEventListener('slotRenderEnded', function(event) {
if (event.slot.getSlotElementId() == 'dfp__native-card-1') {
if (!event.isEmpty) {
if (jQuery('article[data-template-type="nativead"]').length == 1 && jQuery('section.grid .grid__item_lg-1-4').length > 0) {
createAdUnit(2, 'native-card-1', 'native-in-grid template-item template-item_nativead shadowed NativeAdPost ', '', '');
}
//createNativeAdUnit('native-card-1');
//console.log('Calling createNativeAdUnit...');
} else {
if (dfpDebug) {console.log('Slot ' + event.slot.getSlotElementId() + ' is empty...');}
}
}
});
}
// Adding some targeting parameters for adOps
googletag.pubads().setTargeting('url_domain', window.location.host)
googletag.pubads().setTargeting('url_path', window.location.pathname)
googletag.pubads().setTargeting('url_params', window.location.search.substring(1));
if (window.dataLayer) {
if (articleCategory != undefined && articleCategory != '') {
googletag.pubads().setTargeting("articlecategory", articleCategory.toLowerCase());
if (dfpDebug) {console.log('Targeting for articlecategory: ' + articleCategory.toLowerCase());}
}
if (articleCategories != undefined && articleCategories != '') {
googletag.pubads().setTargeting("articlecategories", articleCategories.toLowerCase());
if (dfpDebug) {console.log('Targeting for articlecategories: ' + articleCategories.toLowerCase());}
}
if (articleSection != undefined && articleSection != '') {
googletag.pubads().setTargeting("articlesection", articleSection.toLowerCase());
if (dfpDebug) {console.log('Targeting for articlesection: ' + articleSection.toLowerCase());}
}
if (recipeTheme != undefined && recipeTheme != '') {
googletag.pubads().setTargeting("recipetheme", recipeTheme.toLowerCase().replace(/, /g, ','));
if (dfpDebug) {console.log('Targeting for recipetheme: ' + recipeTheme.toLowerCase().replace(/, /g, ','));}
}
if (articleTags != undefined && articleTags != '') {
googletag.pubads().setTargeting("articlekeywords", articleTags.toLowerCase().replace(/, /g, ','));
if (dfpDebug) {console.log('Targeting for articlekeywords: ' + articleTags.toLowerCase().replace(/, /g, ','));}
}
} else {
console.error('DataLayer not ready for targeting...')
}
if (cXsegmentIds !== null && cXsegmentIds !== undefined) {
var regexPattern = new RegExp("(\\b8nfapah6uu5t\\b|\\b8o1gwyxui6y1\\b)");
if (!regexPattern.test(cXsegmentIds)) {
cXsegmentIds = (Array.isArray(cXsegmentIds) && cXsegmentIds.length === 0) ? '8o1gwyxui6y1,aavib3epzfey' : (cXsegmentIds !== '' ? cXsegmentIds + ',8o1gwyxui6y1,aavib3epzfey' : cXsegmentIds);
if (dfpDebug) {console.log('Additional DFP setTargeting CxSegments: "8o1gwyxui6y1,aavib3epzfey"')}
}
var regexPattern = new RegExp("(\\b18hq77meo1fv5\\b)");
if (!regexPattern.test(cXsegmentIds)) {
cXsegmentIds = cXsegmentIds + (cXsegmentIds !== '' ? ',' : '') + '18hq77meo1fv5';
if (dfpDebug) {console.log('Additional DFP setTargeting CxSegments: "18hq77meo1fv5"')}
}
if (window.dfp.location == 'recipes' || location.href.indexOf('/ruoka/') > -1) {
var regexPattern = new RegExp("(\\b8nqech16gy6q\\b)");
if (!regexPattern.test(cXsegmentIds)) {
cXsegmentIds = cXsegmentIds + (cXsegmentIds !== '' ? ',' : '') + '8nqech16gy6q';
if (dfpDebug) {console.log('Additional DFP setTargeting CxSegments: "8nqech16gy6q"')}
}
}
if (dfpDebug) {console.log('DFP setTargeting CxSegments: ' + cXsegmentIds)}
googletag.pubads().setTargeting("CxSegments", cXsegmentIds);
}
googletag.pubads().setTargeting("CxContext", cxContextualIds.join());
googletag.pubads().setTargeting("deliveryType", deliveryType);
googletag.pubads().setTargeting("adlocation", adLocation);
(function () {
function generateNewPPID() {
return crypto.randomUUID().replace(/-/g, '');
}
function parsePossiblyDoubleEncodedJSON(value) {
var parsed = value;
while (typeof parsed === 'string') {
parsed = JSON.parse(parsed);
}
return parsed;
}
function setPPID(ppid) {
if (!ppid) return;
localStorage.setItem('ppid', ppid);
googletag.pubads().setPublisherProvidedId(ppid);
}
var storedPPID = localStorage.getItem('ppid');
if (storedPPID) {
if (dfpDebug) {console.log('ls storedPPID: ', storedPPID)}
googletag.pubads().setPublisherProvidedId(storedPPID);
return;
}
try {
var gravitoValue = localStorage.getItem('gravito-microprofile-data');
if (gravitoValue) {
var parsed = parsePossiblyDoubleEncodedJSON(gravitoValue);
if (parsed && parsed.i) {
var migratedPPID = btoa(parsed.i);
if (dfpDebug) {console.log('gmd ls migratedPPID: ', migratedPPID)}
setPPID(migratedPPID);
return;
}
}
} catch (e) {
console.warn('Gravito migration failed:', e);
}
var newPPID = generateNewPPID();
setPPID(newPPID);
if (dfpDebug) {console.log('created a newPPID: ', newPPID)}
})();
//waitForResource('localStorage', 'gravito-microprofile-data').then(function (value) {
// if (dfpDebug) {console.log('gravito-microprofile-data exists in local storage with value: ', value)}
// var ppid = btoa(JSON.parse(JSON.parse(value)).i);
// if (ppid) {
// googletag.pubads().setPublisherProvidedId(ppid);
// if (dfpDebug) {console.log('ppid: ' + ppid)}
// }
//});
if (takeOver && 1 == 2) {
if (targetingValue == 'joulu' || targetingValue == 'pääsiäinen') {
googletag.pubads().collapseEmptyDivs(true, true);
googletag.pubads().setTargeting("haltuunotto", targetingValue);
googletag.pubads().enableLazyLoad({
fetchMarginPercent: 100,
renderMarginPercent: 50,
mobileScaling: 2
});
}
} else {
/*
googletag.pubads().enableLazyLoad({
fetchMarginPercent: dfp.fetchMarginPercent,
renderMarginPercent: dfp.renderMarginPercent,
mobileScaling: 1
});
if (dfpDebug) {console.log('dfp.renderMarginPercent: ' + dfp.renderMarginPercent)}
*/
googletag.pubads().collapseEmptyDivs();
var renderMarginPercent = Math.random() < 1/3 ? 60 : Math.random() < 1/2 ? 60 : 60;
googletag.pubads().setTargeting("experiments", "lazyload_" + renderMarginPercent);
googletag.pubads().enableLazyLoad({
fetchMarginPercent: 100,
renderMarginPercent: renderMarginPercent,
mobileScaling: 1
});
if (dfpDebug) {console.log('renderMarginPercent: ' + renderMarginPercent)}
}
//if (targetingValue == 'grillikuumaksi' || targetingValue == 'ihanapuutarha') {
// Infinite load requires SRA
googletag.pubads().enableSingleRequest();
// Disable initial load, we will use refresh() to fetch ads.
// Calling this function means that display() calls just
// register the slot as ready, but do not fetch ads for it.
googletag.pubads().disableInitialLoad();
//}
// Starting the service
googletag.enableServices();
that.serviceStarted = true;
});
}
this.initialized = true;
if (dfpDebug) {console.log('DFP initialized...')}
}
}
</script>
<script type="text/javascript">
//if (articleTags.indexOf('joulu') > -1 || articleCategories.indexOf('joulu') > -1 || recipeTheme.indexOf('joulu') > -1) {useHBM = false}
//if (targetingValue == 'joulu') {useHBM = false}
//if (targetingValue == 'joulu' && !jonesOverride) {useHBM = false}
//if (articleTags.indexOf('pääsiäinen') > -1 || articleCategories.indexOf('pääsiäinen') > -1 || recipeTheme.indexOf('pääsiäinen') > -1) {useHBM = false}
//if ((adLocation == 'content' || adLocation == 'recipes') && articleTags.indexOf('kevään juhlat') > -1) {useHBM = false}
//if ((adLocation == 'content' || adLocation == 'recipes') && articleTags.match(/kevään juhlat|valmistujaiset|vappu|ylioppilasjuhlat|äitienpäivä/)) {useHBM = false}
//if (targetingValue == 'grillikuumaksi' && jonesOverride) {useHBM = false}
/**
* Isolates bidders to manage specific size constraints.
* @param {Object} rules - The exclusion/addition mapping
*/
function initializePrebidSizeOptimizer(rules) {
window.pbjs = window.pbjs || {};
window.pbjs.que = window.pbjs.que || [];
window.pbjs.que.push(function() {
window.pbjs.onEvent('beforeRequestBids', function(adUnits) {
const isolatedAdUnits = [];
adUnits.forEach(function(adUnit) {
// Check if the current adUnit code matches any of our provided rules
const matchKey = Object.keys(rules).find(key => adUnit.code && adUnit.code.includes(key));
if (!matchKey || !adUnit.mediaTypes || !adUnit.mediaTypes.banner) return;
const { bidder, sizesToExclude, sizesToAdd } = rules[matchKey];
const targetBids = adUnit.bids.filter(b => b.bidder === bidder);
if (!targetBids.length) return;
// 1. Remove the target bidder from the original unit
adUnit.bids = adUnit.bids.filter(b => b.bidder !== bidder);
// 2. Prepare the new, isolated adUnit
let isolatedUnit = {
code: adUnit.code,
bids: targetBids,
mediaTypes: {
banner: {
sizes: adUnit.mediaTypes.banner.sizes.filter(s =>
!sizesToExclude.some(([w, h]) => s[0] === w && s[1] === h)
)
}
}
};
// Add sizes
sizesToAdd.forEach(newSize => {
if (!isolatedUnit.mediaTypes.banner.sizes.some(([w, h]) => newSize[0] === w && newSize[1] === h)) {
isolatedUnit.mediaTypes.banner.sizes.push(newSize);
}
});
if (isolatedUnit.mediaTypes.banner.sizes.length > 0) {
isolatedAdUnits.push(isolatedUnit);
} else {
console.warn(`Bidder/ad unit size changes: Skipping ${bidder} for ${adUnit.code} because all sizes were filtered out.`);
}
if (dfpDebug) {
console.log(`Bidder/ad unit size changes: AdUnit split for ${bidder} at ${adUnit.code}.`);
}
});
isolatedAdUnits.forEach(function(u) { adUnits.push(u); });
});
});
}
if (useHBM) {
var rdads = document.createElement('script');
rdads.async = true;
var useSSL = 'https:' == document.location.protocol;
rdads.src = window.dfp.pbConfig[window.dfp.visibility].script;
var node = document.getElementsByTagName('script')[0];
node.parentNode.insertBefore(rdads, node);
var pbjsConf = window.dfp.pbConfig[window.dfp.visibility].configId[adLocation];
if (dfpDebug) {console.log('pbjsConf in use ' + pbjsConf);}
initializePrebidSizeOptimizer({
'desk-2': { bidder: 'adnun', sizesToExclude: [[1,2], [2,2]], sizesToAdd: [] }
});
}
function initDFP(cXsegmentIds) {
//if (dfpDebug) {console.log('cSsegmentIds: ' + cXsegmentIds)}
if (window.dfp !== undefined) {
//if (dfpDebug) {console.log('initDFP() called by cX.getUserSegmentIds ' + cXsegmentIds + '...')}
setTimeout(function(){
window.dfp.init(cXsegmentIds);
}, 1);
setTimeout(function(){
if (useHBM) {
if (!testSRA) {
if (dfpDebug) {console.log('HBM initialized...')}
initHBM(cXsegmentIds);
}
} else {
if (!testSRA) {
console.log('HBM not in use!!!');
googletag.pubads().refresh();
}
}
}, 100);
} else {
console.log('DFP init failed: window.dfp missing!');
}
}
function initHBM(cXsegmentIds) {
if (dfpDebug) {console.log('initHBM called...')}
var hbArticleTags = articleTags != '' ? articleTags.split() : [];
var hbArticleCategories = articleCategories != '' ? [...new Set(articleCategory.split(',').concat(articleCategories.split(',')))] : [];
window.relevantDigital = window.relevantDigital || {};
relevantDigital.cmd = relevantDigital.cmd || [];
relevantDigital.cmd.push(function() {
if (location.href.indexOf('testi=123') > -1) {
let hasDoneFirstCall;
relevantDigital.addAuctionCallbacks({
onBeforeAuctionSetup: function ({ auction }) {
if (!(window.googletag || {}).pubads) {
console.error('GPT not initialized, this method only works if GPT-slots are created before calling relevantDigital.loadPrebid()');
return;
}
if (hasDoneFirstCall) { // Only do this on page-load and not subsequent auctions
return;
}
hasDoneFirstCall = true;
// Load all slots associated with these div IDs immediately (without waiting for relevantDigital)
const TO_LOAD_NOW = ['dfp__mob-1_1'];
const isLoadNowDiv = (divId) => TO_LOAD_NOW.includes(divId);
const loadNowSlots = [];
googletag.pubads().getSlots().forEach((slot) => {
const divId = slot.getSlotElementId(); // Get the div ID associated with the slot
if (isLoadNowDiv(divId)) {
loadNowSlots.push(slot);
}
});
if (!loadNowSlots.length) {
return; // continue as normal
}
// Requests slots immediately
googletag.pubads().refresh(loadNowSlots);
// Make sure they're not included in the prebid auction
auction.adUnits = auction.adUnits.filter(({ gamPath, divId }) =>
!isLoadNowDiv(divId)
);
// Then manually remove them when Relevant is doing the ad request
auction.googletagCalls = auction.googletagCalls || {};
auction.googletagCalls.refresh = (slots, ...rest) => {
const all = slots || googletag.pubads().getSlots();
const toLoad = all.filter((s) =>
!isLoadNowDiv(s.getSlotElementId())
);
googletag.pubads().refresh(toLoad, ...rest);
};
},
});
}
var blockHeaderTopPlacements = false;
var targetDateTime = new Date('2025-03-30T23:59:00');
var currentDateTime = new Date();
if (currentDateTime > targetDateTime) {
if (dfpDebug) {console.log('Blocking header top placements...')}
blockHeaderTopPlacements = true;
}
if (takeOver && targetingValue == 'grillikuumaksi' && blockHeaderTopPlacements && 1 == 2) {
let hasDoneFirstCall;
relevantDigital.addAuctionCallbacks({
// Code in function below can alternatively be added inside relevantDigital.loadPrebid({ onBeforeAuctionSetup: { ... } })
onBeforeAuctionSetup: function({ auction }) {
if(!(window.googletag || {}).pubads) {
console.error('GPT not initialized, this method only works if GPT-slots are created before calling relevantDigital.loadPrebid()');
return;
}
if(hasDoneFirstCall) { // Only do this on page-load and not subsequent auctions
return;
}
hasDoneFirstCall = true;
// Load all slots containing these strings in ad unit paths immediately (without waiting for prebid)
const TO_LOAD_NOW = ['desk-1','desk-2','mob-1','mob-2'];
const isLoadNowPath = (p) => TO_LOAD_NOW.find((s) => p.includes(s));
const loadNowSlots = [];
googletag.pubads().getSlots().forEach((slot) => {
if (isLoadNowPath(slot.getAdUnitPath())) {
loadNowSlots.push(slot);
}
});
if (!loadNowSlots.length) {
return; // continue as normal
}
// Requests slots immediately
googletag.pubads().refresh(loadNowSlots);
// Make sure they're not included in the prebid auction
auction.adUnits = auction.adUnits.filter(({ gamPath }) => !isLoadNowPath(gamPath));
// Then manually remove them when Relevant is doing the ad request
auction.googletagCalls = auction.googletagCalls || {};
auction.googletagCalls.refresh = (slots, ...rest) => {
const all = slots || googletag.pubads().getSlots();
const toLoad = all.filter((s) => !isLoadNowPath(s.getAdUnitPath()));
googletag.pubads().refresh(toLoad, ...rest);
};
},
});
}
relevantDigital.addPrebidConfig({
ortb2: {
site: {
//keywords: contextualIds.join(),
ext: {
data: {
CxContext: Object.values(cxContextualIds),
articleCategories: hbArticleCategories,
articleTags: hbArticleTags
}
}
}
}
});
relevantDigital.loadPrebid({
configId: pbjsConf,
manageAdserver: false, //Manage adserver set to off.
collapseEmptyDivs: true,
collapseBeforeAdFetch: false,
noGpt: true,
allowedDivIds: null, // set to an array to only load certain <div>s, example - ["divId1", "divId2"]
noSlotReload: false, // set true to only load ad slots that have never been loaded
onBeforeAuctionSetup: function(params) {
params.auction.adUnits.forEach(function(unit) {
unit.bids.forEach(function(bid){
if (bid.bidder == 'appnexus') {
bid.params.keywords = {cxSegments: cXsegmentIds, CxContext: cxContextualIds, articleTags: hbArticleTags, articleCategories: hbArticleCategories};
if (dfpDebug) {console.log('Setting params for Xandr bidder...')}
}
})
})
}
});
});
}
function loadAdSlot(adSlotId) {
if (dfpDebug) {console.log('HAS: runHeaderbid: ' + adSlotId + ', ' + (Date.now() - timerStart) + 'ms...')}
observerHeaderbidRun = true;
var adUnit = adSlotId.split('__')[1].split('_')[0];
//var hbArticleTags = articleTags != '' ? articleTags.split(',') : [];
var hbArticleTags = articleTags != '' ? articleTags.split(',').map(tag => tag.trim()) : [];
var hbArticleCategories = articleCategories != '' ? [...new Set(articleCategory.split(',').concat(articleCategories.split(',')))] : [];
var takeOver = '', adSlotsNotAllowedForHBM = [];
useHBM = true;
//if (hbArticleTags.some(tag => tag.includes('joulu'))) {
// useHBM = false;
// takeOver = 'unelmien joulu';
//}
//if (['joulu', 'unelmien joulu'].some(cat => hbArticleCategories.includes(cat))) {
// useHBM = false;
// takeOver = 'unelmien joulu';
//}
//if (articleSection == 'unelmien joulu') {
// useHBM = false;
// takeOver = 'unelmien joulu';
//}
//if (!useHBM && takeOver == 'unelmien joulu') {
// adSlotsNotAllowedForHBM = ['mob-1', 'mob-2', 'desk-1', 'desk-2'];
// if (dfpDebug) {console.log('HAS: takeOver: ' + takeOver + ', adSlotsNotAllowedForHBM: ' + adSlotsNotAllowedForHBM)}
//}
if (hbArticleTags.some(tag => tag.includes('grill'))) {
useHBM = false;
takeOver = 'grillikuumaksi';
}
if (['grill'].some(cat => hbArticleCategories.includes(cat))) {
useHBM = false;
takeOver = 'grillikuumaksi';
}
if (articleSection == 'grilli kuumaksi') {
useHBM = false;
takeOver = 'grillikuumaksi';
}
// takeOver disabled 24.06.2026 10.41.11
useHBM = true;
if (!useHBM && takeOver == 'grillikuumaksi') {
adSlotsNotAllowedForHBM = ['mob-1', 'mob-2', 'desk-1', 'desk-2'];
if (dfpDebug) {console.log('HAS: takeOver: ' + takeOver + ', adSlotsNotAllowedForHBM: ' + adSlotsNotAllowedForHBM)}
}
var slotLocation = adLocation;
if (adUnit.includes('native')) {
slotLocation = 'native';
} else if (adUnit.includes('topad') || adUnit.includes('interstitial')) {
slotLocation = 'content';
}
googletag.cmd.push(function() {
googletag.defineSlot('/' + window.dfp.networkcode + '/' + window.dfp.serviceName + '/' + slotLocation + '/' + adUnit, window.dfp.slots[adUnit].sizes, adSlotId)
.addService(googletag.pubads())
.setConfig({
targeting: {
'adslotid': adSlotId.replace('dfp__', ''),
'CxContext': cxContextualIds
}
});
if (dfpDebug) {console.log('Defining slot: /' + window.dfp.networkcode + '/' + window.dfp.serviceName + '/' + slotLocation + '/' + adUnit)}
if (dfpDebug) {console.log('cxContextualIds: ' + cxContextualIds)}
});
if (['native', 'interstitial', 'topad-desk', ...(adSlotsNotAllowedForHBM || [])].some(slot => adUnit.includes(slot)) || (["tad", "lads"].includes(deliveryType) && !useHBM)) {
//if (['native', 'interstitial', 'topad-desk', 'topad-mob', ...(adSlotsNotAllowedForHBM || [])].some(slot => adUnit.includes(slot)) || (["tad", "lads"].includes(deliveryType) && !useHBM)) {
googletag.cmd.push(function() {
const slot = googletag.pubads().getSlots().find(s => s.getSlotElementId() === adSlotId);
if (slot) {
googletag.pubads().refresh([slot], {changeCorrelator: false});
}
if (dfpDebug) {console.log('googletag.pubads().refresh([' + slot.getSlotElementId() + '], {changeCorrelator: false});')}
});
} else {
if (dfpDebug) {
console.log('HAS: Existing slots: ');
googletag.pubads().getSlots().forEach((slot) => {
console.log('HAS: ' + slot.getSlotElementId());
});
}
window.relevantDigital = window.relevantDigital || {};
relevantDigital.cmd = relevantDigital.cmd || [];
relevantDigital.cmd.push(function() {
relevantDigital.addPrebidConfig({
ortb2: {
site: {
//keywords: contextualIds.join(),
ext: {
data: {
CxContext: Object.values(cxContextualIds),
articleCategories: hbArticleCategories,
articleTags: hbArticleTags
}
}
}
}
});
relevantDigital.loadPrebid({
configId: pbjsConf,
manageAdserver: false, //Manage adserver set to off.
collapseEmptyDivs: true,
collapseBeforeAdFetch: false,
noGpt: true,
allowedDivIds: Array.isArray(adSlotId) ? adSlotId : [adSlotId], // set to an array to only load certain <div>s, example - ["divId1", "divId2"]
noSlotReload: true, // set true to only load ad slots that have never been loaded
googletagCalls: {
refresh: (slots) => googletag.pubads().refresh(slots, { changeCorrelator: false }),
},
onBeforeAuctionSetup: function(params) {
params.auction.adUnits.forEach(function(unit) {
unit.bids.forEach(function(bid){
if (bid.bidder == 'appnexus' || bid.bidder == 'appnexus_s2s_alias') {
bid.params.keywords = {cxSegments: cxSegmentIds, CxContext: cxContextualIds, articleTags: hbArticleTags, articleCategories: hbArticleCategories};
if (dfpDebug) {console.log('Setting params for Xandr bidder...')}
}
//if (bid.bidder == 'adnun') {
// console.log('adnun...');
//}
})
})
}
});
});
}
}
if (useAdvantage) {
(async () => {
try {
const module = await import("https://cdn.jsdelivr.net/npm/@get-advantage/advantage/+esm");
const utils = await import("https://cdn.jsdelivr.net/npm/@get-advantage/advantage/utils/+esm");
const { Advantage, AdvantageFormatName } = module;
const { advantageWrapAdSlotElement } = utils;
const advantage = Advantage.getInstance();
advantage.configure({
formatIntegrations: [
{
format: AdvantageFormatName.Midscroll,
setup: (wrapper, ad) => {
return ((resolve) => {
resolve();
});
},
reset(wrapper, ad) {
}
},
{
format: AdvantageFormatName.DoubleMidscroll,
setup: (wrapper, ad) => {
return ((resolve) => {
resolve();
});
},
reset(wrapper, adIframe) {
},
},
{
format: AdvantageFormatName.TopScroll,
setup: (wrapper, ad) => {
return ((resolve) => {
resolve();
});
},
reset(wrapper, ad) {
}
},
]
});
console.log("Advantage activated...");
} catch (error) {
console.error("An error occurred while loading the Advantage package: ", error);
}
})();
}
</script>
<!-- DFP End -->
<script async src="https://target.digitalaudience.io/bakery/scripts/da.js"></script>
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-P6934W3');</script>
<!-- End Google Tag Manager -->
<!-- Otava Analytiikka -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-TSMVFP56');</script>
<!-- End Google Tag Manager -->
<!-- Otava Business Logic -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-T56W3Z7');</script>
<!-- End Google Tag Manager -->
<script type="text/javascript">
window.dataLayer = window.dataLayer || [];
dataLayer.push({'event': 'adLocation', 'adLocation': adLocation});
var isAsync = true;
try {
eval('async () => {}');
} catch (e) {
if (e instanceof SyntaxError)
isAsync = false;
else
throw e; // throws CSP error
}
var supports = {
ecma: {
IntersectionObserver: 'IntersectionObserver' in window,
fetch: 'fetch' in window,
Promise: 'Promise' in window,
async: isAsync
}
};
dataLayer.push(supports);
if (!location.href.includes('?rulla=3')) {
if (location.href.includes('?rulla=2') || 1 == 1) {
(function(d,s,e,t){e=d.createElement(s);e.type='text/java'+s;e.async='async';
e.src='http'+('https:'===location.protocol?'s://':'://')+'as.otavamedia.fi/js/icfa.js';
t=d.getElementsByTagName(s)[0];t.parentNode.insertBefore(e,t);})(document,'script');
}
if (location.href.includes('?rulla=2') || 1 == 1) {
var link = document.createElement('link');
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = 'https://as.otavamedia.fi/css/cf.css?5';
document.getElementsByTagName('HEAD')[0].appendChild(link);
}
if (location.href.includes('?rulla=1')) {
(function(d,s,e,t){e=d.createElement(s);e.type='text/java'+s;e.async='async';
e.src='http'+('https:'===location.protocol?'s://':'://')+'as.otavamedia.fi/js/iiaa.js';
t=d.getElementsByTagName(s)[0];t.parentNode.insertBefore(e,t);})(document,'script');
}
}
</script>
<script async id="ebx" src="//applets.ebxcdn.com/ebx.js"></script>
<!-- // kotiliesi.fi -->
<!-- Head tag end, do not remove --><!-- AWPO lazy-load marker --> <script type="text/javascript"><!--
function powerpress_pinw(pinw_url){window.open(pinw_url, 'PowerPressPlayer','toolbar=0,status=0,resizable=1,width=460,height=320'); return false;}
//-->
// tabnab protection
window.addEventListener('load', function () {
// make all links have rel="noopener noreferrer"
document.querySelectorAll('a[target="_blank"]').forEach(link => {
link.setAttribute('rel', 'noopener noreferrer');
});
});
</script>
<!-- core preconnect scripts --><link rel="preconnect" href="https://ads.pubmatic.com" crossorigin="anonymous"><link rel="preconnect" href="https://storage.googleapis.com" crossorigin="anonymous"><link rel="preconnect" href="https://www.googletagmanager.com" crossorigin="anonymous"><link rel="preconnect" href="https://www.google-analytics.com" crossorigin="anonymous"><link rel="preconnect" href="https://www.googletagservices.com" crossorigin="anonymous"><link rel="preconnect" href="https://s3-eu-west-1.amazonaws.com" crossorigin="anonymous"><!-- end of the core preconnect scripts --> <script type="text/javascript">
window.om = window.om || {};
window.om.wp_nonce = "351f909409";
window.om.client_id = "34bcda2b-0334-41b4-8274-8760bb0c217f";
window.om.auth_url = "https://tili.otavamedia.fi";
</script>
<link rel="icon" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/images/favicons/favicon.ico" sizes="32x32">
<link rel="icon" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/images/favicons/favicon.ico" sizes="192x192">
<link rel="apple-touch-icon" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/images/favicons/favicon.ico">
<meta name="msapplication-TileImage" content="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/images/favicons/favicon.ico">
<style type="text/css" id="wp-custom-css">
.page-list {
overflow-x: hidden;
}
#offer-placeholder::before,
#frosmo_message_id_2::before {
display: none;
} </style>
<meta name="google-site-verification" content="tN7e2qmywWDaz_2pq5boXF8w0k26qq_5svPW2kjVL88"><!-- KO-121 -->
</head>
<body class="archive tag tag-deko tag-18351 wp-theme-om-kotiliesi-theme blog-1">
<!-- Body tag start, do not remove -->
<!-- Google Tag Manager (noscript) -->
<noscript><iframe height="0" width="0" style="display:none;visibility:hidden" data-src="https://www.googletagmanager.com/ns.html?id=GTM-P6934W3" class="awpo-lazy"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<!-- Google Tag Manager (noscript) -->
<noscript><iframe height="0" width="0" style="display:none;visibility:hidden" data-src="https://www.googletagmanager.com/ns.html?id=GTM-TSMVFP56" class="awpo-lazy"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<!-- Google Tag Manager (noscript) -->
<noscript><iframe height="0" width="0" style="display:none;visibility:hidden" data-src="https://www.googletagmanager.com/ns.html?id=GTM-T56W3Z7" class="awpo-lazy"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<!-- Body tag end, do not edit or remove -->
<header id="site-header" class="site-header" role="banner">
<div class="site-header__topbar">
<a class="site-header__logo" href="https://kotiliesi.fi/">
<span class="screen-reader-text">Kotiliesi</span>
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 505 100"><path fill="currentColor" d="M502.3 88.9a6 6 0 0 1-4.5 2c-1.7 0-3.4-.9-3.4-4V22.7h-29.9v4.5c3.1 0 4.3 1.1 4.3 3.1v54.2c0 4.7.7 7.5 3 9.9 2.6 2.7 6.8 4.1 13.5 4.1 7.4 0 14.9-1.7 19.3-7.2l-2.3-2.4zm-171.7 0a6 6 0 0 1-4.5 2c-1.7 0-3.4-.9-3.4-4V22.7h-29.9v4.5c3.1 0 4.3 1.1 4.3 3.1v54.2c0 4.7.7 7.5 3 9.9 2.6 2.7 6.8 4.1 13.5 4.1 7.4 0 14.9-1.7 19.3-7.2l-2.3-2.4zM212.1 9.7c0 7 6 9.7 13.5 9.7s13.5-2.4 13.5-9.7c0-7.2-6-9.7-13.5-9.7-7.6 0-13.5 2.4-13.5 9.7M247 88.9a6 6 0 0 1-4.5 2c-1.7 0-3.4-.9-3.4-4V22.7h-29.9v4.5c3.1 0 4.3 1.1 4.3 3.1v54.2c0 4.7.7 7.5 3 9.9 2.6 2.7 6.8 4.1 13.5 4.1 7.4 0 14.9-1.7 19.3-7.2l-2.3-2.4zM467.4 9.7c0 7 6 9.7 13.5 9.7s13.5-2.4 13.5-9.7c0-7.2-6-9.7-13.5-9.7s-13.5 2.4-13.5 9.7m-171.8 0c0 7 6 9.7 13.5 9.7s13.5-2.4 13.5-9.7c0-7.2-6-9.7-13.5-9.7s-13.5 2.4-13.5 9.7m-41.1 74.9v.6c0 4.4.7 7.1 3 9.4 2.6 2.7 6.8 4.1 13.5 4.1 7.4 0 14.9-1.7 19.3-7.2l-2.1-2.6a6 6 0 0 1-4.5 2c-1.7 0-3.4-.7-3.4-4V1.3l-31.4 1.1v4.3c3.8 0 5.7 1.4 5.7 4.5v73.4zM189.3 3.1H188c-6.5 0-13.5 1.6-20.3 3.1l-4.1 1v15.5l-9.4 1v4.8h9.4v49.3c0 13.3 7.1 20.9 22.4 20.9 11.6 0 17.9-4.8 21-8.8l-2.7-3.4-1.6 1.3c-2.8 2.3-5.1 3.4-8.4 3.3-3.8-.1-5.1-3-5.1-6.7V28.5h17.9v-5.8h-17.9V3.1zM76.8 9.9c1.4-2 3.8-3 6.8-3V3.4H61.2V7c3.1 0 5.1.7 3.3 3.1L45.1 36.2c-4.4 6-8.7 10.1-12.5 10.8V8.4C32.6 7 34.8 7 37.3 7V3.4H0V7c2.7 0 4.7 0 4.7 1.4v82.2c0 3-1.4 3.7-4.7 3.7v3.5h37.3v-3.5c-2.8 0-4.7-.7-4.7-3.7V51.2l17.6 35.1C55.4 96.7 66 99.1 74.7 99.1c12.2 0 18.5-3 18.5-3v-2.8s-5.4 0-10.8-8.9L55.5 39.2 76.8 9.9zm357 11c-18.5 0-28.5 7.9-28.5 19.9 0 10.9 5.1 17.2 16.3 24.3l12.3 7.7c7.5 4.7 10.1 7.8 10.1 12.8 0 4.7-3.7 9.7-13.1 9.7-11.2 0-18.9-5.8-23-21.9h-3.3v17c5.1 5.5 15.3 9.1 26.4 9.1 18.7 0 30.9-9.1 30.9-25.8 0-10.9-7.2-17.5-18.7-24.6L431.7 42c-5.5-3.4-7.2-6.8-7.2-9.7 0-4 3.3-7.4 9.8-7.4 10.2 0 16.7 4.8 19.2 16.6h3.1V25.8a49.8 49.8 0 0 0-22.8-4.9m-66.6 3.9c4.3 0 6.8 5.5 7 29.9h-14.3v-3.4c-.1-20.5 3-26.5 7.3-26.5m28.1 61.4C391 90 386.2 92 378 92c-14.6 0-18.2-9.8-18.2-32.1h34.8c3.5 0 4.7-2.3 4.7-4 0-25-12.3-35.1-32.1-35.1-20.9 0-35.1 16.3-35.1 41 0 24 12.8 37.5 37.9 37.5 13.5 0 21.7-4.7 27.3-9.8l-2-3.3zm-282.5-26c0-22.1 1.4-35.3 8.8-35.3 7.5 0 8.7 11.6 8.7 35.3 0 26-1.1 34.9-8.7 34.9-6.3 0-8.8-9.9-8.8-34.9m-27.9 0c0 23.1 15.8 39.2 36.6 39.2 20.9 0 36.3-17.5 36.3-39.2 0-23.1-15.5-39.3-36.3-39.3-20.9 0-36.6 17.6-36.6 39.3"></path></svg></a>
<div class="navigation-actions">
<button id="aisearch" class="navigation-actions__aisearch-button button" type="button" style="font-size:1.2rem;padding-right:2rem;">
RESEPTIHAKU
</button>
<a id="button-header-order" class="navigation-actions__order-button button button--tertiary" href="/tilaa?promoPosition=header-single">
Tilaa
</a>
<a id="button-header-user" class="navigation-actions__user-button button button--icon" href="https://kotiliesi.fi?option=oauthredirect&app_name=openid&redirect_url=https%3A%2F%2Fkotiliesi.fi%2Favainsana%2Fdeko">
<span class="icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" fill="currentColor"><path d="M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 3a3 3 0 1 1 0 6 3 3 0 0 1 0-6zm0 14.2a7.2 7.2 0 0 1-6-3.22c.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08a7.2 7.2 0 0 1-6 3.22z"></path></svg></span>
<span class="screen-reader-text">
Kirjaudu
</span>
</a>
<button id="button-header-menu" class="navigation-actions__menu-button button button--icon" type="button" aria-expanded="false" aria-controls="navigation-menu">
<span class="icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 32 32" fill="currentColor"><path d="M3 28h26v-4H3v4Zm0-10h26v-4H3v4ZM3 4v4h26V4H3Z"></path></svg>
</span>
<span class="screen-reader-text">Päävalikko</span>
</button>
</div>
</div>
<div class="navigation__wrapper">
<nav id="navigation-menu" class="navigation__menu navigation__menu--hidden" aria-label="Päänavigaatio" role="navigation">
<div class="navigation__inner">
<div class="menu-item close-menu">
<button id="button-close-header-menu" type="button">
<span class="icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" fill="currentColor"><path d="M19 6.4 17.6 5 12 10.6 6.4 5 5 6.4l5.6 5.6L5 17.6 6.4 19l5.6-5.6 5.6 5.6 1.4-1.4-5.6-5.6L19 6.4z"></path></svg></span>
<span class="screen-reader-text">Sulje valikko</span>
</button>
</div>
<div class="menu-item search-link">
<a href="https://kotiliesi.fi/haku/">
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" fill="currentColor"><path d="M15.5 14h-.8l-.3-.3c1-1.1 1.6-2.6 1.6-4.2a6.5 6.5 0 1 0-2.3 5l.3.2v.8l5 5 1.5-1.5-5-5zm-6 0a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9z"></path></svg> Hae
</a>
</div>
<div class="navigation__primary"><ul id="primary-menu-list" class="menu-wrapper"><li id="menu-item-456415" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-456415 menu-page-toukola"><a href="https://kotiliesi.fi/toukola/">Toukola</a></li>
<li id="menu-item-48" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-has-children menu-item-48 menu-category-ruoka"><a href="https://kotiliesi.fi/kategoria/ruoka/">Ruoka</a>
<ul class="sub-menu">
<li id="menu-item-524563" class="ai-reseptihaku-nappi menu-item menu-item-type-custom menu-item-object-custom menu-item-524563"><a href="#">Reseptihaku</a></li>
<li id="menu-item-393715" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-393715"><a href="https://kotiliesi.fi/reseptihaku">Reseptit</a></li>
<li id="menu-item-389469" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-389469"><a href="https://kotiliesi.fi/avainsana/viikon-ruokalista/">Viikon ruokalista</a></li>
<li id="menu-item-307779" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-type-custom menu-item-object-custom menu-item-307779"><a href="https://kotiliesi.fi/arjen-nopeat-ja-helpot/">Arjen nopeat ja helpot</a></li>
<li id="menu-item-481016" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-481016 menu-page-grilli-kuumaksi"><a href="https://kotiliesi.fi/grilli-kuumaksi/">Grilli kuumaksi</a></li>
</ul>
</li>
<li id="menu-item-77" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-has-children menu-item-77 menu-category-ihmiset"><a href="https://kotiliesi.fi/kategoria/ihmiset/">Ihmiset</a>
<ul class="sub-menu">
<li id="menu-item-186511" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-186511 menu-category-tarinat"><a href="https://kotiliesi.fi/kategoria/ihmiset/tarinat/">Tarinat</a></li>
<li id="menu-item-187187" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-187187 menu-category-nostalgia"><a href="https://kotiliesi.fi/kategoria/ihmiset/nostalgia/">Nostalgia</a></li>
<li id="menu-item-147458" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-147458 menu-category-talous"><a href="https://kotiliesi.fi/kategoria/ihmiset/talous/">Talous</a></li>
<li id="menu-item-186512" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-186512 menu-category-kulttuuri"><a href="https://kotiliesi.fi/kategoria/ihmiset/kulttuuri/">Kulttuuri</a></li>
<li id="menu-item-229893" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-229893 menu-category-luonto"><a href="https://kotiliesi.fi/kategoria/ihmiset/luonto/">Luonto</a></li>
</ul>
</li>
<li id="menu-item-186513" class="background-accent-3-light menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-has-children menu-item-186513 menu-category-hyvinvointi"><a href="https://kotiliesi.fi/kategoria/hyvinvointi/">Hyvinvointi</a>
<ul class="sub-menu">
<li id="menu-item-186514" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-186514 menu-category-liikunta"><a href="https://kotiliesi.fi/kategoria/hyvinvointi/liikunta/">Liikunta</a></li>
<li id="menu-item-186517" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-186517 menu-category-suhteet"><a href="https://kotiliesi.fi/kategoria/hyvinvointi/suhteet/">Suhteet</a></li>
<li id="menu-item-186515" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-186515 menu-category-terveys"><a href="https://kotiliesi.fi/kategoria/hyvinvointi/terveys/">Terveys</a></li>
</ul>
</li>
<li id="menu-item-186525" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-has-children menu-item-186525 menu-category-koti"><a href="https://kotiliesi.fi/kategoria/koti/">Koti</a>
<ul class="sub-menu">
<li id="menu-item-186527" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-186527 menu-category-sisustus"><a href="https://kotiliesi.fi/kategoria/koti/sisustus/">Sisustus</a></li>
<li id="menu-item-186526" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-186526 menu-category-kodinhoito"><a href="https://kotiliesi.fi/kategoria/koti/kodinhoito/">Kodinhoito</a></li>
<li id="menu-item-186528" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-186528 menu-category-puutarha"><a href="https://kotiliesi.fi/kategoria/koti/puutarha/">Puutarha</a></li>
<li id="menu-item-187189" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-187189 menu-category-lemmikit"><a href="https://kotiliesi.fi/kategoria/koti/lemmikit/">Lemmikit</a></li>
<li id="menu-item-186529" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-186529 menu-category-huonekasvit"><a href="https://kotiliesi.fi/kategoria/koti/huonekasvit/">Huonekasvit</a></li>
</ul>
</li>
<li id="menu-item-62" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-has-children menu-item-62 menu-category-kasityo"><a href="https://kotiliesi.fi/kategoria/kasityo/">Käsityö</a>
<ul class="sub-menu">
<li id="menu-item-186508" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-186508 menu-category-askartelu"><a href="https://kotiliesi.fi/kategoria/kasityo/askartelu/">Askartelu</a></li>
<li id="menu-item-67" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-67 menu-category-neulonta"><a href="https://kotiliesi.fi/kategoria/kasityo/neulonta/">Neulonta</a></li>
<li id="menu-item-389374" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-389374 menu-category-virkkaus"><a href="https://kotiliesi.fi/kategoria/kasityo/virkkaus/">Virkkaus</a></li>
<li id="menu-item-186509" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-186509 menu-category-ompelu"><a href="https://kotiliesi.fi/kategoria/kasityo/ompelu/">Ompelu</a></li>
</ul>
</li>
<li id="menu-item-380716" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-has-children menu-item-380716 menu-category-juhlat"><a href="https://kotiliesi.fi/kategoria/juhlat/">Juhlat</a>
<ul class="sub-menu">
<li id="menu-item-393629" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-393629 menu-page-unelmien-joulu"><a href="https://kotiliesi.fi/unelmien-joulu/">Unelmien joulu</a></li>
<li id="menu-item-393630" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-393630 menu-page-paras-paasiainen"><a href="https://kotiliesi.fi/paras-paasiainen/">Paras pääsiäinen</a></li>
<li id="menu-item-393631" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-393631 menu-page-kevaan-juhlat"><a href="https://kotiliesi.fi/kevaan-juhlat/">Kevään juhlat</a></li>
</ul>
</li>
<li id="menu-item-405751" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-405751 menu-page-nakoislehdet"><a href="https://kotiliesi.fi/nakoislehdet/">Näköislehdet</a>
<ul class="sub-menu">
<li id="menu-item-239654" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-239654"><a href="https://kotiliesi.fi/nakoislehti/">Kotiliesi näköislehti</a></li>
<li id="menu-item-239656" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-239656"><a href="https://kotiliesi.fi/deko-nakoislehti/">Deko näköislehti</a></li>
<li id="menu-item-404721" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-404721"><a href="https://kotiliesi.fi/maalla-nakoislehti/">Maalla näköislehti</a></li>
<li id="menu-item-404722" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-404722"><a href="https://kotiliesi.fi/kotiliesi-kasityo-nakoislehti/">Kotiliesi Käsityö näköislehti</a></li>
</ul>
</li>
<li id="menu-item-197441" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-197441 menu-category-kilpailut"><a href="https://kotiliesi.fi/kategoria/kilpailut/">Kilpailut</a></li>
<li id="menu-item-405752" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-405752 menu-page-klubi"><a href="https://kotiliesi.fi/klubi/">Kotiliesi Klubi</a></li>
<li id="menu-item-393634" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-393634 menu-page-toimituksen-yhteystiedot"><a href="https://kotiliesi.fi/toimituksen-yhteystiedot/">Ota yhteyttä</a></li>
</ul></div> </div>
</nav>
</div>
<div id="frosmo-notice-bar" class="notice-bar notice-bar--hidden">
<div id="frosmo-notice-bar-text" class="notice-bar__content">
<a href="#promoID=OM_huomio">
<p></p>
</a>
</div>
</div>
</header>
<main>
<div class="page-list">
<header class="archive-header">
<h1 class="archive-header__title">Deko</h1>
</header>
<div class="article-card-grid is-style-standard">
<ul>
<li>
<article class="card article-card">
<figure class="card__image-wrapper">
<img class="card__image awpo-lazy" alt="Elina Aalto kesämökillään." data-src="https://kotiliesi.fi/awpo/img/2026/08/web_10.-saunan-edessa.-kisko.jpg?s=b461a412457270500a1cc238bc5d3032&fit=crop"><noscript><img class="card__image " alt="Elina Aalto kesämökillään." src="https://kotiliesi.fi/awpo/img/2026/08/web_10.-saunan-edessa.-kisko.jpg?s=b461a412457270500a1cc238bc5d3032&fit=crop"></noscript>
</figure>
<div class="card__content-wrapper">
<a href="https://kotiliesi.fi/kategoria/koti/sisustus/" class="card__vignette card__meta">
Sisustus</a>
<h3 class="card__title">
<a href="https://kotiliesi.fi/koti/sisustus/elina-ja-klaus-aallon-kesamokki/" class="card__link-overlay">
Ihana mummolatunnelma! Elina ja Klaus ostivat mökin irtaimistoineen, vaikka se ei sijainnut veden äärellä </a>
</h3>
</div>
</article>
</li>
<li>
<article class="card article-card">
<figure class="card__image-wrapper">
<img class="card__image awpo-lazy" alt="Kuvia kodeista." data-src="https://kotiliesi.fi/awpo/img/2026/07/kuvakulma_hero.jpg?s=9770001a31e15ec2aeef471ca2629752&fit=crop"><noscript><img class="card__image " alt="Kuvia kodeista." src="https://kotiliesi.fi/awpo/img/2026/07/kuvakulma_hero.jpg?s=9770001a31e15ec2aeef471ca2629752&fit=crop"></noscript>
</figure>
<div class="card__content-wrapper">
<a href="https://kotiliesi.fi/kategoria/koti/sisustus/" class="card__vignette card__meta">
Sisustus</a>
<h3 class="card__title">
<a href="https://kotiliesi.fi/koti/sisustus/maalausideat/" class="card__link-overlay">
7 maalausideaa, jotka tuovat kotiin persoonallista ilmettä – sopivat tilaan kuin tilaan </a>
</h3>
</div>
</article>
</li>
<li>
<article class="card article-card">
<figure class="card__image-wrapper">
<img class="card__image awpo-lazy" alt="Seija Strand." data-src="https://kotiliesi.fi/awpo/img/2026/07/dscf2202.jpg?s=33ddcaa41fbbad2ce3a201a8ab07e110&fit=crop-69-28"><noscript><img class="card__image " alt="Seija Strand." src="https://kotiliesi.fi/awpo/img/2026/07/dscf2202.jpg?s=33ddcaa41fbbad2ce3a201a8ab07e110&fit=crop-69-28"></noscript>
</figure>
<div class="card__content-wrapper">
<a href="https://kotiliesi.fi/kategoria/koti/sisustus/" class="card__vignette card__meta">
Sisustus</a>
<h3 class="card__title">
<a href="https://kotiliesi.fi/koti/sisustus/seija-strand-ja-puinen-elefantti/" class="card__link-overlay">
Hetki oli herkkä, kun Seija Strand avasi tyttäreltään saamansa lahjan: ”Ajatus lahjan taustalla lämmittää vahvasti sydäntäni” </a>
</h3>
</div>
</article>
</li>
<li>
<article class="card article-card">
<figure class="card__image-wrapper">
<img class="card__image awpo-lazy" alt="Bella Forsgrén kotonaan." data-src="https://kotiliesi.fi/awpo/img/2026/08/bella_forsgren_deko_9_0001.jpg?s=9f334d42c99a6daa91733fbf431b5866&fit=crop"><noscript><img class="card__image " alt="Bella Forsgrén kotonaan." src="https://kotiliesi.fi/awpo/img/2026/08/bella_forsgren_deko_9_0001.jpg?s=9f334d42c99a6daa91733fbf431b5866&fit=crop"></noscript>
</figure>
<div class="card__content-wrapper">
<a href="https://kotiliesi.fi/kategoria/koti/sisustus/" class="card__vignette card__meta">
Sisustus</a>
<h3 class="card__title">
<a href="https://kotiliesi.fi/koti/sisustus/bella-forsgrenin-koti/" class="card__link-overlay">
Bella Forsgrén asuu yksin 130-vuotiaassa hirsitalossa – sai remontteihin apua yllättäviltä tahoilta </a>
</h3>
</div>
</article>
</li>
<li>
<article class="card article-card">
<figure class="card__image-wrapper">
<img class="card__image awpo-lazy" alt="Tekstiilejä." data-src="https://kotiliesi.fi/awpo/img/2026/07/hero_nayteikkuna.jpg?s=76e910bdf1146bff8b7f44388be8e897&fit=crop"><noscript><img class="card__image " alt="Tekstiilejä." src="https://kotiliesi.fi/awpo/img/2026/07/hero_nayteikkuna.jpg?s=76e910bdf1146bff8b7f44388be8e897&fit=crop"></noscript>
</figure>
<div class="card__content-wrapper">
<a href="https://kotiliesi.fi/kategoria/koti/sisustus/" class="card__vignette card__meta">
Sisustus</a>
<h3 class="card__title">
<a href="https://kotiliesi.fi/koti/sisustus/tekstiilieja-olohuoneeseen/" class="card__link-overlay">
Piristä olohuonetta tekstiilien avulla – 12 raikasta vaihtoehtoa </a>
</h3>
</div>
</article>
</li>
<li>
<article class="card article-card">
<figure class="card__image-wrapper">
<img class="card__image awpo-lazy" alt="Paula ja Daniel Huntin koti." data-src="https://kotiliesi.fi/awpo/img/2026/07/dsc_2186_0001.jpg?s=7969116e00690352eea6c148227e9b2d&fit=crop"><noscript><img class="card__image " alt="Paula ja Daniel Huntin koti." src="https://kotiliesi.fi/awpo/img/2026/07/dsc_2186_0001.jpg?s=7969116e00690352eea6c148227e9b2d&fit=crop"></noscript>
</figure>
<div class="card__content-wrapper">
<a href="https://kotiliesi.fi/kategoria/koti/sisustus/" class="card__vignette card__meta">
Sisustus</a>
<h3 class="card__title">
<a href="https://kotiliesi.fi/koti/sisustus/paula-ja-daniel-huntin-koti/" class="card__link-overlay">
Oma piha ja minuutissa kylpytakki päällä rantaan – ei uskoisi, että Paulan ja Danielin koti sijaitsee Helsingin keskustassa </a>
</h3>
</div>
</article>
</li>
<li>
<article class="card article-card">
<figure class="card__image-wrapper">
<img class="card__image awpo-lazy" alt="Pernilla Böckerman ja Tankki-tuoli." data-src="https://kotiliesi.fi/awpo/img/2026/07/dscf4007.jpg?s=f6da6212bb899b5f2fec9be5126ff165&fit=crop"><noscript><img class="card__image " alt="Pernilla Böckerman ja Tankki-tuoli." src="https://kotiliesi.fi/awpo/img/2026/07/dscf4007.jpg?s=f6da6212bb899b5f2fec9be5126ff165&fit=crop"></noscript>
</figure>
<div class="card__content-wrapper">
<a href="https://kotiliesi.fi/kategoria/koti/sisustus/" class="card__vignette card__meta">
Sisustus</a>
<h3 class="card__title">
<a href="https://kotiliesi.fi/koti/sisustus/pernilla-bockerman-ja-tankki-nojatuoli/" class="card__link-overlay">
Pernilla Böckerman harkitsi nojatuolin ostamista 8 vuotta – äiti rohkaisi päätöksenteossa </a>
</h3>
</div>
</article>
</li>
<li>
<article class="card article-card">
<figure class="card__image-wrapper">
<img class="card__image awpo-lazy" alt="Max ja Maria kotinsa pihalla." data-src="https://kotiliesi.fi/awpo/img/2026/07/maria-ja-max-4910_0001.jpg?s=1a49cd56e7b3f7315d126b4ef49f6e6f&fit=crop"><noscript><img class="card__image " alt="Max ja Maria kotinsa pihalla." src="https://kotiliesi.fi/awpo/img/2026/07/maria-ja-max-4910_0001.jpg?s=1a49cd56e7b3f7315d126b4ef49f6e6f&fit=crop"></noscript>
</figure>
<div class="card__content-wrapper">
<a href="https://kotiliesi.fi/kategoria/koti/sisustus/" class="card__vignette card__meta">
Sisustus</a>
<h3 class="card__title">
<a href="https://kotiliesi.fi/koti/sisustus/marian-ja-maxin-koti-raumalla/" class="card__link-overlay">
Röttelöstä tulikin oma koti – remontin aikana Maria ehti epäröidä lähes kaikkea </a>
</h3>
</div>
</article>
</li>
<li>
<article class="card article-card">
<figure class="card__image-wrapper">
<img class="card__image awpo-lazy" alt="Terassi remontin jälkeen." data-src="https://kotiliesi.fi/awpo/img/2026/07/image00009_0001.jpg?s=d7632b31e75167b91ba8d4bf7027b525&fit=crop"><noscript><img class="card__image " alt="Terassi remontin jälkeen." src="https://kotiliesi.fi/awpo/img/2026/07/image00009_0001.jpg?s=d7632b31e75167b91ba8d4bf7027b525&fit=crop"></noscript>
</figure>
<div class="card__content-wrapper">
<a href="https://kotiliesi.fi/kategoria/koti/sisustus/" class="card__vignette card__meta">
Sisustus</a>
<h3 class="card__title">
<a href="https://kotiliesi.fi/koti/sisustus/terassin-laajennus-ja-piharemontti/" class="card__link-overlay">
Terassin laajennus ja piharemontti veivät kolme vuotta ja reilu 26 000 euroa – lopputulosta kelpaa katsella </a>
</h3>
</div>
</article>
</li>
<li>
<article class="card article-card">
<figure class="card__image-wrapper">
<img class="card__image awpo-lazy" alt="Linda Björnberg." data-src="https://kotiliesi.fi/awpo/img/2026/07/lindaratakatu_0363_0001.jpg?s=de82b1eb0a451beaa6aabc24b06f8489&fit=crop"><noscript><img class="card__image " alt="Linda Björnberg." src="https://kotiliesi.fi/awpo/img/2026/07/lindaratakatu_0363_0001.jpg?s=de82b1eb0a451beaa6aabc24b06f8489&fit=crop"></noscript>
</figure>
<div class="card__content-wrapper">
<a href="https://kotiliesi.fi/kategoria/koti/sisustus/" class="card__vignette card__meta">
Sisustus</a>
<h3 class="card__title">
<a href="https://kotiliesi.fi/koti/sisustus/linda-bjornbergin-koti/" class="card__link-overlay">
Linda Björnbergin kodin sijainti on täydellinen, mutta hän on sen takia aina myöhässä </a>
</h3>
</div>
</article>
</li>
<li>
<article class="card article-card">
<figure class="card__image-wrapper">
<img class="card__image awpo-lazy" alt="" data-src="https://kotiliesi.fi/awpo/img/2026/06/7v0a5773_0001.jpg?s=a2d8b9aff3b9ceaad48219e788564488&fit=crop"><noscript><img class="card__image " alt="" src="https://kotiliesi.fi/awpo/img/2026/06/7v0a5773_0001.jpg?s=a2d8b9aff3b9ceaad48219e788564488&fit=crop"></noscript>
</figure>
<div class="card__content-wrapper">
<a href="https://kotiliesi.fi/kategoria/koti/sisustus/" class="card__vignette card__meta">
Sisustus</a>
<h3 class="card__title">
<a href="https://kotiliesi.fi/koti/sisustus/emilian-vaatehuoneremontti/" class="card__link-overlay">
Vaatehuoneen muutos 400 eurolla: Emilia muutti helpoilla kikoilla epäkäytännöllisen vaatehuoneen kauniiksi ja toimivaksi </a>
</h3>
</div>
</article>
</li>
<li>
<article class="card article-card">
<figure class="card__image-wrapper">
<img class="card__image awpo-lazy" alt="" data-src="https://kotiliesi.fi/awpo/img/2026/07/u5a3143-copy-2_0001.jpg?s=6a1caa090dcbd7cd39dbccf0910ae994&fit=crop"><noscript><img class="card__image " alt="" src="https://kotiliesi.fi/awpo/img/2026/07/u5a3143-copy-2_0001.jpg?s=6a1caa090dcbd7cd39dbccf0910ae994&fit=crop"></noscript>
</figure>
<div class="card__content-wrapper">
<a href="https://kotiliesi.fi/kategoria/koti/sisustus/" class="card__vignette card__meta">
Sisustus</a>
<h3 class="card__title">
<a href="https://kotiliesi.fi/koti/sisustus/rantatontti-raaseporissa/" class="card__link-overlay">
Suojellun hirsitalon remontti ei houkuttanut - perhe rakensi viereen modernin kesämökin </a>
</h3>
</div>
</article>
</li>
<li>
<article class="card article-card">
<figure class="card__image-wrapper">
<img class="card__image awpo-lazy" alt="" data-src="https://kotiliesi.fi/awpo/img/2026/07/deko-lempaala-05_0001.jpg?s=6253df97e5938326c7123973047947e1&fit=crop"><noscript><img class="card__image " alt="" src="https://kotiliesi.fi/awpo/img/2026/07/deko-lempaala-05_0001.jpg?s=6253df97e5938326c7123973047947e1&fit=crop"></noscript>
</figure>
<div class="card__content-wrapper">
<a href="https://kotiliesi.fi/kategoria/koti/sisustus/" class="card__vignette card__meta">
Sisustus</a>
<h3 class="card__title">
<a href="https://kotiliesi.fi/koti/sisustus/matti-ja-viivi-asuntomessut/" class="card__link-overlay">
Asuntomessuille talon rakentaneet Matti ja Viivi paljastavat, ettei koti jää samannäköiseksi kuin messuilla: "Katselemme käytettyjä huonekaluja" </a>
</h3>
</div>
</article>
</li>
</ul>
</div>
<div id="dynamic-archive-list" class="article-card-grid is-style-standard"></div>
<script>
window.omPreactComponents.renderComponent(
"#dynamic-archive-list",
"LoadMore",
{"cache":{"responseId":"fbe1ec7907afc9071ae0077b5f11de9c"},"api":{"baseUrl":"\/wp-json\/om\/v2","path":"posts\/new","perPage":15,"startPage":2,"tag":18351,"post_type":["post","resepti"]},"template":{"templateName":"Card","preset":"KotiliesiCard","showDate":false,"showSubscriberTag":true,"classes":{"article":"preact-card article-card"},"commercialText":"Mainos","vignetteType":"category","defaultImage":{"url":"https:\/\/kotiliesi.fi\/wp-content\/themes\/om-kotiliesi-theme\/assets\/images\/placeholder.svg","alt":""}}} );
</script>
<div id="archive-blocks">
</div>
</div>
</main>
<footer id="footer" class="site-footer" role="contentinfo">
<div class="magazine-footer magazine-footer--deko">
<div class="magazine-footer__content">
<div class="magazine-footer__section">
<div class="magazine-footer__magazine-cover magazine-footer__magazine-cover--deko">
<a href="https://tilaus.dekolehti.fi/tilaus?promoID=OM_tilaa-painike&promoName=OM_DE&promoCreative=onlinetarjous&promoPosition=brandipalkki">
<span class="screen-reader-text">Tilaa Deko-lehti</span>
<img width="213" height="270" alt="Deko kansikuva" data-srcset="https://mediapankki.otavamedia.fi/api/v1/covers/Deko/latest.jpg?maxWidth=426&maxHeight=540 2x, https://mediapankki.otavamedia.fi/api/v1/covers/Deko/latest.jpg?maxWidth=639&maxHeight=810 3x" data-src="https://mediapankki.otavamedia.fi/api/v1/covers/Deko/latest.jpg?maxWidth=213&maxHeight=270" class="awpo-lazy"><noscript><img srcset="https://mediapankki.otavamedia.fi/api/v1/covers/Deko/latest.jpg?maxWidth=426&maxHeight=540 2x, https://mediapankki.otavamedia.fi/api/v1/covers/Deko/latest.jpg?maxWidth=639&maxHeight=810 3x" src="https://mediapankki.otavamedia.fi/api/v1/covers/Deko/latest.jpg?maxWidth=213&maxHeight=270" width="213" height="270" alt="Deko kansikuva"></noscript> </a>
</div>
</div>
<div class="magazine-footer__section">
<div class="magazine-footer__logo magazine-footer__logo--deko">
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 538 203"><path fill="currentColor" d="M20.7 14.2c-1.2 0-2.2.3-3 .8-.8.6-1.2 1.2-1.2 2 0 1.4 1.5 2.5 4.5 3.4 1.7.5 3.1 1 4.2 1.5 2.6 1.3 4.4 2.6 5.5 4.1 1 1.5 1.6 3.5 1.6 5.9v138.7c0 2.4-.6 4.4-1.9 6a13.9 13.9 0 0 1-6 4c-1.3.4-3 1-5.2 1.5-3 .9-4.6 2-4.6 3.1 0 1 .5 1.7 1.4 2.2.8.5 2 .7 3.5.7h54c9.5 0 18.8-1 28-3.2a123.9 123.9 0 0 0 26.3-9.2 77.5 77.5 0 0 0 31-27.4A69.3 69.3 0 0 0 170 110c0-12.7-3.3-25.3-10-37.7a100.7 100.7 0 0 0-27.5-32.3 113.9 113.9 0 0 0-40.2-19.3 210.6 210.6 0 0 0-54.9-6.4H20.7zm38.5 9c1-.8 2.7-1.3 5-1.3 22.6 0 41 8 55.1 24.2 14.1 16.1 21.1 37.5 21.1 64 0 23.8-6.1 41.7-18.4 53.9-12.3 12.2-30.5 18.3-54.4 18.3-4.1 0-6.8-.4-8-1-1.3-.8-2-2.7-2-5.9V27.5c0-2 .6-3.4 1.6-4.3zm151.3 105.1h-1.3c-1.4 0-2.5-.5-3-1.6-.5-1-.8-3.3-.8-6.6 0-9.5 2.4-17.3 7.1-23.4 4.8-6.1 11-9.2 18.4-9.2 6.9 0 13 3.3 18.5 9.8a33.4 33.4 0 0 1 8.2 22c0 .7-.3 1.2-1 1.8a4.4 4.4 0 0 1-2.1 1.1l-44 6.1zm71-3.3c.4-.6.7-1.4.7-2.5 0-4.7-1.5-9.6-4.4-14.8a52.1 52.1 0 0 0-27.2-22.9C245 83 239.2 82 232.9 82a47.4 47.4 0 0 0-36 14.5 53.2 53.2 0 0 0-13.9 38.2 55 55 0 0 0 16 40.7 55.7 55.7 0 0 0 59.4 11.8 62.1 62.1 0 0 0 22-18.4 9.3 9.3 0 0 0 1.8-4.3c0-.7-.3-1.2-.8-1.7-.5-.4-1.2-.7-2-.7-1 0-2.9 1.8-5.9 5.3-3 3.5-5.8 6.3-8.6 8.3a36.2 36.2 0 0 1-19.4 5.8c-7.5 0-14.2-2-20-6.2a41 41 0 0 1-13.8-17.8 63.4 63.4 0 0 1-3.5-10 34 34 0 0 1-1.3-8.2c0-1.3.3-2.2 1-2.8.5-.6 1.8-1 3.8-1.3L279 126c1-.1 1.9-.5 2.4-1zm46 17.7V14.5c0-1.1-.1-1.9-.4-2.3-.3-.5-.8-.7-1.6-.7-.4 0-.8.1-1.3.5l-.5.2-27.2 11.5A7 7 0 0 0 294 25c-.3.4-.5 1-.5 1.8 0 1.1 1.4 2 4.3 2.8 2.2.5 3.8 1 5 1.4a7 7 0 0 1 3.5 2.7 9 9 0 0 1 1 4.8v132c0 2.4-.4 4.3-1.3 5.7-1 1.5-2.8 3-5.3 4.3l-3.4 1.4c-3 1-4.6 2.3-4.7 3.7 0 .8.5 1.4 1.2 1.8.8.5 1.7.7 2.9.7h40.5c1.1 0 2-.2 2.6-.7.6-.4 1-1.2 1-2.2 0-.8-2.2-2.3-6.6-4.6-4.5-2.3-6.7-5.6-6.7-10v-20.4l29-25.7 20.6 47.8.9 2c.2.5.2 1 .2 1.4 0 2.5-1.8 4.5-5.4 5.9-3.7 1.3-5.5 2.7-5.5 4 0 .8.3 1.5.9 1.9.6.4 1.5.6 2.8.6h41.3c1 0 2-.2 2.5-.7.7-.4 1-1.2 1.1-2.2 0-.7-2.5-2.4-7.5-5a22 22 0 0 1-10.4-10.7l-26-58.8 13-11a44 44 0 0 1 13.6-8c4.9-1.7 7.4-3.3 7.4-4.6 0-.6-.3-1.1-1-1.5-.5-.4-1.3-.5-2.4-.5h-32c-1.5 0-2.5.1-3.2.5-.6.4-1 1-1 2 0 1.1 1.7 2.5 5 4s5 3 5 4.6c0 1.3-.3 2.4-.9 3.5-.6 1-1.7 2.3-3.5 3.9l-44.5 39.1zm147.9-50c4.5 2.7 8.8 6.4 12.7 11.1A86 86 0 0 1 502 128a74 74 0 0 1 4.8 26c0 9.3-2.2 16.6-6.6 22-4.4 5.3-10.5 8-18.2 8-7 0-13.3-2.1-19-6.5-5.8-4.3-11-11-16-20-3-5.4-5.3-11.6-7-18.4a79.5 79.5 0 0 1-2.6-19.7 34 34 0 0 1 6.8-22.3 22.4 22.4 0 0 1 18.1-8.3 26 26 0 0 1 13 4zM433 97.2a52.1 52.1 0 0 0-15.2 38.6c0 16.2 5.1 29.5 15.3 40a52.4 52.4 0 0 0 39.2 15.5c15.8 0 29-4.8 39.6-14.5a47 47 0 0 0 15.8-36.2 55 55 0 0 0-4-20.2c-2.6-6.8-6.5-13-11.5-19A56 56 0 0 0 493.8 87c-7-3.4-14.2-5-21.8-5-15.9 0-28.9 5-39 15z"></path></svg> </div>
<ul class="magazine-footer__list">
<li class="magazine-footer__list-item">
<a class="button button--primary" href="https://tilaus.dekolehti.fi/tilaus?promoID=OM_tilaa-painike&promoName=OM_DE&promoCreative=onlinetarjous&promoPosition=brandipalkki">Tilaa</a>
</li>
<li class="magazine-footer__list-item">
<a class="magazine-footer__link" href="/toimituksen-yhteystiedot?referer=https://kotiliesi.fi/avainsana/deko#palaute">
Anna palautetta
</a>
</li>
<li class="magazine-footer__list-item">
<a class="magazine-footer__link" href="https://www.minunmedia.fi/login?kotiliesi">Lukijapaneeli</a>
</li>
<li class="magazine-footer__list-item">
<a class="magazine-footer__link" href="https://etuasiakaskauppa.fi/?utm_source=kotiliesi.fi&utm_medium=link&utm_campaign=EAShop_kofi&utm_content=footer">
Etuasiakaskauppa
</a>
</li>
</ul>
</div>
<div class="magazine-footer__section">
<p class="magazine-footer__paragraph">Seuraa meitä</p>
<div class="social-media-icons social-media-icons--has-icon-background">
<a class="social-media-icons__link" href="https://www.facebook.com/dekolehti/" title="Facebookissa">
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 27.89 27.72"><path d="M27.89 13.94a13.95 13.95 0 1 0-16.12 13.78v-9.74H8.22v-4.04h3.55v-3.07c0-3.5 2.08-5.42 5.26-5.42a21.46 21.46 0 0 1 3.13.27v3.43H18.4a2.02 2.02 0 0 0-2.28 2.18v2.62H20l-.62 4.03h-3.25v9.74A13.95 13.95 0 0 0 27.9 13.94Z" fill="#3b5998"></path></svg> <span class="screen-reader-text">Seuraa Deko-lehteä Facebookissa</span>
</a>
<a class="social-media-icons__link" href="https://fi.pinterest.com/dekomagazine/" title="Pinterestissä">
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 27.89 27.89"><path d="M27.9 13.94A13.95 13.95 0 0 1 9.81 27.27a15.68 15.68 0 0 0 1.73-3.66l.87-3.32a3.73 3.73 0 0 0 3.19 1.6c4.2 0 7.24-3.87 7.24-8.67 0-4.6-3.77-8.05-8.6-8.05-6.02 0-9.22 4.03-9.22 8.44 0 2.04 1.1 4.59 2.83 5.4.26.12.4.06.47-.2l.38-1.57a.42.42 0 0 0-.1-.4 5.5 5.5 0 0 1-1.03-3.18 6.04 6.04 0 0 1 6.3-6.05 5.5 5.5 0 0 1 5.83 5.67c0 3.77-1.9 6.39-4.39 6.39a2.02 2.02 0 0 1-2.06-2.52c.4-1.66 1.15-3.45 1.15-4.65a1.75 1.75 0 0 0-1.76-1.96c-1.4 0-2.53 1.45-2.53 3.39a5.03 5.03 0 0 0 .42 2.07s-1.37 5.84-1.63 6.93a13.5 13.5 0 0 0-.05 4A13.95 13.95 0 1 1 27.9 13.94Z" fill="#e60023"></path></svg> <span class="screen-reader-text">Seuraa Deko-lehteä Pinterestissä</span>
</a>
<a class="social-media-icons__link" href="https://www.instagram.com/dekolehti/" title="Instagramissa">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewbox="0 0 132 132">
<defs>
<radialgradient id="c" cx="158.43" cy="578.09" r="65" xlink:href="#a" gradientunits="userSpaceOnUse" gradienttransform="matrix(0 -1.98198 1.8439 0 -1031.4 454)" fx="158.43" fy="578.09"></radialgradient>
<radialgradient id="d" cx="147.69" cy="473.45" r="65" xlink:href="#b" gradientunits="userSpaceOnUse" gradienttransform="matrix(.17394 .86872 -3.5818 .71718 1648.35 -458.5)" fx="147.69" fy="473.45"></radialgradient>
<lineargradient id="b">
<stop offset="0" stop-color="#3771c8"></stop>
<stop stop-color="#3771c8" offset=".13"></stop>
<stop offset="1" stop-color="#60f" stop-opacity="0"></stop>
</lineargradient>
<lineargradient id="a">
<stop offset="0" stop-color="#fd5"></stop>
<stop offset=".1" stop-color="#fd5"></stop>
<stop offset=".5" stop-color="#ff543e"></stop>
<stop offset="1" stop-color="#c837ab"></stop>
</lineargradient>
</defs>
<path fill="url(#c)" d="M65.03 0C37.89 0 29.95.03 28.41.16c-5.57.46-9.04 1.34-12.82 3.22a25.95 25.95 0 0 0-7.47 5.46C4 13.13 1.5 18.4.6 24.66.14 27.7.02 28.32 0 43.84v21.13c0 27.12.03 35.05.16 36.59.45 5.42 1.3 8.83 3.1 12.56a27.39 27.39 0 0 0 17.75 14.5c2.68.69 5.64 1.07 9.44 1.25 1.61.07 18.02.12 34.44.12 16.42 0 32.84-.02 34.41-.1 4.4-.2 6.96-.55 9.78-1.28a27.22 27.22 0 0 0 17.75-14.53c1.77-3.64 2.66-7.18 3.07-12.32.08-1.12.12-18.98.12-36.8 0-17.84-.04-35.67-.13-36.79-.4-5.22-1.3-8.73-3.12-12.44a25.77 25.77 0 0 0-5.57-7.62C116.9 4 111.64 1.5 105.37.6 102.33.16 101.73.03 86.2 0H65.03z" transform="translate(1 1)"></path>
<path fill="url(#d)" d="M65.03 0C37.89 0 29.95.03 28.41.16c-5.57.46-9.04 1.34-12.82 3.22a25.95 25.95 0 0 0-7.47 5.46C4 13.13 1.5 18.4.6 24.66.14 27.7.02 28.32 0 43.84v21.13c0 27.12.03 35.05.16 36.59.45 5.42 1.3 8.83 3.1 12.56a27.39 27.39 0 0 0 17.75 14.5c2.68.69 5.64 1.07 9.44 1.25 1.61.07 18.02.12 34.44.12 16.42 0 32.84-.02 34.41-.1 4.4-.2 6.96-.55 9.78-1.28a27.22 27.22 0 0 0 17.75-14.53c1.77-3.64 2.66-7.18 3.07-12.32.08-1.12.12-18.98.12-36.8 0-17.84-.04-35.67-.13-36.79-.4-5.22-1.3-8.73-3.12-12.44a25.77 25.77 0 0 0-5.57-7.62C116.9 4 111.64 1.5 105.37.6 102.33.16 101.73.03 86.2 0H65.03z" transform="translate(1 1)"></path>
<path fill="#fff" d="M66 18c-13.03 0-14.67.06-19.79.29-5.1.23-8.6 1.04-11.65 2.23a23.5 23.5 0 0 0-8.5 5.54 23.56 23.56 0 0 0-5.54 8.5c-1.2 3.05-2 6.54-2.23 11.65C18.06 51.33 18 52.96 18 66s.06 14.67.29 19.79c.23 5.1 1.04 8.6 2.23 11.65a23.52 23.52 0 0 0 5.54 8.5 23.5 23.5 0 0 0 8.5 5.54c3.05 1.19 6.54 2 11.65 2.23 5.12.23 6.75.29 19.79.29 13.03 0 14.67-.06 19.79-.29 5.1-.23 8.6-1.04 11.65-2.23a23.48 23.48 0 0 0 8.5-5.54 23.56 23.56 0 0 0 5.54-8.5c1.18-3.05 1.99-6.54 2.23-11.65.23-5.12.29-6.75.29-19.79s-.06-14.67-.3-19.8c-.23-5.1-1.04-8.59-2.22-11.64a23.56 23.56 0 0 0-5.54-8.5 23.46 23.46 0 0 0-8.5-5.54c-3.06-1.19-6.55-2-11.66-2.23-5.12-.23-6.75-.29-19.8-.29zm-4.3 8.65H66c12.82 0 14.34.05 19.4.28 4.68.21 7.22 1 8.91 1.65 2.24.87 3.84 1.9 5.52 3.59a14.9 14.9 0 0 1 3.59 5.52c.66 1.69 1.44 4.23 1.65 8.9.23 5.07.28 6.59.28 19.4s-.05 14.33-.28 19.39c-.21 4.68-1 7.22-1.65 8.9a14.84 14.84 0 0 1-3.6 5.52 14.84 14.84 0 0 1-5.5 3.6c-1.7.65-4.24 1.43-8.92 1.65-5.06.23-6.58.28-19.4.28-12.81 0-14.33-.05-19.4-.28-4.67-.22-7.21-1-8.9-1.66a14.87 14.87 0 0 1-5.52-3.59 14.88 14.88 0 0 1-3.6-5.52c-.65-1.69-1.44-4.23-1.65-8.9-.23-5.07-.28-6.59-.28-19.4s.05-14.33.28-19.4c.21-4.67 1-7.21 1.65-8.9a14.87 14.87 0 0 1 3.6-5.53 14.9 14.9 0 0 1 5.52-3.59c1.69-.66 4.23-1.44 8.9-1.65 4.44-.2 6.15-.26 15.1-.27zm29.93 7.97a5.76 5.76 0 1 0 0 11.52 5.76 5.76 0 0 0 0-11.52zM66 41.35a24.65 24.65 0 1 0 0 49.3 24.65 24.65 0 0 0 0-49.3zM66 50a16 16 0 1 1 0 32 16 16 0 0 1 0-32z"></path>
</svg> <span class="screen-reader-text">Seuraa Deko-lehteä Instagramissa</span>
</a>
</div>
</div>
</div>
</div>
<div class="om-footer">
<div class="om-footer__columns">
<div class="om-footer__columns-inner">
<div class="om-footer__column">
<h2 class="om-footer__column-title">
Asiakaspalvelu </h2>
<div class="om-footer__column-content">
<p class="om-footer__paragraph">Digipalvelu <a class="om-footer__link" href="tel:09156%206227">(09) 156 6227</a><br>
Avoinna ma–pe <time datetime="08:00">8</time>–<time datetime="19:00">19</time></p>
<p class="om-footer__paragraph">Painettu lehti <a class="om-footer__link" href="tel:09156665">(09) 156 665</a><br>
Avoinna ma–pe <time datetime="08:00">8</time>–<time datetime="19:00">19</time></p>
<p class="om-footer__paragraph">Otavamedian vaihde <a class="om-footer__link" href="tel:0915661">(09) 156 61</a></p>
<h3 class="om-footer__column-title">SÄHKÖPOSTI</h3>
<address class="om-footer__address"><a class="om-footer__link" href="mailto:digi@otavamedia.fi">digi@otavamedia.fi</a><br>
<a class="om-footer__link" href="mailto:asiakaspalvelu@otavamedia.fi">asiakaspalvelu@otavamedia.fi</a></address>
</div>
</div>
<div class="om-footer__column">
<h2 class="om-footer__column-title">
Postiosoite </h2>
<div class="om-footer__column-content">
<address class="om-footer__address">Uudenmaankatu 10<br>
00015 OTAVAMEDIA</address>
<address> </address>
<ul class="om-footer__list">
<li class="om-footer__list-item"><a class="om-footer__link oba-link" href="https://otavamedia.fi/evasteiden-kaytto/" rel="nofollow help">Tietoa evästeiden käytöstä</a></li>
<li class="om-footer__list-item"><a class="om-footer__link oba-link" href="https://www.youronlinechoices.com/fi/" rel="nofollow help">Käyttäytymiseen perustuva mainonta</a></li>
<li class="om-footer__list-item"><a class="manageSettings om-footer__link oba-link" href="#">Evästeasetukset</a></li>
</ul>
</div>
</div>
<div class="om-footer__column">
<h2 class="om-footer__column-title">
Mediatiedot </h2>
<div class="om-footer__column-content">
<ul class="om-footer__list">
<li class="om-footer__list-item"><a class="om-footer__link" href="https://yrityksille.otavamedia.fi/tekniset-tiedot-ja-hinnat/" rel="nofollow help">Tekniset tiedot, aikataulut ja ilmoitushinnat</a></li>
<li class="om-footer__list-item"><a class="om-footer__link" href="https://yrityksille.otavamedia.fi/reaaliaikainen-kayttajatieto/" rel="nofollow help">Tietoa verkon kävijöistä</a></li>
<li class="om-footer__list-item"><a class="om-footer__link" href="https://otavamedia.fi/tietosuoja/" rel="nofollow help">Tietosuojaseloste</a></li>
<li class="om-footer__list-item"><a class="om-footer__link" href="https://otavamedia.fi/tilaus-ja-kayttoehdot/" rel="nofollow help">Käyttöehdot</a></li>
</ul>
</div>
<h2 class="om-footer__column-title">
Tuotteet </h2>
<div class="om-footer__column-content">
<ul class="om-footer__list">
<li class="om-footer__list-item"><a class="om-footer__link" href="https://otavamedia.fi/tuotteet-ja-edut/" rel="nofollow">Aikakauslehdet</a></li>
<li class="om-footer__list-item"><a class="om-footer__link" href="https://otavamedia.fi/tuotteet-ja-edut/verkkopalvelut" rel="nofollow">Verkkopalvelut</a></li>
<li class="om-footer__list-item"><a class="om-footer__link" href="https://otavamedia.fi/tuotteet-ja-edut/digilehdet" rel="nofollow">Digilehdet</a></li>
</ul>
</div>
</div>
<div class="om-footer__column">
<h2 class="om-footer__column-title">
Ota yhteyttä </h2>
<div class="om-footer__column-content">
<ul class="om-footer__list">
<li class="om-footer__list-item"><a class="om-footer__link" href="/toimituksen-yhteystiedot/">Toimitus</a></li>
</ul>
<p class="om-footer__paragraph">Vastaava päätoimittaja<br>
<a class="om-footer__link" href="mailto:saija.hakoniemi@otava.fi">saija.hakoniemi@otava.fi</a></p>
<p class="om-footer__paragraph">Sähköpostiosoitteet<br>
etunimi.sukunimi@otava.fi</p>
</div>
</div>
</div>
</div>
<div class="om-footer__logo">
<img width="150" height="65" src="https://kotiliesi.fi/awpo/img/2024/02/otavamedia_logo_valkoinen-150x65.png?w=100&h=43&blur=30&s=aba1ff24e3eba03e8bf406e3a80143ff" class="attachment-thumbnail size-thumbnail awpo-lqip awpo-lazy" alt="" decoding="async" data-src="https://kotiliesi.fi/awpo/img/2024/02/otavamedia_logo_valkoinen-150x65.png?s=aba1ff24e3eba03e8bf406e3a80143ff"><noscript><img width="150" height="65" src="https://kotiliesi.fi/wp-content/uploads/2024/02/otavamedia_logo_valkoinen-150x65.png" class="attachment-thumbnail size-thumbnail" alt="" decoding="async" loading="lazy" srcset="https://kotiliesi.fi/wp-content/uploads/2024/02/otavamedia_logo_valkoinen-150x65.png 150w, https://kotiliesi.fi/wp-content/uploads/2024/02/otavamedia_logo_valkoinen-796x346.png 796w, https://kotiliesi.fi/wp-content/uploads/2024/02/otavamedia_logo_valkoinen-1180x512.png 1180w, https://kotiliesi.fi/wp-content/uploads/2024/02/otavamedia_logo_valkoinen-768x334.png 768w, https://kotiliesi.fi/wp-content/uploads/2024/02/otavamedia_logo_valkoinen-1536x667.png 1536w, https://kotiliesi.fi/wp-content/uploads/2024/02/otavamedia_logo_valkoinen-2048x889.png 2048w" sizes="auto, (max-width: 150px) 100vw, 150px"></noscript> </div>
</div>
</footer>
<div class="brand-footer"><div class="brand-footer__columns"><div class="brand-footer__columns-inner"><div class="brand-footer__column"><div class="brand-footer__column-logo"><a href="https://anna.fi" target="_blank" aria-label="Anna"><svg xmlns="http://www.w3.org/2000/svg" width="128.99" height="33" viewbox="0 0 128.99 33">
<path id="logo_Anna" d="M26.85,33.32h2c.78-3.53,2.54-6.15,6.57-6.15,4.31,0,5.86,3.32,5.86,12.5a11.37,11.37,0,0,0-3.89-.42c-5,0-11.87,2-11.87,8.76,0,5.58,4.1,8.48,7.77,8.48,3.39,0,6.29-1.84,7.06-4.45v-1a3,3,0,0,1-2,.64c-2.47,0-4.1-2-4.1-5.3s2.26-5.58,4.87-5.58a4.56,4.56,0,0,1,2.19.35c0,4,0,7.28-.14,14.62H53.55V54.52H50.44s.21-9.68.21-18.86c0-8-3.53-12.15-10.95-12.15-7.21,0-10.31,3.39-11.44,7.13V24.21H26.85ZM74,55.79H89.15V54.52H86s.21-10.6.21-19.29S83,23.51,77.07,23.51a10.12,10.12,0,0,0-9.54,7.06V24.21H55.17v1.27h3.32v29H56.23v1.27h15V54.52H67.54V36.29c0-4.94,1.48-8.05,5-8.05s4.31,2.4,4.31,8.05c0,6.71,0,11.73-.14,18.23H74Zm35.39,0h15.12V54.52H121.4s.21-10.6.21-19.29-3.25-11.73-9.18-11.73a10.12,10.12,0,0,0-9.54,7.06V24.21H90.56v1.27h3.32v29H91.62v1.27h15V54.52h-3.67V36.29c0-4.94,1.48-8.05,5-8.05s4.31,2.4,4.31,8.05c0,6.71,0,11.73-.14,18.23h-2.68v1.27Zm18.37-22.46h2c.78-3.53,2.54-6.15,6.57-6.15,4.31,0,5.86,3.32,5.86,12.5a11.37,11.37,0,0,0-3.89-.42c-5,0-11.87,2-11.87,8.76,0,5.58,4.1,8.48,7.77,8.48,3.39,0,6.29-1.84,7.06-4.45v-1a3,3,0,0,1-2,.64c-2.47,0-4.1-2-4.1-5.3s2.26-5.58,4.87-5.58a4.56,4.56,0,0,1,2.19.35c0,4,0,7.28-.14,14.62h12.43V54.52H151.4s.21-9.68.21-18.86c0-8-3.53-12.15-10.95-12.15-7.21,0-10.31,3.39-11.44,7.13V24.21h-1.41v9.11Z" transform="translate(-25.52 -23.5)"></path>
</svg></a></div><div class="brand-footer__column-links"><a href="https://anna.fi/kategoria/ihmiset" target="_blank" class="brand-footer__column-link">Ihmiset</a><a href="https://anna.fi/kategoria/hyvinvointi" target="_blank" class="brand-footer__column-link">Hyvinvointi</a><a href="https://anna.fi/kategoria/ruoka" target="_blank" class="brand-footer__column-link">Ruoka</a><a href="https://anna.fi/kategoria/lifestyle" target="_blank" class="brand-footer__column-link">Lifestyle</a><a href="https://anna.fi/kategoria/horoskoopit" target="_blank" class="brand-footer__column-link">Horoskoopit</a><a href="https://anna.fi/keidas" target="_blank" class="brand-footer__column-link">Keidas</a><a href="https://anna.fi/reseptihaku" target="_blank" class="brand-footer__column-link">Reseptit</a></div></div><div class="brand-footer__column"><div class="brand-footer__column-logo"><a href="https://seura.fi" target="_blank" aria-label="Seura"><svg id="logo_seura" xmlns="http://www.w3.org/2000/svg" width="163.855" height="33" viewbox="0 0 163.855 33">
<path id="Path_18" data-name="Path 18" d="M26.484,55.684a7.175,7.175,0,0,1-.889,2.657H20V48.334h6.718c.7,3.371,3.511,4.682,6.952,4.682,3.757,0,5.536-1.428,5.536-3.324,0-3.066-2.914-2.809-8.637-3.839-6.578-1.17-10.416-3.406-10.416-10.182,0-6.519,5.384-9.574,11.271-9.749,2.7-.082,6.484.585,8.076,2.961a7.315,7.315,0,0,1,.936-2.341h5.77v9.234H39.3c-.8-2.341-2.54-3.792-5.957-3.792-3.148,0-4.834,1.252-4.834,3.1,0,3.066,2.914,2.891,9.363,3.886s10.182,3.663,10.182,9.972c0,5.571-4.178,10-12.348,9.972C32.032,58.856,28.357,58.317,26.484,55.684Z" transform="translate(-20 -25.914)"></path>
<path id="Path_19" data-name="Path 19" d="M56.455,32.048V31.72H66.743l.07.246L68.3,37.993h5.735V26.43H44.33v5.29h3.09v21.09H44.33v5.267h29.7V45.894H68.3l-1.58,6.648-.059.269H56.455V45.5h6.25V38.883h-6.25V32.048Z" transform="translate(-15.854 -25.826)"></path>
<path id="Path_20" data-name="Path 20" d="M71.09,26.43H86.949v5.278h-3.16V44.9c0,3.687.843,5.981,4.974,5.981s5.115-2.341,5.068-5.981V31.72H90.554V26.43h15.215v5.278h-2.645V45.028c0,10.241-4.4,13.67-14.372,13.67s-14.372-3.511-14.372-13.05V31.72H71.09Z" transform="translate(-11.295 -25.826)"></path>
<path id="Path_21" data-name="Path 21" d="M134.708,58.091V52.836h-2.692V45.813c0-2.341-2.072-2.727-4.061-3.137l-1.065-.234-1.5-.375,1.521-.281c4.155-.737,6.016-2.984,6.016-7.3,0-3.055-.784-5.056-2.481-6.308s-4.237-1.685-8.193-1.685h-20.4v5.255h2.622v21.09H101.2v5.29h15.554v-5.29h-3.265V45.146h5.77c3.265,0,3.71,2.516,3.71,4.962v7.982Zm-15.168-19.3h-5.7V31.768h5.712a3.522,3.522,0,1,1-.012,7.022Z" transform="translate(-6.164 -25.816)"></path>
<path id="Path_22" data-name="Path 22" d="M163.552,52.846h1.767v5.29H149.765v-5.29h3.956l-.152-.445-1.7-4.81-.082-.222H141.643l-.082.222-1.709,4.8-.152.468h4v5.29H128.78v-5.3h1.931l.094-.234,7.526-20.377.152-.445h-3.675V26.43h24.66v5.349h-3.7l.152.445L163.178,52.6l.082.246ZM146.71,32.2l-2.984,10.112h6.121L146.8,32.2Z" transform="translate(-1.465 -25.826)"></path>
</svg></a></div><div class="brand-footer__column-links"><a href="https://seura.fi/kategoria/asiat/" target="_blank" class="brand-footer__column-link">Asiat</a><a href="https://seura.fi/kategoria/ilmiot/" target="_blank" class="brand-footer__column-link">Ilmiöt</a><a href="https://seura.fi/kategoria/viihde/" target="_blank" class="brand-footer__column-link">Henkilöt & viihde</a><a href="https://seura.fi/kategoria/terveys/" target="_blank" class="brand-footer__column-link">Terveys</a><a href="https://seura.fi/kategoria/horoskoopit/" target="_blank" class="brand-footer__column-link">Horoskoopit</a><a href="https://seura.fi/kategoria/tv/" target="_blank" class="brand-footer__column-link">Tv-Maailma</a><a href="https://seura.fi/blogit/" target="_blank" class="brand-footer__column-link">Kolumnit</a></div></div><div class="brand-footer__column"><div class="brand-footer__column-logo"><a href="https://kaksplus.fi" target="_blank" aria-label="Kaksplus"><svg id="logo_kaksplus" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="186.721" height="40.844" viewbox="0 0 186.721 40.844">
<defs>
<clippath id="clip-path">
<rect id="Rectangle_13" data-name="Rectangle 13" width="186.721" height="40.844" fill="none"></rect>
</clippath>
</defs>
<g id="Group_3" data-name="Group 3" clip-path="url(#clip-path)">
<path id="Path_23" data-name="Path 23" d="M28.17,32.364c-3.629,0-7.047.017-10.464-.031-.28,0-.65-.394-.816-.694-1.9-3.423-3.772-6.863-5.653-10.3-.157-.287-.328-.568-.543-.939-.994.988-1.911,1.811-1.829,3.417.142,2.809.04,5.631.04,8.506H0V.143H8.851V10.692c.354-.372.533-.532.68-.718,2.406-3.053,4.818-6.1,7.2-9.173A1.673,1.673,0,0,1,18.224.06c3.224.036,6.449.016,9.923.016-.423.5-.721.869-1.03,1.226-3.3,3.822-6.59,7.656-9.926,11.449a1.062,1.062,0,0,0-.094,1.521q5.233,8.473,10.419,16.976c.187.305.362.618.654,1.116" transform="translate(0 -0.048)" fill="#1a1818"></path>
<path id="Path_24" data-name="Path 24" d="M509.749,64.259V75.191h-8.27V43.309h8.27V45.8a2.5,2.5,0,0,0,.438-.218c6.1-5.279,15.609-2.443,17.892,6.273a12.552,12.552,0,0,1-4.739,13.428,10.585,10.585,0,0,1-12.483-.18c-.313-.232-.62-.472-1.108-.843m9.82-9.2a4.939,4.939,0,0,0-4.747-5.122c-2.857-.022-4.744,1.933-4.786,4.959a4.78,4.78,0,1,0,9.533.163" transform="translate(-401.3 -34.348)" fill="#1a1818"></path>
<path id="Path_25" data-name="Path 25" d="M263.565,32.613V.416h8.706V16.6l.205.067q1.524-1.874,3.048-3.749c.879-1.084,1.739-2.184,2.648-3.243a1.373,1.373,0,0,1,.881-.484c3.159-.025,6.318,0,9.478.013.05,0,.1.062.245.157-1.548,1.6-3.082,3.2-4.619,4.785-1.2,1.242-2.387,2.5-3.624,3.708a.946.946,0,0,0-.145,1.431c2.594,4.095,5.143,8.219,7.705,12.334.174.28.34.564.57.944-.319.034-.562.083-.8.083-2.661.005-5.322-.015-7.982.017a1.188,1.188,0,0,1-1.234-.739c-1.333-2.555-2.711-5.086-4.123-7.719-1.249,1.124-2.547,2.015-2.282,3.995a33.889,33.889,0,0,1,.037,4.412Z" transform="translate(-210.914 -0.333)" fill="#1a1818"></path>
<path id="Path_26" data-name="Path 26" d="M728.928,44.41V67.82h-8.472l-.353-2.205c-.269.2-.458.316-.624.461A9.472,9.472,0,0,1,710.154,68c-3.121-.87-4.626-3.163-5.16-6.2a17.2,17.2,0,0,1-.249-2.87c-.025-4.516-.012-9.032-.01-13.548,0-.292.031-.584.051-.93h9.139V45.5c0,3.653-.01,7.305.009,10.958a12.716,12.716,0,0,0,.2,2.273c.266,1.415.93,2.11,1.95,2.185a3,3,0,0,0,3.252-1.777,7.84,7.84,0,0,0,.394-2.431c.04-3.752.018-7.5.018-11.256V44.41Z" transform="translate(-563.949 -35.538)" fill="#1a1818"></path>
<path id="Path_27" data-name="Path 27" d="M138.112,43.21a20.146,20.146,0,0,1,14.6-1.935c3.738.881,6.015,3.6,6.422,7.593.235,2.3.2,4.637.225,6.958.034,2.982.008,5.964.008,9.009H151l-.288-2.082c-.5.4-.944.78-1.407,1.126-4.372,3.266-10.467,1.366-11.825-3.682-1.246-4.634,1.29-8.608,6.154-9.405a53.431,53.431,0,0,1,5.661-.343c.328-.018.656-.051.968-.076.559-1.354-.633-2.829-1.953-3.189a10.313,10.313,0,0,0-5.981.3c-.752.242-1.469.59-2.281.922l-1.933-5.194m12.4,11.57a34.771,34.771,0,0,0-4.5,1.01A1.986,1.986,0,0,0,145.281,59a3.215,3.215,0,0,0,3.778.367c.558-.342,1.247-.844,1.391-1.4a14.082,14.082,0,0,0,.062-3.193" transform="translate(-109.762 -32.561)" fill="#1a1818"></path>
<path id="Path_28" data-name="Path 28" d="M386.438,63.468l3.138-5.117a33.228,33.228,0,0,0,4.3,2.017,13.726,13.726,0,0,0,4,.446c.472,0,1.308-.557,1.331-.9a1.944,1.944,0,0,0-.879-1.473,18.677,18.677,0,0,0-2.854-1.123c-1.394-.523-2.831-.955-4.173-1.587-4.5-2.12-4.506-9.3-.268-11.734a13.358,13.358,0,0,1,7.4-1.587,14.87,14.87,0,0,1,8.237,2.876l-2.394,4.76c-1.8-.619-3.494-1.268-5.229-1.766a5.925,5.925,0,0,0-2.362-.115,1.544,1.544,0,0,0-1.052.867c-.1.278.263.884.583,1.1a11.693,11.693,0,0,0,2.136,1.028c1.691.678,3.455,1.2,5.085,2,5.54,2.717,4.144,8.85,1.161,11.347a9.266,9.266,0,0,1-5.817,2.258,19.339,19.339,0,0,1-11.106-2.465c-.392-.24-.766-.507-1.238-.821" transform="translate(-309.241 -33.921)" fill="#1a1818"></path>
<path id="Path_29" data-name="Path 29" d="M851.546,45.434l-2.588,5.119a15.275,15.275,0,0,0-6.294-2.076,4.248,4.248,0,0,0-1.567.127c-.88.277-1.066,1.132-.314,1.657a14.8,14.8,0,0,0,2.555,1.277c1.966.864,4.014,1.57,5.9,2.579a5.019,5.019,0,0,1,2.68,4.2,7.784,7.784,0,0,1-6.3,8.46,18.378,18.378,0,0,1-13.591-2.442,5.753,5.753,0,0,1-.485-.348,2.782,2.782,0,0,1-.262-.292l3.1-5.071c1.212.627,2.35,1.293,3.55,1.816a6.947,6.947,0,0,0,4.829.678c.485-.143,1.21-.565,1.236-.9a1.852,1.852,0,0,0-.8-1.418,15.875,15.875,0,0,0-2.655-1.079c-1.487-.559-3.028-1-4.458-1.679-4.522-2.142-4.542-9.479-.071-11.824a14.294,14.294,0,0,1,11.317-.708,36.36,36.36,0,0,1,4.222,1.931" transform="translate(-665.22 -34.147)" fill="#1a1818"></path>
<rect id="Rectangle_12" data-name="Rectangle 12" width="8.627" height="32.169" transform="translate(128.89 0)" fill="#1a1818"></rect>
</g>
</svg></a></div><div class="brand-footer__column-links"><a href="https://kaksplus.fi/kategoria/vauvahaaveet/" target="_blank" class="brand-footer__column-link">Vauvahaaveet</a><a href="https://kaksplus.fi/kategoria/raskaus/" target="_blank" class="brand-footer__column-link">Raskaus</a><a href="https://kaksplus.fi/kategoria/vauva/" target="_blank" class="brand-footer__column-link">Vauva</a><a href="https://kaksplus.fi/kategoria/lapsi/" target="_blank" class="brand-footer__column-link">Lapsi</a><a href="https://kaksplus.fi/kategoria/vanhemmuus/" target="_blank" class="brand-footer__column-link">Vanhemmuus</a><a href="https://kaksplus.fi/kategoria/perhe-elama/" target="_blank" class="brand-footer__column-link">Perhe-elämä</a><a href="https://keskustelu.kaksplus.fi/" target="_blank" class="brand-footer__column-link">Keskustelu</a></div></div></div></div></div>
<div class="user-session-modal" id="modal-user-info" tabindex="-1" role="dialog">
<article class="user-session-modal__wrapper">
<header class="user-session-modal__header">
<button type="button" class="user-session-modal__close-button" data-dismiss="modal">
<span class="icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" fill="currentColor"><path d="M19 6.4 17.6 5 12 10.6 6.4 5 5 6.4l5.6 5.6L5 17.6 6.4 19l5.6-5.6 5.6 5.6 1.4-1.4-5.6-5.6L19 6.4z"></path></svg></span>
<span class="screen-reader-text">Sulje modaali</span>
</button>
</header>
<div class="user-session-modal__content" id="logout-form">
<section class="user-session-modal__section">
<div id="user-info__placeholder" class="user-info__placeholder"></div>
</section>
<section class="user-session-modal__section">
<div class="user-info">
<p class="user-info__label">
Sähköpostiosoite </p>
<p class="user-info__input">
</p>
</div>
<form method="POST" class="form edit-contact-form">
<input type="hidden" name="asauth" value="asauth">
<input type="hidden" name="action" value="edit_contact">
<div class="form__group">
<label for="login_displayname" class="edit-contact-form__label">Nimimerkki</label>
<input id="login_displayname" name="displayname" class="edit-contact-form__input" type="text" required autocomplete="off" value="">
<button type="submit" class="edit-contact-form__button button button--secondary">
Päivitä nimimerkki
</button>
</div>
</form>
<a href="https://kotiliesi.fi/wp-login.php?action=logout&_wpnonce=351f909409&redirect_to=https%3A%2F%2Ftili.otavamedia.fi%2Fauth%2Fsession%2Fend%3Fpost_logout_redirect_uri%3Dhttps%3A%2F%2Fkotiliesi.fi%2Favainsana%2Fdeko%26client_id%3D34bcda2b-0334-41b4-8274-8760bb0c217f" class="user-session-modal__button button button--primary">
Kirjaudu ulos
</a>
</section>
</div>
</article>
</div>
<script type="speculationrules">
{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/om-kotiliesi-theme/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
</script>
<script>
function convert_to_url(obj) {
return Object
.keys(obj)
.map(k => `${encodeURIComponent(k)}=${encodeURIComponent(obj[k])}`)
.join('&');
}
function pass_to_backend() {
if(window.location.hash) {
var hash = window.location.hash;
var elements = {};
hash.split("#")[1].split("&").forEach(element => {
var vars = element.split("=");
elements[vars[0]] = vars[1];
});
if(("access_token" in elements) || ("id_token" in elements) || ("token" in elements)) {
if(window.location.href.indexOf("?") !== -1) {
window.location = (window.location.href.split("?")[0] + window.location.hash).split('#')[0] + "?" + convert_to_url(elements);
} else {
window.location = window.location.href.split('#')[0] + "?" + convert_to_url(elements);
}
}
}
}
pass_to_backend();
</script>
<script type="text/javascript">
jQuery( function() {
try {
AsteikkoAuth.init( "https:\/\/kotiliesi.fi\/" );
} catch( e ) {
if ( window.console && console.error )
console.error( e );
}
} );
</script> <div id="hion-ai-modal-container" data-ajax="https://kotiliesi.fi/wp-admin/admin-ajax.php">
<div id="hion-ai-backdrop"></div>
<div id="hion-ai-modal">
<div id="hion-ai-modal-header"><h2>Reseptihaku</h2>
<!-- Close Button remains unchanged -->
<button id="hion-ai-modal-close" class="close-btn">
<img alt="Sulje" data-src="https://kotiliesi.fi/wp-content/plugins/hion-ai-search/assets/close-icon.svg" class="awpo-lazy"><noscript><img src="https://kotiliesi.fi/wp-content/plugins/hion-ai-search/assets/close-icon.svg" alt="Sulje"></noscript>
</button>
</div>
<!-- Chat container -->
<div id="hion-ai-chat-content"></div>
<!-- Input row (only one send button now) -->
<div class="hion-ai-input-area">
<label class="hion-ai-label">
<img class="hion-ai-bubble-icon awpo-lazy" alt="Bubble" data-src="https://kotiliesi.fi/wp-content/plugins/hion-ai-search/assets/bubble.svg"><noscript><img src="https://kotiliesi.fi/wp-content/plugins/hion-ai-search/assets/bubble.svg" class="hion-ai-bubble-icon" alt="Bubble"></noscript>
<input type="text" id="hion-ai-input">
</label>
<!-- Single send button (icon-only) -->
<button id="hion-ai-send-btn" disabled aria-label="Send message">
<span class="button-content">
<img alt="" data-src="https://kotiliesi.fi/wp-content/plugins/hion-ai-search/assets/submit.svg" class="awpo-lazy"><noscript><img src="https://kotiliesi.fi/wp-content/plugins/hion-ai-search/assets/submit.svg" alt=""></noscript>
</span>
</button>
</div>
<!-- Results container -->
<div id="hion-ai-results-container"></div>
</div>
</div>
<script defer type="text/javascript" src="https://kotiliesi.fi/wp-content/cache/asauth/fi_blog1.js?ver=78" id="asteikko-auth-lang-fi-js"></script>
<script defer type="text/javascript" src="https://kotiliesi.fi/wp-content/plugins/om-asteikko-auth-wp-plugin/js/asteikko-auth.js?ver=1.5.9" id="asteikko-auth-js"></script>
<script defer type="text/javascript" src="https://kotiliesi.fi/wp-content/plugins/wp-optimizer/assets/dist/awpo.min.js?ver=1722410914" id="awpo-lazyload-js"></script>
<script defer type="text/javascript" src="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/dist/app.js?ver=1786967071" id="app-js"></script>
<script type="text/javascript" id="hion-ai-js-js-extra">
/* <![CDATA[ */
var hion_ai_search_params = {"class_trigger":"ai-reseptihaku-nappi","title":"Reseptihaku","placeholder":"Mit\u00e4 valmistaisin juustosta ja porkkanoista?","followup_placeholder":"Tarkenna kysymyst\u00e4si...","pluginUrl":"https://kotiliesi.fi/wp-content/plugins/hion-ai-search/","ajaxUrl":"https://kotiliesi.fi/wp-admin/admin-ajax.php","snippetLimit":"144","featuredImages":"1","preferExcerpts":"1","sortResultsByDate":"1"};
//# sourceURL=hion-ai-js-js-extra
/* ]]> */
</script>
<script type="text/javascript" src="https://kotiliesi.fi/wp-content/plugins/hion-ai-search/assets/scripts.js?ver=1786966801" id="hion-ai-js-js"></script>
</body>
<!-- Body end tag start, do not remove -->
<!-- // kotiliesi.fi -->
<!--script src="https://storage.googleapis.com/digitiimi-cors-bucket/banger.js"></script-->
<script src="https://storage.googleapis.com/digitiimi-cors-bucket/clever_ads.js"></script>
<style>
body {
grid-template-areas:
"wp-admin-bar"
"adnamitop"
"header"
"main"
"footer"
"brand";
}
[class^="adnm-html-topscroll"] {
grid-area: adnamitop
}
.frosmo_inline::before {
display: none;
}
@media only screen and (min-width: 414px) and (max-width: 799px) {
.wp-block-otavamedia-section-management.is-style-standard-4-per-row ul li .card__image-wrapper,
.wp-block-otavamedia-section-management.is-style-standard ul li .card__image-wrapper,
.wp-block-otavamedia-section-management.is-style-standard ul li .card__video-wrapper,
.wp-block-otavamedia-section-management.is-style-archive ul li .card__image-wrapper {
margin-right: 10px;
}
}
@media screen and (max-width: 500px) {
.wp-block-button:not([class*=is-style]) .wp-block-button__link {
padding: 7px 15px;
font-size: 1.8rem;
letter-spacing: 0px;
}
}
#dfp__interstitial {
position: fixed;
z-index: 1000000;
width: 1px;
height: 1px;
margin: 0px;
padding: 0px;
left: 0px;
top: 0px;
}
@media screen and (min-width: 1020px) {
div[id*=dfp__desk] {
display: grid;
}
div[id*=dfp__desk] {
--dfp-min-width: 980px;
--dfp-min-height: 250px;
margin-top: 4rem;
margin-bottom: 4rem;
}
.jpx-fi-wrapper, .jpx-hi-wrapper {
max-width: 100% !important;
}
#dfp__desk-1-wallpaper {margin: 0 !important; padding: 0 !important; height: 0px !important; min-height: 0px !important}
#dfp__desk-1-wallpaper::before {display:none}
#dfp__topad-desk {grid-area: adnamitop; padding: 0px}
}
@media screen and (max-width: 1019px) {
div[id*=dfp__desk] {
display: none;
}
}
@media screen and (max-width: 900px) {
div[id*=dfp__mob] {
margin-top: 4rem;
margin-bottom: 4rem;
--dfp-min-height: unset;
}
.mob-2-article-bbw {margin-bottom: 1rem !important}
#dfp__native-recipe-1_1 {margin-bottom: 20px}
}
@media screen and (max-width: 1019px) {
div[id*=dfp__mob] {
display: flex;
min-height: auto !important;
}
div[id*=dfp__mob-3] {
min-height: auto !important;
}
#dfp__topad-mob {
padding: 0px !important;
grid-area: adnamitop;
}
[id*=dfp__topad-mob][data-google-query-id]:not(:empty) {
margin: 20px 0px;
}
/* topad native */
/*
#dfp__topad-mob {
padding: 15px !important;
min-height: 125px;
}
[id*=dfp__topad-mob][data-google-query-id]:not(:empty) {
margin: 0px;
}
*/
/* topad native */
}
div[id*='dfp__native'] {
min-height: auto !important;
}
div[id*=dfp__native-text] {
margin: 3rem auto !important;
min-height: auto !important;
}
div[id*=dfp__native-text] > div {
max-width: min(100vw - 40px, 600px) !important;
}
/*
article.single > [id*=dfp__mob][data-google-query-id]:not(:empty),
article.recipe [id*=dfp__mob][data-google-query-id]:not(:empty),
article.single > #bbwvideo_new > [id*=dfp__mob][data-google-query-id]:not(:empty) {
clear: both;
position: relative;
margin-top: 5rem;
margin-bottom: 5rem;
padding: 2rem 0rem;
border-top-width: 1px;
border-top-style: solid;
border-top-color: rgb(235, 235, 235);
border-bottom-width: 1px;
border-bottom-style: solid;
border-bottom-color: rgb(235, 235, 235);
}
article.recipe [id*=dfp__mob-2][data-google-query-id]:not(:empty) {
margin: 1rem 0 2rem;
}
article.single > [id*=dfp__mob][data-google-query-id]:not(:empty) > div::before,
article.recipe [id*=dfp__mob][data-google-query-id]:not(:empty) > div::before,
article.single > #bbwvideo_new > [id*=dfp__mob][data-google-query-id]:not(:empty) > div::before {
display: block;
content: "Artikkeli jatkuu mainoksen jälkeen";
font-size: 11px;
line-height: 1;
text-align: center;
text-transform: uppercase;
position: absolute;
left: 50%;
top: -6px;
transform: translateX(-50%);
white-space: nowrap;
color: rgb(136, 136, 136);
background: rgb(255, 255, 255);
padding: 0px 10px;
font-family: "Chronicle SSm", Georgia, serif;
}
article.single > [id*=dfp__mob][data-google-query-id]:not(:empty) > div::after,
article.recipe [id*=dfp__mob][data-google-query-id]:not(:empty) > div::after,
article.single > #bbwvideo_new > [id*=dfp__mob][data-google-query-id]:not(:empty) > div::after {
display: block;
content: "Artikkeli jatkuu";
font-size: 11px;
line-height: 1;
text-align: center;
text-transform: uppercase;
position: absolute;
left: 50%;
bottom: -6px;
transform: translateX(-50%);
white-space: nowrap;
color: rgb(136, 136, 136);
background: rgb(255, 255, 255);
padding: 0px 10px;
font-family: "Chronicle SSm", Georgia, serif;
}
article.recipe [id*=dfp__mob][data-google-query-id]:not(:empty) > div::before {
content: "Resepti jatkuu mainoksen jälkeen";
}
article.recipe [id*=dfp__mob][data-google-query-id]:not(:empty) > div::after {
content: "Resepti jatkuu";
}
*/
/*** Ad wrapper new styles 08.07.2026 16.04.42 **/
[id*=dfp__][data-google-query-id]:not([id^="dfp__native"]):not(:empty),
div.adWrapper, #bbwvideo_new {
position: relative;
border-top-width: 1px;
border-top-style: solid;
border-top-color: rgb(220 219 219);
border-bottom-width: 1px;
border-bottom-style: solid;
border-bottom-color: rgb(220 219 219);
max-width: 100vw;
margin: 5rem 0rem;
background-color: #f8f8f8;
/*max-width: fit-content;*/
margin: 5rem auto;
padding: 2rem 0rem;
}
body.toukolabg [id*=dfp__][data-google-query-id]:not([id^="dfp__native"]):not(:empty),
body.toukolabg div.adWrapper, body.toukolabg #bbwvideo_new {
max-width: 1280px;
}
[id*=dfp__][data-google-query-id]:not([id^="dfp__native"]):not(:empty) > div, div.adWrapper > div, #bbwvideo_new > div {
position: initial !important;
}
[id*=dfp__][data-google-query-id]:not([id^="dfp__native"]):not(:empty) > div::before, div.adWrapper > div::before, #bbwvideo_new > div::before {
display: block;
content: "MAINOS";
font-size: 12px;
line-height: 1;
text-align: center;
text-transform: uppercase;
position: absolute;
left: 50%;
top: -1.7rem;
transform: translateX(-50%);
white-space: nowrap;
color: rgb(140 140 140);
background: rgb(255, 255, 255);
padding: 0px 10px;
font-family: Lato, Georgia, serif;
}
[id*=dfp__mob][data-google-query-id]:not(:empty),
div.adWrapper div[id*=dfp__mob] {
margin-top: 0rem;
margin-bottom: 0rem;
--dfp-min-height: unset;
}
[id*=dfp__mob][data-google-query-id]:not(:empty) > div:not(:has(div.adnm-creative)),
div.adWrapper div[id*=dfp__mob] > div:not(:has(div.adnm-creative)) {
max-width: 320px;
}
@media screen and (min-width: 600px) {
[id*=dfp__][data-google-query-id]:not([id^="dfp__native"]):not(:empty),
div.adWrapper, #bbwvideo_new {
min-width: 600px;
}
}
@media screen and (min-width: 1020px) {
[id*=dfp__][data-google-query-id]:not([id^=dfp__native]):not(:empty) > div::before, div.adWrapper > div::before, #bbwvideo_new > div::before {
font-size: 14px;
top: -2rem;
}
}
@media screen and (min-width: 1140px) {
body.home [id*=dfp__][data-google-query-id]:not([id^="dfp__native"]):not(:empty),
body.home div.adWrapper {
max-width: 1280px;
margin: 5rem auto;
}
}
#bbwvideo_new:has(> [style*="display: none"]),
#bbwvideo_new:empty{
display: none;
}
.bb-above, .bb-above > span {
display: none !important;
}
#bb-iawr-inarticle-kotiliesi {
overflow: visible !important;
}
/*** Ad wrapper new styles end ***/
.gform_confirmation_message {
font-size: 20px;
font-family: "Chronicle SSm";
}
body.toukolabg {
background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+ip1sAAAAASUVORK5CYII=),url(https://kotiliesi.fi/wp-content/uploads/2024/05/toukola-kuvio-1-2.png);
background-size: 1280px, cover;
background-repeat: no-repeat;
background-position: top center;
background-attachment: fixed;
}
.bb-float-close-button_old {
border: 0px solid #0f1eb4 !important;
color: #0f1eb4 !important;
width: 100%;
text-align: right;
padding: 12px !important;
border-radius: 0px !important;
bottom: -34px !important;
top: auto !important;
background-color: #000 !important;
font-size: 14px !important;
color: #fff !important;
font-weight: normal !important;
}
.bb-float-close-button {
border: 0px !important;
background-color: #ffffff !important;
width: calc(100% + 0px);
border-radius: 0px !important;
border-top-left-radius: 5px !important;
top: -44px !important;
padding: 9px 1px 7px !important;
}
.bb-float-closeAd {
padding: 5px 0px;
color: #000;
text-align: right;
font-size: 16px;
font-weight: 400;
}
.bb-float-closeAd:after {
background-color: #000;
color: #fff;
font-size: 18px;
content: "\2715";
margin: 0 0 0 5px;
font-weight: 900 !important;
padding: 3px 7px 3px 7px;
border-radius: 5px;
}
.bb_wrapper:has(.bb-float-close-button[style*="display: block"]), .bb_wrapper:has(.bb-float-close-button:not([style*=display])) {
right: 5px !important;
bottom: 5px !important;
border-top: 7px solid #000;
border-bottom: 7px solid #000;
border-bottom-left-radius: 3px !important;
border-bottom-right-radius: 3px !important;
}
@media screen and (min-width: 900px) {
.bb_wrapper:has(.bb-float-close-button[style*="display: block"]), .bb_wrapper:has(.bb-float-close-button:not([style*=display])) {
right: 20px !important;
bottom: 15px !important;
border-top: 7px solid #000;
border-bottom: 7px solid #000;
border-bottom-left-radius: 3px !important;
border-bottom-right-radius: 3px !important;
}
}
</style>
<script type="text/javascript">
async function waitForVariable2(variableName, timeoutMs = 30000, intervalMs = 1000) {
const startTime = Date.now();
for (; !window[variableName]; ) {
if (Date.now() - startTime >= timeoutMs) {
console.warn(`waitForVariable2: Timeout of ${timeoutMs / 1000}s reached for variable "${variableName}".`);
return false;
}
await new Promise(resolve => setTimeout(resolve, intervalMs));
}
return true;
}
if (location.href.indexOf('?toukolabg') >= -1) {
if (window.innerWidth > 1280) {
if (location.href.indexOf('https://kotiliesi.fi/toukola/') > -1 || articleTags.includes('toukola') || recipeTheme.includes('toukola')) {
jQuery('body').addClass('toukolabg')
}
}
}
if (location.pathname == '/') {
// Toukola yleistä
//jQuery('#recommended_articles_4 > ul > li').eq(2).hide();
//jQuery('#recommended_articles_4 > ul > li').eq(0).after('<li><div id=\"dfp__native-card-section-9_1\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__native-card-section-9_1\");}<\/script></div></li>');
jQuery('section.toukola-yleinen > ul > li').eq(2).hide();
jQuery('section.toukola-yleinen > ul > li').eq(0).after('<li><div id=\"dfp__native-card-section-9_1\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__native-card-section-9_1\");}<\/script></div></li>');
googletag.cmd.push(function () {
googletag.pubads().addEventListener('slotRenderEnded', function(event) {
var nativeAdSlotId = event.slot.getSlotElementId();
if (nativeAdSlotId == 'dfp__native-card-section-9_1') {
if (event.isEmpty) {
if (dfpDebug) {console.log('Slot ' + event.slot.getSlotElementId() + ' is empty, replacing with content...');}
jQuery('#' + nativeAdSlotId).closest('li').hide();
jQuery('section.toukola-yleinen > ul > li').eq(3).show();
}
}
});
});
}
if (location.pathname == '/toukola/') {
const adSections = [
{sectionId: 'section-management-1', sectionCss: 'toukola-yleinen', adSlotId: 'dfp__native-card-section-9_1', sectionName: 'Yleinen'},
{sectionId: 'section-management-2', sectionCss: 'vartissa-valmista', adSlotId: 'dfp__native-card-section-2_1', sectionName: 'Vartissa valmista'},
{sectionId: 'section-management-3', sectionCss: 'syodaan-yhdessa', adSlotId: 'dfp__native-card-section-3_1', sectionName: 'Syödään yhdessä'},
{sectionId: 'section-management-5', sectionCss: 'taitoa-ja-tekniikkaa', adSlotId: 'dfp__native-card-section-4_1', sectionName: 'Taitoa ja tekniikkaa'},
{sectionId: 'section-management-6', sectionCss: 'toukola-testaa', adSlotId: 'dfp__native-card-section-5_1', sectionName: 'Toukola testaa'},
{sectionId: 'section-management-4', sectionCss: 'ihan-itse-tehty', adSlotId: 'dfp__native-card-section-6_1', sectionName: 'Ihan itse tehty'},
{sectionId: 'section-management-7', sectionCss: 'juomakoulu', adSlotId: 'dfp__native-card-section-8_1', sectionName: 'Juomakoulu'}
];
adSections.forEach(function(item) {
//var $listItems = jQuery('#' + item.sectionId + ' > ul > li');
var $listItems = jQuery('section.' + item.sectionCss + ' > ul > li');
$listItems.eq(3).hide();
$listItems.eq(1).after(
'<li><div id="' + item.adSlotId + '">' +
'<script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot("' + item.adSlotId + '");}<\/script>' +
'</div></li>'
);
});
googletag.cmd.push(function () {
googletag.cmd.push(function () {
googletag.pubads().addEventListener('slotRenderEnded', function(event) {
var nativeAdSlotId = event.slot.getSlotElementId();
// Check if the rendered slot belongs to one of our mapped sections
var matchedConfig = adSections.find(function(item) {
return item.adSlotId === nativeAdSlotId;
});
// If it's one of our slots and it returned empty, revert to original content
if (matchedConfig && event.isEmpty) {
if (typeof dfpDebug !== 'undefined' && dfpDebug) {
console.log('Slot ' + nativeAdSlotId + ' is empty, replacing with content...');
}
// Remove the ad element container
jQuery('#' + nativeAdSlotId).closest('li').remove();
// Reveal the original hidden content for this specific section
//jQuery('#' + matchedConfig.sectionId + ' > ul > li').eq(3).show();
jQuery('section.' + matchedConfig.sectionCss + ' > ul > li').eq(3).show();
}
});
});
});
}
var adTestParam = 'notinuse';
//if (document.location.href.indexOf('/tilaajille/') > -1) {hideAllAds = true;}
if (takeOver && targetingValue == 'joulu') {
if (dfpDebug) {console.log('Targetointi joulu...');}
jQuery("body").addClass("unelmien-joulu");
/* //Poistettu 18.1.2021
showVideo = false;
waitForElement("#mcn_iframe_7f143646d55faecc").then(function(element) {
if (dfpDebug) {console.log("Element Added", element);}
document.querySelector('#mcn_iframe_7f143646d55faecc').remove();
});
*/
}
if (document.location.href.indexOf("/tilaajille/") > -1) {
console.log('Tilaajille retapikseli...');
var axel = Math.random() + '';
var a = axel * 10000000000000;
document.write('<img src="https://pubads.g.doubleclick.net/activity;dc_iu=/135812570/DFPAudiencePixel;ord=' + a + ';dc_seg=1031967391?" width=1 height=1 style="width:1px;" border=0/>');
}
if(jQuery('body').attr('class').match(/single-post/)){
waitForElement(".om-personalization-floating-button").then(function(element) {
//jQuery('.om-personalization-floating-button').append('<div class="om-personalization-root-closeBtn">X</div>');
//jQuery('.om-personalization-root-closeBtn').click(function(event) {
// event.stopPropagation();
// jQuery('.om-personalization-floating-button').hide();
//});
setTimeout(() => {
//jQuery('.om-personalization-floating-button__text').text('Lisää luettavaa');
//jQuery('.om-personalization-floating-button__text').text('Lisää sinulle suositeltua sisältöä');
jQuery('.om-personalization-floating-button__text').text('Katso henkilökohtaiset suosituksesi');
}, 1000);
});
window.addEventListener('scroll', () => {
const article = document.querySelector('article.single');
const endMarker = document.querySelector('.social-media-icons');
const button = document.querySelector('.om-personalization-root');
if (article && endMarker && button) {
const startPos = article.offsetTop;
const endPos = endMarker.offsetTop;
const sectionHeight = endPos - startPos;
const scrolled = window.scrollY - startPos;
const scrollPercent = (scrolled / sectionHeight) * 100;
if (scrollPercent >= 50) {
button.classList.add('is-visible');
} else {
button.classList.remove('is-visible');
}
}
});
}
if(showAds && !hideAllAds){
if (location.href.indexOf('webinterstitial') >= -1) {
waitForVariable2("canRunWebInterstitial", 30000, 1000)
.then((success) => {
if (success) {
if (dfpDebug) {console.log('Defining webinterstitial...')}
var webinterstitialSlot;
googletag.cmd.push(function() {
webinterstitialSlot = googletag.defineOutOfPageSlot('/135812570/kotiliesi/content/webinterstitial', googletag.enums.OutOfPageFormat.INTERSTITIAL);
if (webinterstitialSlot) {webinterstitialSlot.addService(googletag.pubads()); googletag.pubads().refresh([webinterstitialSlot], {changeCorrelator: false});}
});
} else {
if (dfpDebug) { console.log('waitForVariable2 "canRunWebInterstitial" timed out or variable was not found.'); }
}
})
.catch(error => {
if (dfpDebug) { console.error('Error in waitForVariable2:', error); }
});
}
if (testSRA) {
//if (location.href.includes('testnativeontop=1')) {
if (window.dfp.visibility == 'mobile') {
jQuery('body').prepend('<div id=\'dfp__topad-mob\'><script>window.dfp.displayAdslot(\'dfp__topad-mob\')<\/script></div>');
}
//}
if (window.dfp.visibility == 'desktop') {
jQuery('body').prepend('<div id=\'dfp__topad-desk\'><script>window.dfp.displayAdslot(\'dfp__topad-desk\')<\/script></div>');
}
}
/*
*** Removed because of iiaa.js
if(showVideo && jQuery('body').attr('class').match(/single-post/) && !(location.href.includes('testnewads=2') || cmpGetCookie('testnewads') == 2)){
(function() {
var t = new Date().getTime(); t -= t % (1000*60*60*24*30);
var l = document.createElement('script'); l.type = 'text/javascript'; l.async = true;
l.src = '//otavamedia.bbvms.com/a/kotiliesi.js?t='+t;
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(l, s);
})();
if (dfpDebug) {console.log('BBW initialized without waiting CMP ready...');}
//waitForElement(".bb-float-close-button").then(function(element) {
// jQuery('.bb-float-close-button').text('Sulje mainos X');
//});
var bbFloatCloseAd = '<div class="bb-float-closeAd">Sulje mainos</div>'
waitForElement(".bb-float-close-button").then(function(element) {
jQuery('.bb-float-close-button').html(bbFloatCloseAd);
});
//__tcfapi("addEventListener", 2, function (TCData) {
// if (TCData.tcString && "cmpuishown" === TCData.eventStatus || 'tcloaded' === TCData.eventStatus || 'useractioncomplete' === TCData.eventStatus) {
// (function() {
// var t = new Date().getTime(); t -= t % (1000*60*60*24*30);
// var l = document.createElement('script'); l.type = 'text/javascript'; l.async = true;
// l.src = '//otavamedia.bbvms.com/a/kotiliesi.js?t='+t;
// var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(l, s);
// })();
// if (dfpDebug) {console.log('BBW initialized after CMP ready...');}
// }
//});
//jQuery('article.single > p').eq(5).before('<div id=\"bbwvideo_new\"></div>');
}
*/
jQuery(document).ready(function() {
if(window.dfp.visibility == 'desktop' && document.location.href.indexOf(adTestParam) >= -1 && !takeOver && targetingValue == '' && !blockJP) {
// *** TSEKKAA JP WALLPAPER ***
jQuery('main').prepend('<div id=\"dfp__desk-1-wallpaper\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__desk-1-wallpaper\");}<\/script></div>');
}
if ((adLocation == 'content' || adLocation == 'recipes' || adLocation == 'blogs') && jQuery('body').attr('class').match(/single-post|single-resepti/)) {
jQuery('header.article-header').append('<div id=\'dfp__interstitial\'><script>window.dfp.displayAdslot(\'dfp__interstitial\')<\/script></div>');
if (dfpDebug) {console.log('Interstitial after article header...')}
//var newAdSlotId = 'dfp__interstitial';
//jQuery('header.article-header').append('<div id="' + newAdSlotId + '"><script>var ' + newAdSlotId + '; googletag.cmd.push(function(){' + newAdSlotId + ' = googletag.defineOutOfPageSlot("/135812570/kotiliesi/' + adLocation + '/interstitial", "' + newAdSlotId + '").addService(googletag.pubads())});googletag.cmd.push(function() {googletag.display("' + newAdSlotId + '")});<\/script><\/div>');
//window.relevantDigital = window.relevantDigital || {};
//relevantDigital.cmd = relevantDigital.cmd || [];
//relevantDigital.cmd.push(function() {
// relevantDigital.loadPrebid({configId: pbjsConf, manageAdserver: false, collapseEmptyDivs: true, collapseBeforeAdFetch: false, noGpt: true, allowedDivIds: [newAdSlotId], noSlotReload: true});
// if (dfpDebug) {console.log('Requesting ad to: #' + newAdSlotId)};
//});
} else {
jQuery('main').prepend('<div id=\'dfp__interstitial\'><script>window.dfp.displayAdslot(\'dfp__interstitial\')<\/script></div>');
if (dfpDebug) {console.log('Interstitial before main...')}
}
if (adTestParam != 'notinuse' && document.location.href.indexOf(adTestParam) > -1) {
$("body a").each(function() {
var hrefSrc = $(this).attr('href');
if (hrefSrc != null) {
if (hrefSrc.indexOf("jpg") < 0 && hrefSrc.indexOf("gif") < 0 && hrefSrc.indexOf("png") < 0 && hrefSrc.indexOf("javascript") < 0 && hrefSrc.indexOf("debug=1") < 0) {
if (hrefSrc.indexOf("?") < 0) {
var ahreffi = hrefSrc + '?' + adTestParam;
} else {
var ahreffi = hrefSrc + '&' + adTestParam;
}
$(this).attr('href',ahreffi);
}
}
});
}
//*** Uuden saitin mainospaikkojen lisäykset / muutokset alkaa tästä ***
// Unelmien joulun mobi-paikkojen muutokset
if (location.href.indexOf('/unelmien-joulu/' && jQuery('body').attr('class').match(/unelmien-joulu/)) > -1) {
if (window.dfp.visibility == 'mobile') {
jQuery('.page-content > .wp-block-group').eq(0).after(jQuery('#dfp__mob-2_1'));
jQuery('.page-content > .wp-block-group').eq(2).after('<div id=\"dfp__mob-3_1\" class=\"mob-3-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-3_1\");}<\/script></div>');
jQuery('.page-content > .wp-block-group').eq(4).after('<div id=\"dfp__mob-3_2\" class=\"mob-3-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-3_2\");}<\/script></div>');
} else {
jQuery('.page-content > .wp-block-group').eq(0).after(jQuery('#dfp__desk-2_1'));
jQuery('.page-content > .wp-block-group').eq(2).after('<div id=\"dfp__desk-3_1\" class=\"desk-3-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__desk-3_1\");}<\/script></div>');
}
}
// Näköislehden etusivun muutokset
if (location.href.indexOf('nakoislehti') > -1) {
jQuery('#dfp__rectangle-1_1').remove()
if (window.dfp.visibility == 'desktop') {jQuery('.digimagazine').before('<div id=\"dfp__desk-1_1\" class="desk-1-nakoislehti"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__desk-1_1\");}<\/script></div>')}
if (window.dfp.visibility == 'mobile') {jQuery('.digimagazine').before('<div id=\"dfp__mob-1_1\" class="mob-1-nakoislehti"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-1_1\");}<\/script></div>')}
}
// Kategoria, asiasana etc. sivujen paikat
if (jQuery('body').attr('class').match(/archive/) && (jQuery('body').attr('class').match(/category|tag|date|tax-recipe_category_extra|tax-recipe_category_cuisine/))) {
if (window.dfp.visibility == 'desktop') {
if (jQuery('body').attr('class').match(/tag|date|tax-recipe_category|tax-recipe_category_cuisine/)) {
//jQuery('.article-card-grid.is-style-standard ul').css('grid-template-areas', '"slot1 slot1 slot1 slot1 slot1 slot1 slot1 slot1 slot1 slot1 slot1 slot1" "slot2 slot2 slot2 slot2 slot3 slot3 slot3 slot3 slot4 slot4 slot4 slot4" "slot5 slot5 slot5 slot5 slot6 slot6 slot6 slot7 slot7 slot7 slot8 slot8 slot8"');
//jQuery('.article-card-grid > ul > li').eq(0).before('<li><article class=\"card article-card\"><div id=\"dfp__desk-1_1\" class=\"desk-1-category\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__desk-1_1\");}<\/script></div></article></li>');
jQuery('.article-card-grid > ul').eq(0).before('<div id=\"dfp__desk-1_1\" class=\"desk-1-category\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__desk-1_1\");}<\/script></div>');
jQuery('.article-card-grid > ul > li').eq(1).before('<li><article class=\"card article-card\"><div id=\"dfp__native-card-1_1\" class="native-card-1-category"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__native-card-1_1\");}<\/script></div></article></li>');
jQuery('.article-card-grid > ul > li').eq(3).before('<li><article class=\"card article-card\"><div id=\"dfp__native-card-1_2\" class="native-card-1-category"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__native-card-1_2\");}<\/script></div></article></li>');
jQuery('.article-card-grid > ul > li').eq(8).before('<li><article class=\"card article-card\"><div id=\"dfp__native-card-1_3\" class="native-card-1-category"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__native-card-1_3\");}<\/script></div></article></li>');
} else {
jQuery('.article-card-grid.is-style-archive ul').css('grid-template-areas', '"slot1 slot1 slot1 slot1 slot1 slot1 slot1 slot1 slot1 slot1 slot1 slot1" "slot2 slot2 slot2 slot2 slot2 slot2 slot2 slot2 slot2 slot2 slot2 slot2" "slot3 slot3 slot3 slot3 slot4 slot4 slot4 slot4 slot5 slot5 slot5 slot5" "slot6 slot6 slot6 slot7 slot7 slot7 slot8 slot8 slot8 slot9 slot9 slot9"');
jQuery('.article-card-grid > ul > li').eq(1).before('<li><article class=\"card article-card\"><div id=\"dfp__desk-1_1\" class=\"desk-1-category\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__desk-1_1\");}<\/script></div></article></li>');
jQuery('.article-card-grid > ul > li').eq(3).before('<li><article class=\"card article-card\"><div id=\"dfp__native-card-1_1\" class="native-card-1-category"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__native-card-1_1\");}<\/script></div></article></li>');
jQuery('.article-card-grid > ul > li').eq(6).before('<li><article class=\"card article-card\"><div id=\"dfp__native-card-1_2\" class="native-card-1-category"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__native-card-1_2\");}<\/script></div></article></li>');
jQuery('.article-card-grid > ul > li').eq(11).before('<li><article class=\"card article-card\"><div id=\"dfp__native-card-1_3\" class="native-card-1-category"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__native-card-1_3\");}<\/script></div></article></li>');
}
} else {
jQuery('.article-card-grid > ul > li').eq(1).before('<li><article class=\"card article-card\"><div id=\"dfp__mob-1_1\" class="mob-1-category"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-1_1\");}<\/script></div></article></li>');
jQuery('.article-card-grid > ul > li').eq(4).before('<li><article class=\"card article-card\"><div id=\"dfp__native-card-1_1\" class="native-card-1-category"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__native-card-1_1\");}<\/script></div></article></li>');
jQuery('.article-card-grid > ul > li').eq(7).before('<li><article class=\"card article-card\"><div id=\"dfp__native-card-1_2\" class="native-card-1-category"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__native-card-1_2\");}<\/script></div></article></li>');
jQuery('.article-card-grid > ul > li').eq(10).before('<li><article class=\"card article-card\"><div id=\"dfp__mob-2_1\" class="mob-2-category"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-2_1\");}<\/script></div></article></li>');
jQuery('.article-card-grid > ul > li').eq(13).before('<li><article class=\"card article-card\"><div id=\"dfp__native-card-1_3\" class="native-card-1-category"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__native-card-1_3\");}<\/script></div></article></li>');
jQuery('.article-card-grid > ul > li').eq(16).before('<li><article class=\"card article-card\"><div id=\"dfp__native-card-1_4\" class="native-card-1-category"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__native-card-1_4\");}<\/script></div></article></li>');
}
}
// Yksittäisen reseptin paikat
if ((adLocation == 'recipes' && jQuery('body').attr('class').match(/single-resepti/)) && showAds && !hideAllAds) {
if (window.dfp.visibility == 'desktop') {
jQuery('article.recipe > .recipe-instructions').before('<div id=\"dfp__desk-1_1\" class=\"desk-1-recipe\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__desk-1_1\");}<\/script></div>');
jQuery('article.recipe > .recipe-instructions').after('<div id=\"dfp__desk-2_1\" class=\"desk-2-recipe\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__desk-2_1\");}<\/script></div>');
} else {
jQuery('article.recipe > .recipe-instructions').before('<div id=\"dfp__mob-1_1\" class=\"mob-1-recipe\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-1_1\");}<\/script></div>');
if (document.documentElement.clientWidth < 600) {
jQuery('article.recipe > .recipe-instructions > section').eq(1).before('<div id=\"dfp__mob-2_1\" class=\"mob-2-recipe\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-2_1\");}<\/script></div>');
} else {
jQuery('article.recipe > .recipe-instructions').after('<div id=\"dfp__mob-2_1\" class=\"mob-2-recipe\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-2_1\");}<\/script></div>');
}
//jQuery('article.recipe > .recipe-instructions').after('<div id=\"dfp__mob-2_1\" class=\"mob-2-recipe\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-2_1\");}<\/script></div>');
//jQuery('article.recipe > div.recipe-instructions > section').eq(1).before('<div id=\"dfp__mob-2_1\" class=\"mob-2-recipe\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-2_1\");}<\/script></div>')
//waitForElement(".content__nativead.article-continues").then(function(element) {
// jQuery('article.recipe > .recipe-instructions').after(jQuery('.content__nativead.article-continues'));
// if (dfpDebug) {console.log('Siirretään reseptin natiivipaikka...');}
//});
//if (document.location.href.indexOf("sokrecipetest=1") >= -1 && document.documentElement.clientWidth < 500) {
if ((adLocation == 'recipes') && jQuery('body').attr('class').match(/single-resepti/) && document.documentElement.clientWidth < 600) {
//jQuery('article.recipe > .recipe-instructions > section').eq(1).before('<div id=\"dfp__native-recipe-1_1\" class=\"dfp__native-recipe\"><script>if(\'undefined\'!==typeof dfp){dfp.displayAdslot(\"dfp__native-recipe-1_1\");}<\/script><\/div>');
waitForElement("#dfp__mob-2_1").then(function(element) {
//jQuery('article.recipe > .recipe-instructions > section').eq(1).before(jQuery('#dfp__mob-2_1').addClass('mob-2-recipe'));
});
if (jQuery('article.recipe > .recipe-instructions > section p > strong:first-child').length > 0) {
jQuery('article.recipe > .recipe-instructions > section p > strong:first-child').first().closest('p').before(jQuery('article.recipe > .recipe-instructions > section > .content__nativead'));
jQuery('.content__nativead').css('margin','20px 0px');
if (dfpDebug) {console.log('Moving native-card-1 after instructions...')}
} else {
jQuery('article.recipe > .recipe-instructions > section').eq(1).after(jQuery('article.recipe > .recipe-instructions > section > .content__nativead'));
if (dfpDebug) {console.log('Moving native-card-1 after recipe...')}
}
jQuery('article.recipe > .recipe-instructions').after('<div id=\"bbwvideo_new\"></div>');
(function() {
var t = new Date().getTime(); t -= t % (1000*60*60*24*30);
var l = document.createElement('script'); l.type = 'text/javascript'; l.async = true;
l.src = '//otavamedia.bbvms.com/a/kotiliesi.js?t='+t;
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(l, s);
})();
if (dfpDebug) {console.log('BBW initialized without waiting CMP ready...');}
var bbFloatCloseAd = '<div class="bb-float-closeAd">Sulje mainos</div>'
waitForElement(".bb-float-close-button").then(function(element) {
jQuery('.bb-float-close-button').html(bbFloatCloseAd);
});
}
}
}
// Yksittäisen artikkelin paikat
if ((adLocation == 'content' || adLocation == 'blogs') && jQuery('body').attr('class').match(/single-post/)) {
// Videokarusellin muutokset
if (location.href.indexOf('?testplaybutton=1') >= -1) {
waitForElement(".bb-channel-wrapper").then(function(element) {
jQuery(".bb-channel-wrapper").before('<h2 id="channelPlayerHeadline">Katso uusimmat videot</h2>');
const channelPlayerHeadlineStyle = document.createElement('style');
channelPlayerHeadlineStyle.textContent = `
#kotiliesi-video-container {
margin: 40px 0px;
}
h2#channelPlayerHeadline {
text-align: center;
font: 900 2.2rem var(--font-family-lato);
letter-spacing: .3rem;
text-transform: uppercase;
padding-bottom: 0px;
margin-bottom: -38px;
margin-bottom: 8px;
}
.bb-channel-wrapper {
width: 100vw !important;
max-width: 1100px;
padding: 0px 20px 0px;
border-radius: 5px;
background-color: #f0f0f0 !important;
}
@media screen and (max-width: 1099px) {
.bb-channel-wrapper {
padding: 0px 10px 0px;
margin-left: -20px;
border-radius: 0px;
}
}
@media screen and (max-width: 620px) {
h2#channelPlayerHeadline {
margin-bottom: -10px;
margin-bottom: 8px;
}
}
@media screen and (max-width: 392px) {
h2#channelPlayerHeadline {
margin-bottom: -28px;
margin-bottom: 8px;
}
}
`;
document.body.appendChild(channelPlayerHeadlineStyle);
const shadowHost = document.querySelector('.bb-channel-wrapper');
if (shadowHost && shadowHost.shadowRoot) {
const shadowRoot = shadowHost.shadowRoot;
const observer = new MutationObserver(function(mutations, obs) {
try {
mutations.forEach(function(mutation) {
const nodes = Array.from(mutation.addedNodes);
for (const node of nodes) {
if (node.nodeType === 1) {
let playButton = node.querySelector('.playbutton');
if (playButton) {
if (!shadowRoot.querySelector('#channelPlayerStyle')) {
obs.disconnect();
const channelPlayerStyle = document.createElement('style');
channelPlayerStyle.id = 'channelPlayerStyle';
channelPlayerStyle.textContent = `
.playbutton {
opacity: 0.8 !important;
display: block !important;
width: 50px !important;
height: 50px !important;
}
h5.bb-channel-list-item-title {
font: normal normal 700 1.6rem / 1.2rem var(--font-family-chronicle-ssm) !important;
line-height: 1.37 !important;
color: #313131 !important;
text-align: center !important;
width: 100% !important;
}
.bb-channel-cliplist-outer-wrapper .bb-channel-cliplist-header .progress-tab-container {
padding-top: 4px !important;
}
.bb-channel-cliplist-outer-wrapper {
padding-bottom: 4px !important;
}
@media screen and (min-width: 500px) {
.playbutton {
width: 50px !important;
height: 50px !important;
}
}
@media screen and (max-width: 600px) {
h5.bb-channel-list-item-title {
font: normal normal 700 1.4rem / 1.2rem var(--font-family-chronicle-ssm) !important;
line-height: 1.125 !important;
}
.detail-page-wrapper .bb-channel-detail-page.player-align-fullWidth .bb-channel-detail-page-player {
aspect-ratio: 9 / 16 !important;
max-height: 80vh !important;
}
}
`;
shadowRoot.appendChild(channelPlayerStyle);
if (dfpDebug) {console.log('Channel player styles injected successfully!')}
return;
}
}
}
}
});
} catch (error) {
console.error('Error in channel player MutationObserver:', error);
obs.disconnect();
}
});
observer.observe(shadowRoot, {childList: true, subtree: true});
} else {
console.error('Host element or shadow root not found!');
}
});
}
if (location.href.indexOf('testnewads=2') >= -1 || cmpGetCookie('testnewads') == 2) {
console.log('Testing new ad setup 2...');
var adScript = document.createElement('script');
adScript.src = 'https://as.otavamedia.fi/js/iiaa.js?v=2.01';
//adScript.src = 'https://otavab2bcdn.azureedge.net/content/js/iiaa.js';
adScript.onload = function() {
console.log('Ad insertion script loaded...');
AdInsertion.insertInArticleAds(document.body, {
debug: dfpDebug ? true : false,
useTestAds: false,
fallbackToParagraph: true,
maxAdsCount: 10,
adInsertTimeout: 1000,
minParagraphsMobile: 3,
minParagraphsDesktop: 8,
sectionHeightMultiplier: null, //2.5, // Extra ads in long sections
headingsModeRequirement: 50,
contentWrapperSelector: 'article.single',
bbwadId: 'bbwvideo_new',
//desktopAdUnits: ['desk-1', 'desk-2', 'bbwad', 'desk-3'],
desktopAdUnits: ['desk-1', 'bbwad', 'desk-2'],
mobileAdUnits: ['mob-1', 'mob-2', 'bbwad', 'mob-2', 'mob-3'],
firstDesktopAdIndex: 1,
firstMobileAdIndex: window.dfp.isAndroid ? 2 : 1,
videoScriptUrl: '//otavamedia.bbvms.com/a/kotiliesi.js',
videoScriptSelector: 'script[src^="https://kotiliesi.bbvms.com/p/"]',
useFloatCloseButton: true,
floatCloseButtonText: 'Sulje mainos',
lastElementTargetSelector: 'article.single .social-media-icons',
lastElementTargetBackupSelector: 'div.error-report',
bottomAdPosition: 'before',
adSafetyMargin: window.dfp.visibility == 'mobile' ? 100 : 300,
mobileInnerWidth: 1020
});
};
adScript.onerror = function() {
console.error('Failed to load iiaa script...');
};
document.head.appendChild(adScript);
} else if (location.href.indexOf('testnewads=1') >= -1) {
var adPeriodFound = true, adPlaceFilled = 0, useh3Placement = false, useh2h3Placement = false, adPlacementSelector = 'article.single > h2', mob2Added = false, mob3AdSotId = 'dfp__mob-3_1';
var pIndexArray = [], h2IndexArray = [], h3IndexArray = [], sectionIndexArray = [], h2h3IndexArray = [], h2h3ElemArray = [];
var nbrOfh2 = jQuery('article.single > h2').length;
var nbrOfh3 = jQuery('article.single > h3').length;
var nbrOfParagraphs = jQuery('article.single > p').length;
var nbrOfSections = jQuery('article.single > section').length;
var nbrOfAllElements = jQuery('article.single > *').length;
var changeOutstreamMob2Order = false;
if (dfpDebug) {console.log('h2 count ' + nbrOfh2 + ', h3 count ' + nbrOfh3 + ', p count ' + nbrOfParagraphs + ', section count ' + nbrOfSections + ', allItems count ' + nbrOfAllElements + '...')}
jQuery('article.single').children().each((index,element) => {
if (dfpDebug) {console.log(index + '#' + element.tagName)}
if (element.tagName.toLowerCase() == 'p') {pIndexArray.push(index+1)}
if (element.tagName.toLowerCase() == 'h2') {h2IndexArray.push(index+1)}
if (element.tagName.toLowerCase() == 'h2' || element.tagName.toLowerCase() == 'h3') {
h2h3IndexArray.push(index+1);
h2h3ElemArray.push(element.tagName.toLowerCase());
}
if (element.tagName.toLowerCase() == 'h3') {h3IndexArray.push(index+1)}
if (element.tagName.toLowerCase() == 'section') {sectionIndexArray.push(index+1)}
});
if (nbrOfh2 < 2 && nbrOfh3 < 2) {
adPeriodFound = false;
}
if (targetingValue.match(/joulu|grilli.*|ihanapuutarha/)) {
changeOutstreamMob2Order = true;
}
if (dfpDebug) {console.log('adPeriodFound: ' + adPeriodFound)}
if (window.dfp.visibility == 'mobile') {
var mob1_adPlace = window.dfp.isAndroid ? 2 : 1;
if (h2IndexArray[0] <= pIndexArray[1]) {
//setTimeout(function() {
// jQuery('article.single > h2').eq(0).before('<div id=\"dfp__mob-1_1\" class=\"mob-1-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-1_1\");}<\/script></div>')
// if (dfpDebug) {console.log('Delayed adding mob-1, v1...')}
//}, 100);
jQuery('article.single > h2').eq(0).before('<div id=\"dfp__mob-1_1\" class=\"mob-1-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-1_1\");}<\/script></div>')
} else {
//setTimeout(function() {
// jQuery('article.single > p').eq(mob1_adPlace).after('<div id=\"dfp__mob-1_1\" class=\"mob-1-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-1_1\");}<\/script></div>')
// if (dfpDebug) {console.log('Delayed adding mob-1, v2...')}
//}, 100);
jQuery('article.single > p').eq(mob1_adPlace).after('<div id=\"dfp__mob-1_1\" class=\"mob-1-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-1_1\");}<\/script></div>')
}
if (paywallState == 'open' || paywallState == 'shared') {
if (adPeriodFound) {
if (nbrOfh3 > nbrOfh2) {
nbrOfh2 = nbrOfh3;
h2IndexArray = h3IndexArray;
useh3Placement = true;
adPlacementSelector = 'article.single > h3';
}
//if (!useh3Placement && nbrOfh3 > 0) {
// useh2h3Placement = true;
// h2IndexArray = h2h3IndexArray;
//}
if (nbrOfh2 >= 2) {
if (dfpDebug) {console.log('h2IndexArray: ' + h2IndexArray.join())}
var mob2_adPlace = 1;
if (h2IndexArray[0] >= 12) {mob2_adPlace = 0};
if (h2IndexArray[0] <= 7 || h2IndexArray[1] <= 12) {mob2_adPlace = 2};
if (nbrOfh2 >= 3 && h2IndexArray[2] <= 12) {mob2_adPlace = 3};
if (dfpDebug) {console.log('h2IndexArray: ' + h2IndexArray[0] + '#' + h2IndexArray[1] + '#' + mob2_adPlace)}
var bbwPlace = mob2_adPlace - 1;
if (dfpDebug) {console.log('h2mob: ' + h2IndexArray[mob2_adPlace] + ', h2bbw: ' + h2IndexArray[bbwPlace])}
if ((h2IndexArray[mob2_adPlace] - h2IndexArray[bbwPlace]) <= 4 && (h2IndexArray.length-1 > mob2_adPlace)) {
bbwPlace = mob2_adPlace;
mob2_adPlace += 1;
}
if (changeOutstreamMob2Order) {
mob2_adPlace -= 1;
bbwPlace += 1;
if (dfpDebug) {console.log('Targeting joulu, grilli kuumaksi, ihana puutarha etc. --> mob2_adPlace: ' + mob2_adPlace + ', bbwPlace: ' + bbwPlace)}
}
if (bbwPlace < 0) {
jQuery('article.single > p').eq(5).after('<div id=\"bbwvideo_new\"></div>');
if (dfpDebug) {console.log('BBW after p.eq(5)...')}
} else {
jQuery(adPlacementSelector).eq(bbwPlace).before('<div id=\"bbwvideo_new\"></div>');
if (dfpDebug) {console.log('BBW before ' + adPlacementSelector + ' at place ' + bbwPlace + '...')}
}
//if (dfpDebug) {console.log('Siirretään artikkelin mob-2 -paikka --> ' + mob2_adPlace + ' ...');}
//jQuery(adPlacementSelector).eq(mob2_adPlace).before(jQuery('#dfp__mob-2_1'));
if (dfpDebug) {
console.log('Adding to article mob-2 slot --> ' + mob2_adPlace + '...');
console.log('mob2-bbw: ' + mob2_adPlace + '-' + bbwPlace + '=' + (mob2_adPlace - bbwPlace))
console.log('==> ' + h2IndexArray[mob2_adPlace] + '-' + h2IndexArray[bbwPlace] + '=' + (h2IndexArray[mob2_adPlace] - h2IndexArray[bbwPlace]))
}
if ((h2IndexArray[mob2_adPlace] - h2IndexArray[bbwPlace]) <= 4 && nbrOfParagraphs > 10 && !changeOutstreamMob2Order) {mob2_adPlace = mob2_adPlace + 1}
jQuery(adPlacementSelector).eq(mob2_adPlace).before('<div id=\"dfp__mob-2_1\" class=\"mob-2-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-2_1\");}<\/script></div>');
//jQuery(adPlacementSelector).eq(mob2_adPlace).before('<div class=\"mob-2_wrapper\"><div id=\"dfp__mob-2_1\" class=\"mob-2-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-2_1\");}<\/script></div></div>')
if (dfpDebug) {console.log('mob2 before ' + adPlacementSelector + ' > ' + mob2_adPlace + ' > ' + jQuery(adPlacementSelector).eq(mob2_adPlace).text())}
adPlaceFilled = mob2_adPlace;
if (changeOutstreamMob2Order) {adPlaceFilled = bbwPlace}
if (dfpDebug) {console.log('adPlaceFilled after bbw and mob-2_1 ' + adPlaceFilled)}
var adPlaceStart = mob2_adPlace;
if (changeOutstreamMob2Order) {adPlaceStart = bbwPlace}
if (adPlaceStart < h2IndexArray.length) {adPlaceStart = adPlaceStart + 1}
//if (adPlaceStart == 2 || h2IndexArray[1] < 10) {adPlaceStart = 3}
for (i=adPlaceStart; i<=nbrOfh2; i++) {
if (dfpDebug) {
console.log('Test: ' + i + adPlaceFilled + (i - adPlaceFilled) + '#' + h2IndexArray[i-1] + '-' + h2IndexArray[i-2] + '-' + (h2IndexArray[i-1] - h2IndexArray[i-2]));
console.log('Test2: ' + i + adPlaceStart + '#' + i+h2IndexArray.length + '#' + (h2IndexArray[i] - h2IndexArray[i-1]) + '#' + (i - adPlaceFilled));
}
if (i >= adPlaceStart && i <= h2IndexArray.length && ((h2IndexArray[i] - h2IndexArray[i-1]) >= 5 || i - adPlaceFilled > 1)) {
if (dfpDebug) {console.log('Should come before ' + jQuery(adPlacementSelector).eq(i).text())}
//jQuery(adPlacementSelector).eq(i).before('<div id=\"dfp__mob-3_2' + i + '\" class=\"dfp__mob-3_2\" style=\"max-width: 320px\"><script>if(\'undefined\'!==typeof dfp){dfp.displayAdslot(\"dfp__mob-3_2' + i + '\");}<\/script><\/div>');
jQuery(adPlacementSelector).eq(i).before('<div id=\"dfp__mob-3_2' + i + '\" class=\"dfp__mob-3_2\"><script>if(\'undefined\'!==typeof dfp){dfp.displayAdslot(\"dfp__mob-3_2' + i + '\");}<\/script><\/div>');
adPlaceFilled = i;
if (dfpDebug) {console.log('mob-3_2' + i + ' before headline ' + jQuery(adPlacementSelector).eq(i).text())}
} else {
if (dfpDebug) {console.log('Should not come before ' + jQuery(adPlacementSelector).eq(i).text())}
if (dfpDebug) {console.log('adPlaceFilled = false' + i)}
}
}
if (dfpDebug) {
console.log('Not in use: Last value of h2IndexArray: ' + h2IndexArray[h2IndexArray.length - 1]);
console.log('Not in use: Last value of sectionIndexArray: ' + sectionIndexArray[sectionIndexArray.length - 1]);
console.log('Not in use: h2-section: ' + (sectionIndexArray[sectionIndexArray.length - 1] - h2IndexArray[h2IndexArray.length - 1]));
}
if ((sectionIndexArray[sectionIndexArray.length - 1] - h2IndexArray[h2IndexArray.length - 1]) >= 4) {
if (dfpDebug) {console.log('Not in use: mob-3_1 before last section...')}
//jQuery('article.single > section').eq(sectionIndexArray.length - 1).before('<div id=\"dfp__mob-3_1\" class=\"dfp__mob-3_2\"><script>if(\'undefined\'!==typeof dfp){dfp.displayAdslot(\"dfp__mob-3_55\");}<\/script><\/div>');
}
}
} else {
/* !adPeriodFound */
jQuery('article.single > p').eq(5).after('<div id=\"bbwvideo_new\"></div>');
if (dfpDebug) {console.log('BBW p.eq(5) after...')}
if (nbrOfParagraphs > 17) {
mob2Added = true;
jQuery('article.single > p').eq(12).after('<div id=\"dfp__mob-2_1\" class=\"mob-2-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-2_1\");}<\/script></div>')
if (dfpDebug) {console.log('mob2 p.eq(12) after...')}
}
//jQuery('article.single > p').eq(pIndexArray[pIndexArray.length-1] - 3).before('<div id=\"dfp__mob-3_1\" class=\"mob-3-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-3_1\");}<\/script></div>')
//if (dfpDebug) {console.log('mob-3_1 before p.eq(' + (pIndexArray[pIndexArray.length-1] - 3) + ')...')}
}
if (!mob2Added && !adPeriodFound) {
mob3AdSotId = 'dfp__mob-2_1';
if (dfpDebug) {console.log('Too few paragraphs, adding mob-2 instead of mob-3')}
}
if (dfpDebug) {console.log('mob-3_1 section: ' + sectionIndexArray[sectionIndexArray.length-1] + '#' + pIndexArray[pIndexArray.length-1])}
if (sectionIndexArray[sectionIndexArray.length-1] > pIndexArray[pIndexArray.length-1] && sectionIndexArray[sectionIndexArray.length-1] > h2IndexArray[h2IndexArray.length-1]+1) {
//jQuery("#dfp__mob-3_1").insertBefore(jQuery('article.single > section').eq(sectionIndexArray.length-1));
jQuery('article.single > section').eq(sectionIndexArray.length-1).before('<div id=\"' + mob3AdSotId + '\" class=\"mob-3-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"' + mob3AdSotId + '\");}<\/script></div>')
if (dfpDebug) {console.log('mob-3_1 before last section...')}
} else {
if (dfpDebug) {console.log('mob-3_1 paragraph: ' + pIndexArray[pIndexArray.length-1] + '#' + h2IndexArray[h2IndexArray.length-1] + '#' + nbrOfParagraphs + '#' + pIndexArray.join())}
if (pIndexArray[pIndexArray.length-2] - h2IndexArray[h2IndexArray.length-1] > 5) {
jQuery('article.single > p').eq(nbrOfParagraphs - 2).before('<div id=\"dfp__mob-3_1\" class=\"mob-3-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-3_1\");}<\/script></div>')
if (dfpDebug) {console.log('mob-3_1 before p.eq(nbrOfParagraphs-3) = ' + (pIndexArray[pIndexArray.length-1] - 2) + '...')}
if (dfpDebug) {
//jQuery('article.single .social-media-icons').before('<div id=\"dfp__native-text-1_1\" class=\"dfp__native-text\"><script>if(\'undefined\'!==typeof dfp){dfp.displayAdslot(\"dfp__native-text-1_1\");}<\/script><\/div>');
}
} else {
//jQuery('article.single > p').eq(nbrOfParagraphs-1).after('<div id=\"' + mob3AdSotId + '\" class=\"mob-3-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"' + mob3AdSotId + '\");}<\/script></div>')
jQuery('article.single .social-media-icons').before('<div id=\"' + mob3AdSotId + '\" class=\"mob-3-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"' + mob3AdSotId + '\");}<\/script></div>')
if (dfpDebug) {console.log('mob-3_1 after last p.eq(nbrOfParagraphs) = ' + pIndexArray[pIndexArray.length-1] + '...')}
}
}
//if (dfpDebug) {
//if (dfpDebug) {console.log('Last p - last h2: ' + pIndexArray[pIndexArray.length-1] + ' - ' + h2IndexArray[h2IndexArray.length-1])}
//if (sectionIndexArray[sectionIndexArray.length-1] > pIndexArray[pIndexArray.length-1]) {
// if (pIndexArray[pIndexArray.length-1] - h2IndexArray[h2IndexArray.length-1] >= 3) {
// var nativeAdPlace = pIndexArray[pIndexArray.length-1] - h2IndexArray[h2IndexArray.length-1] >= 5 ? 3 : 2;
// jQuery('article.single > p').eq(nbrOfParagraphs-nativeAdPlace).before('<div id=\"dfp__native-text-1_1\" class=\"dfp__native-text\"><script>if(\'undefined\'!==typeof dfp){dfp.displayAdslot(\"dfp__native-text-1_1\");}<\/script><\/div>');
// } else {
// jQuery('article.single .social-media-icons').before('<div id=\"dfp__native-text-1_1\" class=\"dfp__native-text\"><script>if(\'undefined\'!==typeof dfp){dfp.displayAdslot(\"dfp__native-text-1_1\");}<\/script><\/div>');
// }
//} else if (pIndexArray[pIndexArray.length-1] - h2IndexArray[h2IndexArray.length-1] >= 3 && pIndexArray[pIndexArray.length-1] - h2IndexArray[h2IndexArray.length-1] <= 5) {
// jQuery('article.single > p').eq(nbrOfParagraphs-2).before('<div id=\"dfp__native-text-1_1\" class=\"dfp__native-text\"><script>if(\'undefined\'!==typeof dfp){dfp.displayAdslot(\"dfp__native-text-1_1\");}<\/script><\/div>');
//} else {
// jQuery('article.single .social-media-icons').before('<div id=\"dfp__native-text-1_1\" class=\"dfp__native-text\"><script>if(\'undefined\'!==typeof dfp){dfp.displayAdslot(\"dfp__native-text-1_1\");}<\/script><\/div>');
//}
//}
}
}
if (window.dfp.visibility == 'desktop') {
jQuery('article.single > p').eq(1).after('<div id=\"dfp__desk-1_1\" class=\"article-continues desk-1-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__desk-1_1\");}<\/script></div>')
//if (paywallState == 'open') {
if (paywallState == 'open' || paywallState == 'shared') {
if (adPeriodFound) {
if (articleTags.includes('toukola') || recipeTheme.includes('toukola')) {
var desk2placement = parseInt(nbrOfh2/2);
//if (desk2placement == 1) {desk2placement = 2}
jQuery(adPlacementSelector).eq(desk2placement).before('<div id=\"dfp__desk-2_1\" class=\"article-continues desk-2-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__desk-2_1\");}<\/script></div>')
if (h2IndexArray[1] > 5) {
jQuery('article.single > h2').eq(desk2placement+1).before('<div id=\"bbwvideo_new\"></div>');
} else {
jQuery('article.single > p').eq(5).after('<div id=\"bbwvideo_new\"></div>');
}
} else {
if (h2IndexArray[1] > 5) {
jQuery('article.single > h2').eq(1).before('<div id=\"bbwvideo_new\"></div>');
} else {
jQuery('article.single > p').eq(5).after('<div id=\"bbwvideo_new\"></div>');
}
var desk2placement = parseInt(nbrOfh2/2);
if (desk2placement == 1) {desk2placement = 2}
jQuery(adPlacementSelector).eq(desk2placement).before('<div id=\"dfp__desk-2_1\" class=\"article-continues desk-2-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__desk-2_1\");}<\/script></div>')
}
} else {
/* !adPeriodFound */
jQuery('article.single > p').eq(5).after('<div id=\"bbwvideo_new\"></div>');
jQuery('article.single > p').eq(10).before('<div id=\"dfp__desk-2_1\" class=\"article-continues desk-2-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__desk-2_1\");}<\/script></div>')
//jQuery('article.single > p').eq(20).before('<div id=\"dfp__desk-3_1\" class=\"article-continues desk-3-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__desk-3_1\");}<\/script></div>')
}
if (dfpDebug) {console.log('desk-3_1: ' + sectionIndexArray[sectionIndexArray.length-1] + '#' + pIndexArray[pIndexArray.length-1])}
//if (sectionIndexArray[sectionIndexArray.length-1] > nbrOfParagraphs && ) {
if (sectionIndexArray[sectionIndexArray.length-1] > pIndexArray[pIndexArray.length-1]) {
//jQuery("#dfp__mob-3_1").insertBefore(jQuery('.content__article section.recommended-section').eq(sectionIndexArray.length-1));
//jQuery("#dfp__desk-3_1").insertBefore(jQuery('article.single > section').eq(sectionIndexArray.length-1));
jQuery('article.single > section').eq(sectionIndexArray.length-1).before('<div id=\"dfp__desk-3_1\" class=\"article-continues desk-3-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__desk-3_1\");}<\/script></div>')
} else {
if (nbrOfAllElements - h2IndexArray[h2IndexArray.length-1] > 5) {
jQuery('article.single > p').eq(nbrOfParagraphs-2).before('<div id=\"dfp__desk-3_1\" class=\"article-continues desk-3-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__desk-3_1\");}<\/script></div>')
}
}
if (dfpDebug) {
if (dfpDebug) {console.log('Last p - last h2: ' + pIndexArray[pIndexArray.length-1] + ' - ' + h2IndexArray[h2IndexArray.length-1])}
if (sectionIndexArray[sectionIndexArray.length-1] > pIndexArray[pIndexArray.length-1]) {
if (pIndexArray[pIndexArray.length-1] - h2IndexArray[h2IndexArray.length-1] >= 3) {
var nativeAdPlace = pIndexArray[pIndexArray.length-1] - h2IndexArray[h2IndexArray.length-1] >= 5 ? 3 : 2;
jQuery('article.single > p').eq(nbrOfParagraphs-nativeAdPlace).before('<div id=\"dfp__native-text-1_1\" class=\"dfp__native-text\"><script>if(\'undefined\'!==typeof dfp){dfp.displayAdslot(\"dfp__native-text-1_1\");}<\/script><\/div>');
} else {
jQuery('article.single .social-media-icons').before('<div id=\"dfp__native-text-1_1\" class=\"dfp__native-text\"><script>if(\'undefined\'!==typeof dfp){dfp.displayAdslot(\"dfp__native-text-1_1\");}<\/script><\/div>');
}
} else if (pIndexArray[pIndexArray.length-1] - h2IndexArray[h2IndexArray.length-1] >= 3 && pIndexArray[pIndexArray.length-1] - h2IndexArray[h2IndexArray.length-1] <= 5) {
jQuery('article.single > p').eq(nbrOfParagraphs-2).before('<div id=\"dfp__native-text-1_1\" class=\"dfp__native-text\"><script>if(\'undefined\'!==typeof dfp){dfp.displayAdslot(\"dfp__native-text-1_1\");}<\/script><\/div>');
} else {
jQuery('article.single .social-media-icons').before('<div id=\"dfp__native-text-1_1\" class=\"dfp__native-text\"><script>if(\'undefined\'!==typeof dfp){dfp.displayAdslot(\"dfp__native-text-1_1\");}<\/script><\/div>');
}
}
// *** TSEKKAA TARPEELLISUUS ***
waitForElement("#dfp__desk-2_1").then(function(element) {
jQuery("#dfp__desk-2_1").before("<div id='jpx-fi-scroller'></div>");
});
if (location.href.indexOf('testjustpremium2') > -1) {
waitForElement(".jpx-fi-wrapper").then(function(element) {
//jQuery(".jpx-fi-wrapper").insertBefore("#dfp__desk-1-wallpaper");
});
}
//if (location.href.indexOf('nativetext=1') >= -1) {
// jQuery('article.single .social-media-icons').before('<div id=\"dfp__native-text-1_1\" class=\"dfp__native-text\"><script>if(\'undefined\'!==typeof dfp){dfp.displayAdslot(\"dfp__native-text-1_1\");}<\/script><\/div>');
//}
}
}
}
// Advantage wrapper
if (useAdvantage) {
const wrapAdSlots = (rootNode) => {
if (!window.dfp || !window.dfp.visibility) return;
//const idPrefix = window.dfp.visibility === "desktop" ? "dfp__desk" : "dfp__mob";
const idPrefix = window.dfp.visibility === "desktop" ? "dfp__desk" : "dfp__mob";
const $root = jQuery(rootNode);
const $slots = $root.find(`[id^="${idPrefix}"]`)
.addBack(`[id^="${idPrefix}"]`)
.filter(':not([data-advantage-wrapped])');
$slots.each(function() {
const $this = jQuery(this);
$this.attr('data-advantage-wrapped', 'true')
.wrap('<div class="adWrapper"><div><advantage-wrapper allowed-formats="DOUBLE_MIDSCROLL,MIDSCROLL"><div slot="advantage-ad-slot"></div></advantage-wrapper></div></div>');
});
};
const advDfpObserver = new MutationObserver((mutations) => {
for (const mutation of mutations) {
mutation.addedNodes.forEach(node => {
if (node.nodeType === 1) wrapAdSlots(node);
});
}
});
wrapAdSlots(document.body);
advDfpObserver.observe(document.body, {
childList: true,
subtree: true
});
}
// Yksittäisen artikkelin paikat
}
if (window.dfp.visibility == 'desktop') {
waitForElement("#dfp__desk-1_1").then(function(element) {
// Remove article-continues style from desktop
jQuery("#dfp__desk-1_1").addClass("not-in-use");
if (dfpDebug) {console.log('desk-1_1 class changed...')}
});
}
if (location.href.includes('?testnewobserver')) {
testSRA = false;
const dfpObservers = new Map();
function observeDfpElements(root = document) {
const isShadowRoot = root !== document;
//const targets = [...document.querySelectorAll('[id^="dfp__"]:not([data-observed])')].filter(el => el.id !== 'dfp__mob-2_222' && !el.id.includes('native'));
//const targets = [...document.querySelectorAll('[id^="dfp__"]:not([data-observed])')].filter(el => el.id !== 'dfp__mob-2_222');
const targets = [...root.querySelectorAll('[id^="dfp__"]:not([data-observed])')].filter(el => !el.id.match('_222'));
// Mark ALL targets as observed IMMEDIATELY before doing anything else
targets.forEach(target => {
target.setAttribute('data-observed', 'true');
});
targets.forEach(target => {
//target.setAttribute('data-observed', 'true');
let thresholdValue = parseFloat(target.getAttribute('data-threshold')) || 0.6;
if (target.getAttribute('id').includes('dfp__native')) {
thresholdValue = 0.3;
};
// Create unique key for observer (include root type)
const dfpObserverKey = `${thresholdValue}-${isShadowRoot ? 'shadow' : 'light'}`;
let dfpObserver = dfpObservers.get(dfpObserverKey);
if (!dfpObserver) {
if (dfpDebug) console.log(`Creating new observer for threshold: ${thresholdValue} (${isShadowRoot ? 'shadow' : 'light'} DOM)`);
const rootMargin = `${thresholdValue * 100}% 0px ${thresholdValue * 100}% 0px`;
dfpObserver = new IntersectionObserver(
(entries, obs) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
if (dfpDebug) {
console.log('HAS: entry.boundingClientRect.height: ' + entry.boundingClientRect.height);
console.log('HAS: calling runHeaderbid: ' + entry.target.id);
let distanceFromViewportBottom = window.innerHeight - entry.boundingClientRect.top;
console.log(`HAS: ${entry.target.id} is ${distanceFromViewportBottom.toFixed(0)}px from the bottom of viewport...`);
}
loadAdSlot(entry.target.id);
obs.unobserve(entry.target);
}
});
},
{
root: null, // Always use viewport, even for shadow DOM
rootMargin: rootMargin,
threshold: 0.0 // Fire as soon as it enters the margin
}
);
dfpObservers.set(dfpObserverKey, dfpObserver);
}
dfpObserver.observe(target);
if (dfpDebug) console.log('Observing element: ', target.id, 'with threshold:', thresholdValue, isShadowRoot ? '(shadow)' : '(light)');
});
}
let debounceDfpTimeout;
function debouncedDfpObserve(root = document) {
clearTimeout(debounceDfpTimeout);
debounceDfpTimeout = setTimeout(() => observeDfpElements(root), 100);
}
googletag.cmd.push(function() {
observeDfpElements(document);
const mutationDfpObserver = new MutationObserver(() => debouncedDfpObserve(document));
mutationDfpObserver.observe(document.body, {childList: true, subtree: true});
});
}
// End of jQuery(document).ready(function() {
})
if (dfpDebug) {
(function getAdSlotData_new() {
if (window.googletag && window.googletag.pubadsReady) {
googletag.pubads().addEventListener("slotRequested", (event) => {
var slotId = event.slot.getSlotElementId();
if (!slotId.match(/native/)) {
if (dfpDebug) {console.log('Slot has been requesteed. (' + Date.now() + ')', slotId)}
dataLayer.push({'event': 'adRequest', 'adSlotData': {'adUnit': slotId}, 'time': Date.now()});
}
});
googletag.pubads().addEventListener('slotRenderEnded', function(event) {
var slot = event.slot;
var slotId = event.slot.getSlotElementId();
if (!slotId.match(/native/)) {
if (!event.isEmpty) {
var adSize = event.size.join('x');
if(adSize == '1x1' && 'undefined' !== typeof slot.getTargeting('hb_size')[0]){
adSize = slot.getTargeting('hb_size')[0];
}
if (dfpDebug) {console.log('Slot has finished rendering. (' + Date.now() + ')', slotId, event.size.join('x'))}
dataLayer.push({'event': 'adImpression', 'adSlotData': {'adSlot': slotId, 'size': event.size.join('x')}, 'time': Date.now()});
}
}
});
googletag.pubads().addEventListener("impressionViewable", (event) => {
var slotId = event.slot.getSlotElementId();
if (!slotId.match(/native/)) {
var bannerTop = Math.round(document.getElementById(slotId).getBoundingClientRect().top);
if (dfpDebug) {console.log('Slot became viewable. (' + Date.now() + ')', slotId)}
dataLayer.push({'event': 'adViewable', 'adSlotData': {'adUnit': slotId, 'distanceFromTop': bannerTop}, 'time': Date.now()});
}
});
} else {
setTimeout(getAdSlotData_new, 100);
}
}());
setTimeout(function() {
function forEach(responses, cb) {
Object.keys(responses).forEach(function(adUnitCode) {
var response = responses[adUnitCode];
response.bids.forEach(function(bid) {
cb(adUnitCode, bid);
});
});
}
var winners = pbjs.getAllWinningBids();
//var winners = owpbjs.getBidsReceived();
var output = [];
forEach(pbjs.getBidResponses(), function(code, bid) {
output.push({
//bid: bid,
adunit: code,
size: bid.size,
adId: bid.adId,
bidder: bid.bidder,
time: bid.timeToRespond,
cpm: bid.cpm,
msg: bid.statusMessage,
rendered: !!winners.find(function(winner) {
return winner.adId==bid.adId;
})
});
});
forEach(pbjs.getNoBids && pbjs.getNoBids() || {}, function(code, bid) {
output.push({
msg: "no bid",
adunit: code,
adId: bid.bidId,
bidder: bid.bidder
});
});
if (output.length) {
if (console.table) {
console.table(output);
} else {
for (var j = 0; j < output.length; j++) {
console.log(output[j]);
}
}
} else {
console.warn('NO prebid responses');
}
}, 8000);
}
var isOutstream = false;
waitForElement(".bb_iawr").then(function(element) {
var outstreamReady = setInterval(function() {
waitForElement("#bb-wr-inarticle-kotiliesi").then(function(element) {
if (document.querySelector("#bb-wr-inarticle-kotiliesi").getAttribute("data-duration") > 0) {
//document.write('<style>.bb_iawr {margin: 50px 0px 70px;}</style>');
console.log('bb-wr duration is ' + document.querySelector("#bb-wr-inarticle-kotiliesi").getAttribute("data-duration") + ' seconds...');
isOutstream = true;
}
});
if (document.querySelector('.teads-inread') != null) {
//document.write('<style>.teads-inread {margin: 40px auto 60px;}</style>');
console.log('teads-inread exists...');
isOutstream = true;
}
if (document.querySelector('.teads-adCall') != null) {
console.log('teads-adCall exists, no os...');
isOutstream = false;
clearInterval(outstreamReady);
}
if (isOutstream) {
window.dataLayer = window.dataLayer || [];
dataLayer.push({'event': 'outstream_visible','visible': 'true'});
console.log('DL push outstream_visible...');
clearInterval(outstreamReady);
}
}, 1000);
});
if (testSRA && !location.href.includes('?testnewobserver')) {
console.log('testSRA = true');
const dfpObservers = new Map();
function observeDfpElements() {
//const targets = [...document.querySelectorAll('[id^="dfp__"]:not([data-observed])')].filter(el => el.id !== 'dfp__mob-2_222' && !el.id.includes('native'));
const targets = [...document.querySelectorAll('[id^="dfp__"]:not([data-observed])')].filter(el => el.id !== 'dfp__mob-2_222');
targets.forEach(target => {
target.setAttribute('data-observed', 'true');
//const thresholdValue = parseFloat(target.getAttribute('data-threshold')) || 1;
let thresholdValue = parseFloat(target.getAttribute('data-threshold')) || 0.6;
if (target.getAttribute('id').includes('dfp__native')) {
thresholdValue = 0.3;
};
let dfpObserver = dfpObservers.get(thresholdValue);
if (!dfpObserver) {
if (dfpDebug) console.log(`Creating new observer for threshold: ${thresholdValue}`);
//const rootMargin = `0px 0px ${thresholdValue * 100}% 0px`;
const rootMargin = `${thresholdValue * 100}% 0px ${thresholdValue * 100}% 0px`;
dfpObserver = new IntersectionObserver(
(entries, obs) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
if (dfpDebug) {
console.log('HAS: entry.boundingClientRect.height: ' + entry.boundingClientRect.height);
console.log('HAS: calling runHeaderbid: ' + entry.target.id);
let distanceFromViewportBottom = window.innerHeight - entry.boundingClientRect.top;
console.log(`HAS: ${entry.target.id} is ${distanceFromViewportBottom.toFixed(0)}px from the bottom of viewport...`);
}
loadAdSlot(entry.target.id);
obs.unobserve(entry.target);
}
});
},
{
root: null, // relative to the viewport
rootMargin: rootMargin,
threshold: 0.0 // Fire as soon as it enters the margin
}
);
dfpObservers.set(thresholdValue, dfpObserver);
}
dfpObserver.observe(target);
if (dfpDebug) console.log('Observing element: ', target.id, 'with threshold:', thresholdValue);
});
}
let debounceDfpTimeout;
function debouncedDfpObserve() {
clearTimeout(debounceDfpTimeout);
debounceDfpTimeout = setTimeout(observeDfpElements, 100);
}
googletag.cmd.push(function() {
observeDfpElements(document);
const mutationDfpObserver = new MutationObserver(() => debouncedDfpObserve(document));
mutationDfpObserver.observe(document.body, {childList: true, subtree: true});
if (dfpDebug) {console.log('DFP ready, starting observation...')}
console.log('DFP ready, starting observation...');
});
// let debounceTimeout;
// function debouncedObserve() {
// clearTimeout(debounceTimeout);
// debounceTimeout = setTimeout(observeDfpElements, 100);
// }
//
// var dfpReady = setInterval(function() {
// if(window.googletag && googletag.pubadsReady) {
// if (dfpDebug) {console.log('DFP ready, starting observation...')}
//
// observeDfpElements();
//
// const mutationObserver = new MutationObserver(debouncedObserve);
// mutationObserver.observe(document.body, {childList: true, subtree: true});
//
// clearInterval(dfpReady);
//
// }
// }, 50)
} else {
console.log('testSRA = false');
}
// enf of if(showAds && !hideAllAds){
}
//async function loadReadpeakAd(origAdSlotId, targetSelector, method = 'replaceWith') {
async function loadReadpeakAd(origAdSlotId, targetSelector, method = 'replaceWith', $showOnSuccess = null) {
const slotNumber = origAdSlotId.match(/(\d+)$/)?.[1];
if (!slotNumber) return;
//const adUnit = `rpAd_${slotNumber}`;
const adUnit = `rpAd_${origAdSlotId}`;
try {
//const response = await fetch("https://app.readpeak.com/ads/get/?l=75a421ab9d134ca0&j=1&gdpr_consent=" + tcString); //GP
const response = await fetch("https://app.readpeak.com/ads/get/?l=c15d3b97797cd8e0&j=1&gdpr_consent=" + tcString); // Kotiliesi
if (!response.ok || response.status === 204) {
//jQuery('#' + origAdSlotId).parent('li').css('display','none');
if (dfpDebug) {console.log('NATIVE: Rp empty, did not replace "' + origAdSlotId + '" with rp...')}
return;
}
const data = await response.json();
if (!data || data.length === 0) return;
const ad = data[0];
const $adElement = jQuery(`
<style>
@import url('https://fonts.googleapis.com/css2?family=Lato:wght@400;700;900&display=swap');
#${adUnit} {
font-family: 'DM Sans' , sans-serif;
background-color: #fce8ef;
transition: all 0.3s ease;
margin: 0px;
padding: 0px;
width: 100%;
height: 100%;
/* overflow: hidden; */
/* position: relative; */
container-type: inline-size;
container-name: ${adUnit};
}
#${adUnit}:hover {
background-color: #f8edf5;
}
@container ${adUnit} (width >= 0px) {
.rpAdContentWrapper {
position: relative;
height: 100%;
width: 100%;
text-align: left;
}
a.cover_link {
position: absolute;
width: 100%;
height: 100%;
cursor: pointer;
z-index: 2;
}
.title {
text-decoration: none;
display: block;
width: 100%;
text-align: center;
margin-top: 9px;
font: normal normal 900 20px/26px Lato;
letter-spacing: 0px;
color: #030303;
opacity: 1;
}
.media {
overflow: hidden;
position: relative;
aspect-ratio: 3/2;
}
.media img {
width: 100%;
object-fit: cover;
aspect-ratio: 3/2;
position: absolute;
}
.advertiser {
text-transform: uppercase;
text-decoration: none;
padding: 0;
margin: 0;
font: normal normal bold 14px/20px Lato;
letter-spacing: 0.4px;
color: #030303;
opacity: 1;
text-align: center;
}
.advertiser:before {
content:'MAINOS | ';
}
.text-wrap .centerer {
padding: 15px;
}
}
@media only screen and (max-width: 413px) {
aside.wp-block-otavamedia-google-ad-slot {
#${adUnit} {
padding: 15px 0px;
}
#${adUnit} .rpAdContentWrapper {
display: flex;
}
#${adUnit} .media {
width: 81px;
height: 81px;
margin: 0px;
flex-shrink: 0;
}
#${adUnit} .media img {
width: 81px;
height: 81px;
}
#${adUnit} .text-wrap .centerer {
align-self: center;
margin: 2px 10px 0px 10px;
padding: 0;
}
#${adUnit} .title {
font: normal normal 900 16px/18px Lato;
letter-spacing: 0px;
}
#${adUnit} .advertiser, .title {
text-align: left;
padding: 0;
margin: 0;
}
#${adUnit} .advertiser {
margin-bottom: 2px;
margin-top: 0px;
font: normal normal bold 12px/14px Lato;
letter-spacing: 0.4px;
}
}
}
@media only screen and (min-width: 414px) and (max-width: 799px) {
#${adUnit} {
padding: 15px 0px;
}
#${adUnit} .rpAdContentWrapper {
display: flex;
}
#${adUnit} .media {
width: 21%;
margin: 0px;
height: auto;
display: block;
min-height: 81px;
}
#${adUnit} .media img {
max-width: none;
height: auto;
min-height: 81px;
}
#${adUnit} .text-wrap .centerer {
align-self: center;
margin: 2px 10px 0px 10px;
padding: 0;
}
#${adUnit} .title {
font: normal normal 900 16px/18px Lato;
letter-spacing: 0px;
}
#${adUnit} .advertiser, .title {
text-align: left;
padding: 0;
margin: 0;
}
#${adUnit} .advertiser {
margin-bottom: 2px;
margin-top: 0px;
font: normal normal bold 12px/14px Lato;
letter-spacing: 0.4px;
}
}
</style>
<div id='${adUnit}' class='rpAd'>
<div class='rpAdContentWrapper'>
<a class='cover_link' href='${ad.target}' target='_blank' rel='noopener'></a>
<div class='media'>
<img src='${ad.image}' alt='${ad.title}'>
</div>
<div class='text-wrap'>
<div class='centerer'>
<div class='advertiser'>${ad.advertiser}</div>
<div class='title'>${ad.title}</div>
</div>
</div>
</div>
</div>
`);
if ($showOnSuccess) $showOnSuccess.empty().show();
jQuery(targetSelector)[method]($adElement);
if (ad.beacons && ad.beacons.length > 0) {
new IntersectionObserver((entries, observer) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
new Image(1, 1).src = ad.beacons[0];
observer.unobserve(entry.target);
console.log('Rp visible, calling inscreen tracking: ', ad.beacons[0]);
}
});
}, { threshold: 1.0 }).observe($adElement.filter(`#${adUnit}`)[0]);
}
} catch (error) {
console.error("Could not fetch Readpeak ad:", error);
}
// End of async function loadReadpeakAd(origAdSlotId, targetSelector, method = 'replaceWith') {
}
if (!location.href.includes('?rulla=3')) {
if (location.href.includes('?rulla=2') || 1 == 1) {
//waitForElement('ul.om-personalization-article-list').then(function(element) {
// jQuery('h3.om-personalization-article-card__headline').each(function() {
// jQuery(this).wrap('<div class="om-personalization-article-card__headline-wrapper"></div>');
// jQuery(this).before('<div class="om-personalization-article-card__brand"><img><span class="brand-name"></span></div>')
// });
//});
waitForElement('ul.om-personalization-article-list').then(function(element) {
//jQuery('main.om-personalization-overlay-layer__content').append('<div id="scroll-arrow" class="scroll-arrow bounce"><span>↓</span></div>');
jQuery('main.om-personalization-overlay-layer__content').append('<div id="scroll-arrow" class="scroll-arrow bounce"><svg xmlns="http://w3.org" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="M12 5v14M19 12l-7 7-7-7" /></svg></div>');
//if (location.href.includes('?rulla=4')) {
jQuery('.om-personalization-overlay-layer__action-bar-left').prepend('<div class="om-personalization-heading">Lisää luettavaa scrollaamalla <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="display: inline; margin-bottom: -4px; width: 16px; height: 16px;"><path d="M19 12.5l-2.1-2.1-4.4 4.4V3h-3v11.8l-4.4-4.4-2.1 2.1 8 8 8-8z" /></path></svg></div>');
//} else {
// jQuery('.om-personalization-overlay-layer__action-bar-left').prepend('<div class="om-personalization-heading">Lisää luettavaa scrollaamalla <span style="font-weight: 700">↓</span></div>')
//}
const overlayContent = document.querySelector('.om-personalization-article-list');
const scrollArrow = document.getElementById('scroll-arrow');
if (overlayContent) {
console.log('overlayContent exists...');
overlayContent.onscroll = function() {
//console.log('overlayContent.scrollTop: ' + overlayContent.scrollTop);
if (overlayContent.scrollTop > 300) {
scrollArrow.classList.add("fade-out");
}
};
} else {
console.log('overlayContent DOES NOT exist...');
}
(function() {
const getBrandConfig = (brandCode) => {
const brands = {
'AN': { siteId: 1 }, 'HY': { siteId: 18 }, 'KI': { siteId: 12 },
'KO': { siteId: 5 }, 'KP': { siteId: 4 }, 'MU': { siteId: 7 },
'RM': { siteId: 19 }, 'SE': { siteId: 6 }, 'SK': { siteId: 3 },
'TM': { siteId: 2 }
};
return brands[brandCode] || brands['KO'];
};
const processedIds = new Set();
const processEvent = (obj) => {
try {
if (obj && obj.event === 'om_personalization_article_open') {
const id = obj['gtm.uniqueEventId'] || (obj.articlePostId + '_' + obj.articleUrl);
const gtmId = obj['gtm.uniqueEventId'] || 'no-id';
if (id && !processedIds.has(id)) {
processedIds.add(id);
let parentPostId = '';
try {
const history = window.dataLayer || [];
const parentObj = history.slice().reverse().find(item => item && item.PostId);
parentPostId = parentObj ? parentObj.PostId : '';
} catch (e) {
}
const brand = getBrandConfig(obj['articleBrand']);
const params = new URLSearchParams({
siteid: brand.siteId,
typeid: 11,
bu: window.location.href,
tu: obj['articleUrl'] || '',
cb: Math.floor(Math.random() * 100000000),
pid: parentPostId,
tpid: obj['articlePostId'] || '',
extid: gtmId
});
const omAnalyticsUrl = 'https://digitiimi.otavamedia.fi/cc/recom/?' + params.toString();
navigator.sendBeacon(omAnalyticsUrl);
}
}
} catch (err) {
console.warn("Analytics tracking error in om_personalization_article_open:", err);
}
};
window.dataLayer = window.dataLayer || [];
const originalPush = window.dataLayer.push;
window.dataLayer.push = function() {
const result = originalPush.apply(this, arguments);
try {
for (let i = 0; i < arguments.length; i++) {
processEvent(arguments[i]);
}
} catch (err) {
console.error("DataLayer hook error:", err);
}
return result;
};
})();
});
const cfObserver = new MutationObserver(function(mutations) {
const cfList = jQuery('ul.om-personalization-article-list');
cfList.each(function() {
const currentList = jQuery(this);
if (currentList.find('h3.om-personalization-article-card__headline').parent('.om-personalization-article-card__headline-wrapper').length === 0) {
currentList.removeClass('processed');
}
if (!currentList.hasClass('processed')) {
currentList.addClass('processed');
currentList.find('h3.om-personalization-article-card__headline').each(function() {
const cfHeadline = jQuery(this);
if (!cfHeadline.parent().hasClass('om-personalization-article-card__headline-wrapper')) {
cfHeadline.wrap('<div class="om-personalization-article-card__headline-wrapper"></div>');
cfHeadline.before('<div class="om-personalization-article-card__brand"><img><span class="brand-name"></span></div>');
//if (location.href.includes('?rulla=4')) {
//cfHeadline.after('<div class="read-article">Lue koko juttu <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path d="M12.5 5l-2.1 2.1 4.4 4.4H3v3h11.8l-4.4 4.4 2.1 2.1 8-8-8-8z" /></path></svg></div>');
cfHeadline.after('<div class="read-article">Lue koko juttu <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path d="M13 6l-1.4 1.4L14.7 11H3v2h11.7l-3.1 3.1L13 17.5l5.5-5.5L13 6z" /></svg></div>');
//}
}
});
}
});
});
cfObserver.observe(document.body, {
childList: true,
subtree: true
});
}
}
if (!fpaShown && rnd > 50) {
var adTestParam = 'ntp=1';
$("body a").each(function() {
var hrefSrc = $(this).attr('href');
if (hrefSrc != null) {
if (hrefSrc.indexOf("jpg") < 0 && hrefSrc.indexOf("gif") < 0 && hrefSrc.indexOf("png") < 0 && hrefSrc.indexOf("javascript") < 0 && hrefSrc.indexOf("debug=1") < 0) {
if (hrefSrc.indexOf("?") < 0) {
var ahreffi = hrefSrc + '?' + adTestParam;
} else {
var ahreffi = hrefSrc + '&' + adTestParam;
}
$(this).attr('href',ahreffi);
}
}
});
}
//if (cmpGetCookie('p_rum') != 1 && rnd >= 40) {
if (rnd >= 31) {
console.log('Calling Pingdom rum...');
var fpa = document.createElement('script'); fpa.type = 'text/javascript'; fpa.async = true;
fpa.src = '//rum-static.pingdom.net/pa-60b0aa7ba4068400110000f4.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(fpa, s);
}
setTimeout(function() {
if(!document.getElementById('FjInuCgeJBLv')){
dataLayer.push({'event': 'ads_blocked'})
if (dfpDebug) {console.log('Adblocker detected...')}
//dataLayer.push({'event': 'adsBlocked', 'adBlock': 'Blocked'});
//ga('send', 'event', 'Advertisement', 'adsBlocked', 'Blocked');
//setTimeout(function() {
// ga('send', 'event', 'Advertisement', 'adsBlocked', 'Blocked');
//}, 1000);
} else {
if (dfpDebug) {console.log('Adblocker not detected...')}
}
}, 1000);
let showConsentManager = function(){__tcfapi("showConsentManager",true,function(data){console.log(data)});}
jQuery('footer#footer ul.otavamedia-footer__list').eq(0).append('<li class="otavamedia-footer__list-item"><a style="display:block;" href="#" class="manageSettings otavamedia-footer__link oba-link" onclick="window.gravitoCMP.openPreferences()">Evästeasetukset</a></li>');
if (window.dfp.visibility == 'desktop') {
jQuery("body").append('<iframe srcdoc=\"\<script src=\'https:\/\/cdn.performax.cz\/acc\/loader.js?aab=loader\'\>\<\/script\>\" style=\"display: none\" data-web=\"kotiliesi.fi\" data-hash=\"b405afad6654d55e647395c1488a1f84\"><\/iframe>');
}
if (document.location.href.indexOf("datesti=1") >= -1) {
function getCommonElements(array1, array2) {
return array1.filter(function(value) {
return array2.includes(value);
});
}
/*
async function waitForVariable(variableName) {
while (!window[variableName]) {
await new Promise(resolve => setTimeout(resolve, 100));
}
return true;
}
*/
if (decodeURIComponent(cmpGetCookie("cX_G"))) {
if (dfpDebug) {console.log('cX_G found...')}
//let omSegmentArr = ['8n485ejzigi9','8nfch1zaxlw6','8mt6a1sm81he','8n485ejzigfp','8o1io4hcqvbf','8nqfato9a0cb','8nfhzm7smash','8nqfm06botn3','8n485ejzigfn','8mt74q0mx5k0','8nqfkl7gdkdg','8o1io4hcqvbe','8nqech16gy9p','8nfc1qnzidza','8o1l9ymij652','8nqech16gyaq','8nfb8yhmklm1','8mt6a1sm81hf','8o1gwyxui6y1','8nfhzm7smasg','8mt7r5sa3rwj','8nqi6elemih4','8n49exzcvb05','8nqexjcx2l1r','8nfainauefpl','8nfdx7xwjjlh','8nffig3logr2','8o1l9ymij65d','8n485ejzigic','8o1h8hno13z9'];
let omSegmentArr = ['adbzpidaf887','8nff2vf2dqge','8n4bzck96z75','8nqi6elemiic','8nqi6elemih4','8n4bzck96z7n','8o1l9ymij652','8n4bzck96z7p','8mt8vs49hkio','8o1l9ymij65d','8nff2vf2dqgf','8nqi6elemih5','8n4cez5ikgch','8nfainauefpl','8nqfm06botjc','8nfc1qnzidza','8o1kscr38zqt','8o1iecry6lob','8nqfato9a0cb','8nqfato9a0cp','8nqfato9a0es','8nfb8yhmklm2','8nfb8yhmklm1','8n485ejzigi9','8o1o6nfnsllv','8nql33nfeh1b','8nffig3logr2','8n485ejzigic','8n485ejzigie','8o1o6nfnslm6','8o1l9ymij65f','8nfhzm7smasj','8o1hg0ie9yt5','8o1hg0ie9yqa','8nfhzm7smasg','8nfhzm7smasf','8nfhzm7smash','8n4fjavk8koj','8o1o6nfnslm3','8o1gwyxui6y1','8nfapah6uu5t','8mt68zrajk3e','8nqfato9a0eg','8nfc7bgdk6l6','8nqfkl7gdkdg','8nfch1zaxlw6','8mt6a1sm81he','8o1io4hcqvbe','8mt6a1sm81hf','8o1io4hcqvbf','8nqech16gy6r','8n4hcd8p9yix','8o1h8hno13z9','8nfc1qnzidze','8nqech16gyaq','8mt74q0mx5k0','8n4ba3nnrwg1','8nqech16gy6q','8nqech16gyak','8nqfm06botdy','8nfeu0oo3dj9','8o1i8us43afa','8n485ejzigfp','8nqf57f2z0a7','8mt64iggbp69','8n485ejzigia','8n485ejzigfo','8nqdm6kvc1s8','8n485ejzigix','8n49exzcvb05','8nqfm06botn3','8o1iecry6ldl','8o1hg0ie9yq9','8nqexjcx2l1r','8nfge70dtt80','8nfb8yhmklm3','8nfdx7xwjjlh','8mt7r5sa3rwj','8mt7r5sa3rwn','8n485ejzigfn','8nfb8yhmklkp','8nfewbexnvg7','8o1l3e22wbdc','8nqech16gy6p','8n485ejzigfm','8o1hg0ie9yq8','8nqech16gy6o','8o1k4bj3ns4a','8nqech16gy9r','8nfb8yhmklmv','8nfb8yhmkloj','8o1hg0ie9yq7','8nfb8yhmklp2','8nfb8yhmklp4','8nfb8yhmklp3','8nfb0g561min','8nqe3z9qdr85','8nfb8yhmkllx','8nfb8yhmklly','18i1a3mftlztn','8mtem2wqwxdl ','aavf5ch5kc6l ','a9yesumpafb6','aakkzy0gqoru','8nqech16gy9p'];
let LS__cX_segmentInfoArr = [];
let LS__cX_segmentInfo = window.localStorage.getItem('_cX_segmentInfo');
if (LS__cX_segmentInfo != null) {
//LS__cX_segmentInfoArr = LS__cX_segmentInfo.substr(LS__cX_segmentInfo.lastIndexOf("_")+1).split('.');
LS__cX_segmentInfoArr = LS__cX_segmentInfo.split(',');
if (dfpDebug) {console.log('Creating LS__cX_segmentInfoArr...')}
} else {
if (dfpDebug) {console.log('LS__cX_segmentInfo does not exist...')}
}
if (typeof(LS__cX_segmentInfoArr) != 'undefined') {
if (dfpDebug) {console.log('LS__cX_segmentInfoArr length ' + LS__cX_segmentInfoArr.length)}
let daSegmentArr = '[' + getCommonElements(omSegmentArr, LS__cX_segmentInfoArr) + ']';
if (dfpDebug) {console.log('daSegmentArr: ' + daSegmentArr)}
//console.timeEnd("daBake");
waitForVariable2("__da", 10000, 1000)
.then((success) => {
if (success) {
if (dfpDebug) {console.log("__da is defined...")}
__da.bake({partner:'PO_221116', parcid:'' + decodeURIComponent(cmpGetCookie("cX_G")) + '', publisher:'Dap_221116', category: daSegmentArr});
} else {
if (dfpDebug) { console.log('waitForVariable2 "__da" timed out or variable was not found.'); }
}
})
.catch(error => {
if (dfpDebug) { console.error('Error in waitForVariable2:', error); }
});
} else {
if (dfpDebug) {console.log('LS__cX_segmentInfoArr does not exist...')}
}
} else {
if (dfpDebug) {console.log('cX_G cookie not detected...')}
}
}
if (document.documentElement.clientWidth >= 600) {
if ((adLocation == 'content') && jQuery('body').attr('class').match(/single-post/)) {
jQuery('article.single').children().each((index, element) => {
if (element.tagName.toLowerCase() == 'section' && jQuery(element).hasClass('embed')) {
if (jQuery(element).find('iframe[src*="screen9.com"]').length > 0 || jQuery(element).find('iframe[data-src*="screen9.com"]').length > 0) {
jQuery(element).css('max-width', '600px');
}
}
});
}
}
var adslotsDefined = true;
if (location.href.indexOf('testaisearch') >= -1 && window.innerWidth <= 500) {
const cssRules = `
#hion-ai-modal {
width: 92vw;
max-width: 92%;
border-radius: 10px;
padding: 1rem 1rem 1.5rem;
height: 96%;
}
#hion-ai-chat-content {
margin-top: 1rem;
}
.related-header {
background: #971567;
color: #ffffff;
border-radius: 10px;
padding: 1rem;
}
#hion-ai-input {
font-size: 1.6rem;
background-color: #e2e2e2;
}
.close-btn {
top: 0.8rem;
right: 1rem;
background-color: #971567;
border-radius: 1rem;
}
#hion-ai-modal-container {
z-index: 999999;
}
.user-bubble {
background: #d6d6d6;
color: #313131;
max-width: 90%;
}
.bot-bubble {
margin-right: 5px;
max-width: 90%
}
.user-bubble p, .bot-bubble p {
font-size: 1.4rem;
}
#hion-ai-chat-content {
max-height: 30vh;
}
#hion-ai-chat-content div.user-bubble:first-child {
margin-top: 0px;
}
.hion-ai-input-area {
margin-top: 2rem;
}
#hion-ai-results-container {
max-height: 55vh;
margin-top: 1rem;
}
#hion-ai-chat-content {
margin-top: 2rem;
}
.hion-result-snippet-wrapper {
gap: 0;
flex-direction: column;
}
.hion-result-snippet-image {
width: 100%;
height: 40vw;
opacity: 1;
}
#hion-ai-results-container .hion-result-box:first-child {
margin-top: 0px;
}
.hion-result-box {
font-family: georgia;
padding: 1rem 0.5rem;
}
.hion-result-snippet {
margin-top: 0;
background-color: #f1f1f1;
padding: 10px;
border-bottom-right-radius: 4px;
border-bottom-left-radius: 4px;
color: #313131;
font-size: 1.5rem;
}
.hion-result-display-link {
color: #313131;
margin-top: 0.5rem;
}
.hion-result-title a {
font-size: 1.7rem;
line-height: 2rem;
}
`;
const styleElement = document.createElement('style');
styleElement.textContent = cssRules;
document.head.appendChild(styleElement);
//waitForElement(".related-header").then(function(element) {
// jQuery("#hion-ai-results-container").before(jQuery('.related-header'));
//});
}
if (window.dfp.visibility == 'mobile' && location.href.includes('testnativeontop=1')) {
const topadNativeTimerStart = Date.now();
if (dfpDebug) {console.log('Timer start to check topad native: ' + topadNativeTimerStart)}
document.body.style.overflow = 'hidden';
if (dfpDebug) {console.log('Body overflow changed at: ' + (topadNativeTimerStart - timerStart))}
let isUnlocked = false;
const backupTimeout = setTimeout(() => {
if (!isUnlocked) {
isUnlocked = true;
document.body.style.overflow = '';
if (dfpDebug) {console.log('Timer stopped to check topad native, backup timeout triggered: ' + (Date.now() - topadNativeTimerStart) + 'ms...')}
}
}, 2000);
window.googletag = window.googletag || { cmd: [] };
googletag.cmd.push(() => {
googletag.pubads().addEventListener('slotRenderEnded', (event) => {
if (event.slot.getSlotElementId() === 'dfp__topad-mob') {
if (dfpDebug) {console.log('Timer to check topad native rendered: ' + (Date.now() - topadNativeTimerStart) + 'ms...')}
setTimeout(() => {
if (!isUnlocked) {
isUnlocked = true;
clearTimeout(backupTimeout);
document.body.style.overflow = '';
if (dfpDebug) {console.log('Timer stopped to check topad native, slotRenderEnded: ' + (Date.now() - topadNativeTimerStart) + 'ms...')}
}
}, 1000);
}
});
});
}
</script>
<style>
footer li.otavamedia-footer__list-item a[href*="#"] {display:none;}
footer li.otavamedia-footer__list-item a.manageSettings {display:block;}
@media only screen and (min-width: 1000px) {
.card .recipe-time-and-servings {
justify-content: center;
}
}
body > main > div.page-content.page-toukola > h1, h2, h3 {
scroll-margin-top: 150px;
}
/*videoelementin piilotus etusivun uusimmat-listauksesta*/
#section-management-8 > ul .card__video-wrapper {
display: none;
}
</style>
<!-- // kotiliesi.fi -->
<!-- Body end tag end, do not remove -->
</html>
Sitemap
Кол-во: 0
XML-карта сайта для поисковиков
?
Sitemap.xml помогает поисковику быстрее находить и индексировать страницы. Особенно важен для крупных сайтов и новых страниц, на которые ещё нет входящих ссылок.
Robots.txt не содержит ссылку на карту сайта. Рекомендуется добавить карту сайта и указать ссылку на нее в robots.txt.
Внутренние ссылки
Кол-во: 5
Ссылки на другие страницы своего сайта
?
Внутренние ссылки распределяют ссылочный вес между страницами и помогают поисковику обходить сайт. Пустые анкоры и ссылки на запрещённые robots.txt страницы — типичные ошибки.
Внутренних ссылок на странице 5 оптимально.
Внутренние ссылки не запрещены к индексации в robots.txt.
Показать внутренние ссылки
| Url | Анкор | Состояние | Анализировать |
|---|---|---|---|
| /tilaa?promoPosition=header-single |
Tilaa
|
|
Анализировать url |
| /tel:09156%206227 |
(09) 156 6227
|
|
|
| /tel:09156665 |
(09) 156 665
|
|
|
| /tel:0915661 |
(09) 156 61
|
|
|
| /toimituksen-yhteystiedot/ |
Toimitus
|
|
Анализировать url |
Внешние ссылки
Кол-во: 107
Ссылки на сторонние сайты
?
Исходящие внешние ссылки передают часть ссылочного веса на чужие сайты. Ссылки на авторитетные ресурсы безопасны; ссылки на мусорные сайты могут навредить репутации страницы.
Внешних ссылок на странице 107 слишком много. Спрячьте лишние ссылки в тег noindex или атрибут rel='nofollow'!
На странице ссылки с атрибутом rel='nofollow' 3.
На странице присутствуют ссылки на субдомены 1.
Показать первые 100 внешних ссылок
| Url | Анкор | Анализировать |
|---|---|---|
| kotiliesi.fi |
<span class="screen-reader-text">Kotiliesi</span>
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 505 100"><path fill="currentColor" d="M502.3 88.9a6 6 0 0 1-4.5 2c-1.7 0-3.4-.9-3.4-4V22.7h-29.9v4.5c3.1 0 4.3 1.1 4.3 3.1v54.2c0 4.7.7 7.5 3 9.9 2.6 2.7 6.8 4.1 13.5 4.1 7.4 0 14.9-1.7 19.3-7.2l-2.3-2.4zm-171.7 0a6 6 0 0 1-4.5 2c-1.7 0-3.4-.9-3.4-4V22.7h-29.9v4.5c3.1 0 4.3 1.1 4.3 3.1v54.2c0 4.7.7 7.5 3 9.9 2.6 2.7 6.8 4.1 13.5 4.1 7.4 0 14.9-1.7 19.3-7.2l-2.3-2.4zM212.1 9.7c0 7 6 9.7 13.5 9.7s13.5-2.4 13.5-9.7c0-7.2-6-9.7-13.5-9.7-7.6 0-13.5 2.4-13.5 9.7M247 88.9a6 6 0 0 1-4.5 2c-1.7 0-3.4-.9-3.4-4V22.7h-29.9v4.5c3.1 0 4.3 1.1 4.3 3.1v54.2c0 4.7.7 7.5 3 9.9 2.6 2.7 6.8 4.1 13.5 4.1 7.4 0 14.9-1.7 19.3-7.2l-2.3-2.4zM467.4 9.7c0 7 6 9.7 13.5 9.7s13.5-2.4 13.5-9.7c0-7.2-6-9.7-13.5-9.7s-13.5 2.4-13.5 9.7m-171.8 0c0 7 6 9.7 13.5 9.7s13.5-2.4 13.5-9.7c0-7.2-6-9.7-13.5-9.7s-13.5 2.4-13.5 9.7m-41.1 74.9v.6c0 4.4.7 7.1 3 9.4 2.6 2.7 6.8 4.1 13.5 4.1 7.4 0 14.9-1.7 19.3-7.2l-2.1-2.6a6 6 0 0 1-4.5 2c-1.7 0-3.4-.7-3.4-4V1.3l-31.4 1.1v4.3c3.8 0 5.7 1.4 5.7 4.5v73.4zM189.3 3.1H188c-6.5 0-13.5 1.6-20.3 3.1l-4.1 1v15.5l-9.4 1v4.8h9.4v49.3c0 13.3 7.1 20.9 22.4 20.9 11.6 0 17.9-4.8 21-8.8l-2.7-3.4-1.6 1.3c-2.8 2.3-5.1 3.4-8.4 3.3-3.8-.1-5.1-3-5.1-6.7V28.5h17.9v-5.8h-17.9V3.1zM76.8 9.9c1.4-2 3.8-3 6.8-3V3.4H61.2V7c3.1 0 5.1.7 3.3 3.1L45.1 36.2c-4.4 6-8.7 10.1-12.5 10.8V8.4C32.6 7 34.8 7 37.3 7V3.4H0V7c2.7 0 4.7 0 4.7 1.4v82.2c0 3-1.4 3.7-4.7 3.7v3.5h37.3v-3.5c-2.8 0-4.7-.7-4.7-3.7V51.2l17.6 35.1C55.4 96.7 66 99.1 74.7 99.1c12.2 0 18.5-3 18.5-3v-2.8s-5.4 0-10.8-8.9L55.5 39.2 76.8 9.9zm357 11c-18.5 0-28.5 7.9-28.5 19.9 0 10.9 5.1 17.2 16.3 24.3l12.3 7.7c7.5 4.7 10.1 7.8 10.1 12.8 0 4.7-3.7 9.7-13.1 9.7-11.2 0-18.9-5.8-23-21.9h-3.3v17c5.1 5.5 15.3 9.1 26.4 9.1 18.7 0 30.9-9.1 30.9-25.8 0-10.9-7.2-17.5-18.7-24.6L431.7 42c-5.5-3.4-7.2-6.8-7.2-9.7 0-4 3.3-7.4 9.8-7.4 10.2 0 16.7 4.8 19.2 16.6h3.1V25.8a49.8 49.8 0 0 0-22.8-4.9m-66.6 3.9c4.3 0 6.8 5.5 7 29.9h-14.3v-3.4c-.1-20.5 3-26.5 7.3-26.5m28.1 61.4C391 90 386.2 92 378 92c-14.6 0-18.2-9.8-18.2-32.1h34.8c3.5 0 4.7-2.3 4.7-4 0-25-12.3-35.1-32.1-35.1-20.9 0-35.1 16.3-35.1 41 0 24 12.8 37.5 37.9 37.5 13.5 0 21.7-4.7 27.3-9.8l-2-3.3zm-282.5-26c0-22.1 1.4-35.3 8.8-35.3 7.5 0 8.7 11.6 8.7 35.3 0 26-1.1 34.9-8.7 34.9-6.3 0-8.8-9.9-8.8-34.9m-27.9 0c0 23.1 15.8 39.2 36.6 39.2 20.9 0 36.3-17.5 36.3-39.2 0-23.1-15.5-39.3-36.3-39.3-20.9 0-36.6 17.6-36.6 39.3"></path></svg>
|
Анализировать url |
| kotiliesi.fi |
<span class="icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" fill="currentColor"><path d="M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 3a3 3 0 1 1 0 6 3 3 0 0 1 0-6zm0 14.2a7.2 7.2 0 0 1-6-3.22c.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08a7.2 7.2 0 0 1-6 3.22z"></path></svg></span>
<span class="screen-reader-text">
Kirjaudu
</span>
|
Анализировать url |
| kotiliesi.fi |
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" fill="currentColor"><path d="M15.5 14h-.8l-.3-.3c1-1.1 1.6-2.6 1.6-4.2a6.5 6.5 0 1 0-2.3 5l.3.2v.8l5 5 1.5-1.5-5-5zm-6 0a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9z"></path></svg> Hae
|
Анализировать url |
| kotiliesi.fi |
Toukola
|
Анализировать url |
| kotiliesi.fi |
Ruoka
|
Анализировать url |
| kotiliesi.fi |
Reseptit
|
Анализировать url |
| kotiliesi.fi |
Viikon ruokalista
|
Анализировать url |
| kotiliesi.fi |
Arjen nopeat ja helpot
|
Анализировать url |
| kotiliesi.fi |
Grilli kuumaksi
|
Анализировать url |
| kotiliesi.fi |
Ihmiset
|
Анализировать url |
| kotiliesi.fi |
Tarinat
|
Анализировать url |
| kotiliesi.fi |
Nostalgia
|
Анализировать url |
| kotiliesi.fi |
Talous
|
Анализировать url |
| kotiliesi.fi |
Kulttuuri
|
Анализировать url |
| kotiliesi.fi |
Luonto
|
Анализировать url |
| kotiliesi.fi |
Hyvinvointi
|
Анализировать url |
| kotiliesi.fi |
Liikunta
|
Анализировать url |
| kotiliesi.fi |
Suhteet
|
Анализировать url |
| kotiliesi.fi |
Terveys
|
Анализировать url |
| kotiliesi.fi |
Koti
|
Анализировать url |
| kotiliesi.fi |
Sisustus
|
Анализировать url |
| kotiliesi.fi |
Kodinhoito
|
Анализировать url |
| kotiliesi.fi |
Puutarha
|
Анализировать url |
| kotiliesi.fi |
Lemmikit
|
Анализировать url |
| kotiliesi.fi |
Huonekasvit
|
Анализировать url |
| kotiliesi.fi |
Käsityö
|
Анализировать url |
| kotiliesi.fi |
Askartelu
|
Анализировать url |
| kotiliesi.fi |
Neulonta
|
Анализировать url |
| kotiliesi.fi |
Virkkaus
|
Анализировать url |
| kotiliesi.fi |
Ompelu
|
Анализировать url |
| kotiliesi.fi |
Juhlat
|
Анализировать url |
| kotiliesi.fi |
Unelmien joulu
|
Анализировать url |
| kotiliesi.fi |
Paras pääsiäinen
|
Анализировать url |
| kotiliesi.fi |
Kevään juhlat
|
Анализировать url |
| kotiliesi.fi |
Näköislehdet
|
Анализировать url |
| kotiliesi.fi |
Kotiliesi näköislehti
|
Анализировать url |
| kotiliesi.fi |
Deko näköislehti
|
Анализировать url |
| kotiliesi.fi |
Maalla näköislehti
|
Анализировать url |
| kotiliesi.fi |
Kotiliesi Käsityö näköislehti
|
Анализировать url |
| kotiliesi.fi |
Kilpailut
|
Анализировать url |
| kotiliesi.fi |
Kotiliesi Klubi
|
Анализировать url |
| kotiliesi.fi |
Ota yhteyttä
|
Анализировать url |
| kotiliesi.fi |
Sisustus
|
Анализировать url |
| kotiliesi.fi |
Ihana mummolatunnelma! Elina ja Klaus ostivat mökin irtaimistoineen, vaikka se ei sijainnut veden äärellä
|
Анализировать url |
| kotiliesi.fi |
Sisustus
|
Анализировать url |
| kotiliesi.fi |
7 maalausideaa, jotka tuovat kotiin persoonallista ilmettä – sopivat tilaan kuin tilaan
|
Анализировать url |
| kotiliesi.fi |
Sisustus
|
Анализировать url |
| kotiliesi.fi |
Hetki oli herkkä, kun Seija Strand avasi tyttäreltään saamansa lahjan: ”Ajatus lahjan taustalla lämmittää vahvasti sydäntäni”
|
Анализировать url |
| kotiliesi.fi |
Sisustus
|
Анализировать url |
| kotiliesi.fi |
Bella Forsgrén asuu yksin 130-vuotiaassa hirsitalossa – sai remontteihin apua yllättäviltä tahoilta
|
Анализировать url |
| kotiliesi.fi |
Sisustus
|
Анализировать url |
| kotiliesi.fi |
Piristä olohuonetta tekstiilien avulla – 12 raikasta vaihtoehtoa
|
Анализировать url |
| kotiliesi.fi |
Sisustus
|
Анализировать url |
| kotiliesi.fi |
Oma piha ja minuutissa kylpytakki päällä rantaan – ei uskoisi, että Paulan ja Danielin koti sijaitsee Helsingin keskustassa
|
Анализировать url |
| kotiliesi.fi |
Sisustus
|
Анализировать url |
| kotiliesi.fi |
Pernilla Böckerman harkitsi nojatuolin ostamista 8 vuotta – äiti rohkaisi päätöksenteossa
|
Анализировать url |
| kotiliesi.fi |
Sisustus
|
Анализировать url |
| kotiliesi.fi |
Röttelöstä tulikin oma koti – remontin aikana Maria ehti epäröidä lähes kaikkea
|
Анализировать url |
| kotiliesi.fi |
Sisustus
|
Анализировать url |
| kotiliesi.fi |
Terassin laajennus ja piharemontti veivät kolme vuotta ja reilu 26 000 euroa – lopputulosta kelpaa katsella
|
Анализировать url |
| kotiliesi.fi |
Sisustus
|
Анализировать url |
| kotiliesi.fi |
Linda Björnbergin kodin sijainti on täydellinen, mutta hän on sen takia aina myöhässä
|
Анализировать url |
| kotiliesi.fi |
Sisustus
|
Анализировать url |
| kotiliesi.fi |
Vaatehuoneen muutos 400 eurolla: Emilia muutti helpoilla kikoilla epäkäytännöllisen vaatehuoneen kauniiksi ja toimivaksi
|
Анализировать url |
| kotiliesi.fi |
Sisustus
|
Анализировать url |
| kotiliesi.fi |
Suojellun hirsitalon remontti ei houkuttanut - perhe rakensi viereen modernin kesämökin
|
Анализировать url |
| kotiliesi.fi |
Sisustus
|
Анализировать url |
| kotiliesi.fi |
Asuntomessuille talon rakentaneet Matti ja Viivi paljastavat, ettei koti jää samannäköiseksi kuin messuilla: "Katselemme käytettyjä huonekaluja"
|
Анализировать url |
| minunmedia.fi |
Lukijapaneeli
|
Анализировать url |
| etuasiakaskauppa.fi |
Etuasiakaskauppa
|
Анализировать url |
| facebook.com |
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 27.89 27.72"><path d="M27.89 13.94a13.95 13.95 0 1 0-16.12 13.78v-9.74H8.22v-4.04h3.55v-3.07c0-3.5 2.08-5.42 5.26-5.42a21.46 21.46 0 0 1 3.13.27v3.43H18.4a2.02 2.02 0 0 0-2.28 2.18v2.62H20l-.62 4.03h-3.25v9.74A13.95 13.95 0 0 0 27.9 13.94Z" fill="#3b5998"></path></svg> <span class="screen-reader-text">Seuraa Deko-lehteä Facebookissa</span>
|
|
| fi.pinterest.com |
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 27.89 27.89"><path d="M27.9 13.94A13.95 13.95 0 0 1 9.81 27.27a15.68 15.68 0 0 0 1.73-3.66l.87-3.32a3.73 3.73 0 0 0 3.19 1.6c4.2 0 7.24-3.87 7.24-8.67 0-4.6-3.77-8.05-8.6-8.05-6.02 0-9.22 4.03-9.22 8.44 0 2.04 1.1 4.59 2.83 5.4.26.12.4.06.47-.2l.38-1.57a.42.42 0 0 0-.1-.4 5.5 5.5 0 0 1-1.03-3.18 6.04 6.04 0 0 1 6.3-6.05 5.5 5.5 0 0 1 5.83 5.67c0 3.77-1.9 6.39-4.39 6.39a2.02 2.02 0 0 1-2.06-2.52c.4-1.66 1.15-3.45 1.15-4.65a1.75 1.75 0 0 0-1.76-1.96c-1.4 0-2.53 1.45-2.53 3.39a5.03 5.03 0 0 0 .42 2.07s-1.37 5.84-1.63 6.93a13.5 13.5 0 0 0-.05 4A13.95 13.95 0 1 1 27.9 13.94Z" fill="#e60023"></path></svg> <span class="screen-reader-text">Seuraa Deko-lehteä Pinterestissä</span>
|
Анализировать url |
| instagram.com |
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewbox="0 0 132 132">
<defs>
<radialgradient id="c" cx="158.43" cy="578.09" r="65" xlink:href="#a" gradientunits="userSpaceOnUse" gradienttransform="matrix(0 -1.98198 1.8439 0 -1031.4 454)" fx="158.43" fy="578.09"></radialgradient>
<radialgradient id="d" cx="147.69" cy="473.45" r="65" xlink:href="#b" gradientunits="userSpaceOnUse" gradienttransform="matrix(.17394 .86872 -3.5818 .71718 1648.35 -458.5)" fx="147.69" fy="473.45"></radialgradient>
<lineargradient id="b">
<stop offset="0" stop-color="#3771c8"></stop>
<stop stop-color="#3771c8" offset=".13"></stop>
<stop offset="1" stop-color="#60f" stop-opacity="0"></stop>
</lineargradient>
<lineargradient id="a">
<stop offset="0" stop-color="#fd5"></stop>
<stop offset=".1" stop-color="#fd5"></stop>
<stop offset=".5" stop-color="#ff543e"></stop>
<stop offset="1" stop-color="#c837ab"></stop>
</lineargradient>
</defs>
<path fill="url(#c)" d="M65.03 0C37.89 0 29.95.03 28.41.16c-5.57.46-9.04 1.34-12.82 3.22a25.95 25.95 0 0 0-7.47 5.46C4 13.13 1.5 18.4.6 24.66.14 27.7.02 28.32 0 43.84v21.13c0 27.12.03 35.05.16 36.59.45 5.42 1.3 8.83 3.1 12.56a27.39 27.39 0 0 0 17.75 14.5c2.68.69 5.64 1.07 9.44 1.25 1.61.07 18.02.12 34.44.12 16.42 0 32.84-.02 34.41-.1 4.4-.2 6.96-.55 9.78-1.28a27.22 27.22 0 0 0 17.75-14.53c1.77-3.64 2.66-7.18 3.07-12.32.08-1.12.12-18.98.12-36.8 0-17.84-.04-35.67-.13-36.79-.4-5.22-1.3-8.73-3.12-12.44a25.77 25.77 0 0 0-5.57-7.62C116.9 4 111.64 1.5 105.37.6 102.33.16 101.73.03 86.2 0H65.03z" transform="translate(1 1)"></path>
<path fill="url(#d)" d="M65.03 0C37.89 0 29.95.03 28.41.16c-5.57.46-9.04 1.34-12.82 3.22a25.95 25.95 0 0 0-7.47 5.46C4 13.13 1.5 18.4.6 24.66.14 27.7.02 28.32 0 43.84v21.13c0 27.12.03 35.05.16 36.59.45 5.42 1.3 8.83 3.1 12.56a27.39 27.39 0 0 0 17.75 14.5c2.68.69 5.64 1.07 9.44 1.25 1.61.07 18.02.12 34.44.12 16.42 0 32.84-.02 34.41-.1 4.4-.2 6.96-.55 9.78-1.28a27.22 27.22 0 0 0 17.75-14.53c1.77-3.64 2.66-7.18 3.07-12.32.08-1.12.12-18.98.12-36.8 0-17.84-.04-35.67-.13-36.79-.4-5.22-1.3-8.73-3.12-12.44a25.77 25.77 0 0 0-5.57-7.62C116.9 4 111.64 1.5 105.37.6 102.33.16 101.73.03 86.2 0H65.03z" transform="translate(1 1)"></path>
<path fill="#fff" d="M66 18c-13.03 0-14.67.06-19.79.29-5.1.23-8.6 1.04-11.65 2.23a23.5 23.5 0 0 0-8.5 5.54 23.56 23.56 0 0 0-5.54 8.5c-1.2 3.05-2 6.54-2.23 11.65C18.06 51.33 18 52.96 18 66s.06 14.67.29 19.79c.23 5.1 1.04 8.6 2.23 11.65a23.52 23.52 0 0 0 5.54 8.5 23.5 23.5 0 0 0 8.5 5.54c3.05 1.19 6.54 2 11.65 2.23 5.12.23 6.75.29 19.79.29 13.03 0 14.67-.06 19.79-.29 5.1-.23 8.6-1.04 11.65-2.23a23.48 23.48 0 0 0 8.5-5.54 23.56 23.56 0 0 0 5.54-8.5c1.18-3.05 1.99-6.54 2.23-11.65.23-5.12.29-6.75.29-19.79s-.06-14.67-.3-19.8c-.23-5.1-1.04-8.59-2.22-11.64a23.56 23.56 0 0 0-5.54-8.5 23.46 23.46 0 0 0-8.5-5.54c-3.06-1.19-6.55-2-11.66-2.23-5.12-.23-6.75-.29-19.8-.29zm-4.3 8.65H66c12.82 0 14.34.05 19.4.28 4.68.21 7.22 1 8.91 1.65 2.24.87 3.84 1.9 5.52 3.59a14.9 14.9 0 0 1 3.59 5.52c.66 1.69 1.44 4.23 1.65 8.9.23 5.07.28 6.59.28 19.4s-.05 14.33-.28 19.39c-.21 4.68-1 7.22-1.65 8.9a14.84 14.84 0 0 1-3.6 5.52 14.84 14.84 0 0 1-5.5 3.6c-1.7.65-4.24 1.43-8.92 1.65-5.06.23-6.58.28-19.4.28-12.81 0-14.33-.05-19.4-.28-4.67-.22-7.21-1-8.9-1.66a14.87 14.87 0 0 1-5.52-3.59 14.88 14.88 0 0 1-3.6-5.52c-.65-1.69-1.44-4.23-1.65-8.9-.23-5.07-.28-6.59-.28-19.4s.05-14.33.28-19.4c.21-4.67 1-7.21 1.65-8.9a14.87 14.87 0 0 1 3.6-5.53 14.9 14.9 0 0 1 5.52-3.59c1.69-.66 4.23-1.44 8.9-1.65 4.44-.2 6.15-.26 15.1-.27zm29.93 7.97a5.76 5.76 0 1 0 0 11.52 5.76 5.76 0 0 0 0-11.52zM66 41.35a24.65 24.65 0 1 0 0 49.3 24.65 24.65 0 0 0 0-49.3zM66 50a16 16 0 1 1 0 32 16 16 0 0 1 0-32z"></path>
</svg> <span class="screen-reader-text">Seuraa Deko-lehteä Instagramissa</span>
|
|
| otavamedia.fi |
Tietoa evästeiden käytöstä
|
Анализировать url |
| youronlinechoices.com |
Käyttäytymiseen perustuva mainonta
|
Анализировать url |
| yrityksille.otavamedia.fi |
Tekniset tiedot, aikataulut ja ilmoitushinnat
|
Анализировать url |
| yrityksille.otavamedia.fi |
Tietoa verkon kävijöistä
|
Анализировать url |
| otavamedia.fi |
Tietosuojaseloste
|
Анализировать url |
| otavamedia.fi |
Käyttöehdot
|
Анализировать url |
| otavamedia.fi |
Aikakauslehdet
|
Анализировать url |
| otavamedia.fi |
Verkkopalvelut
|
Анализировать url |
| otavamedia.fi |
Digilehdet
|
Анализировать url |
| anna.fi |
<svg xmlns="http://www.w3.org/2000/svg" width="128.99" height="33" viewbox="0 0 128.99 33">
<path id="logo_Anna" d="M26.85,33.32h2c.78-3.53,2.54-6.15,6.57-6.15,4.31,0,5.86,3.32,5.86,12.5a11.37,11.37,0,0,0-3.89-.42c-5,0-11.87,2-11.87,8.76,0,5.58,4.1,8.48,7.77,8.48,3.39,0,6.29-1.84,7.06-4.45v-1a3,3,0,0,1-2,.64c-2.47,0-4.1-2-4.1-5.3s2.26-5.58,4.87-5.58a4.56,4.56,0,0,1,2.19.35c0,4,0,7.28-.14,14.62H53.55V54.52H50.44s.21-9.68.21-18.86c0-8-3.53-12.15-10.95-12.15-7.21,0-10.31,3.39-11.44,7.13V24.21H26.85ZM74,55.79H89.15V54.52H86s.21-10.6.21-19.29S83,23.51,77.07,23.51a10.12,10.12,0,0,0-9.54,7.06V24.21H55.17v1.27h3.32v29H56.23v1.27h15V54.52H67.54V36.29c0-4.94,1.48-8.05,5-8.05s4.31,2.4,4.31,8.05c0,6.71,0,11.73-.14,18.23H74Zm35.39,0h15.12V54.52H121.4s.21-10.6.21-19.29-3.25-11.73-9.18-11.73a10.12,10.12,0,0,0-9.54,7.06V24.21H90.56v1.27h3.32v29H91.62v1.27h15V54.52h-3.67V36.29c0-4.94,1.48-8.05,5-8.05s4.31,2.4,4.31,8.05c0,6.71,0,11.73-.14,18.23h-2.68v1.27Zm18.37-22.46h2c.78-3.53,2.54-6.15,6.57-6.15,4.31,0,5.86,3.32,5.86,12.5a11.37,11.37,0,0,0-3.89-.42c-5,0-11.87,2-11.87,8.76,0,5.58,4.1,8.48,7.77,8.48,3.39,0,6.29-1.84,7.06-4.45v-1a3,3,0,0,1-2,.64c-2.47,0-4.1-2-4.1-5.3s2.26-5.58,4.87-5.58a4.56,4.56,0,0,1,2.19.35c0,4,0,7.28-.14,14.62h12.43V54.52H151.4s.21-9.68.21-18.86c0-8-3.53-12.15-10.95-12.15-7.21,0-10.31,3.39-11.44,7.13V24.21h-1.41v9.11Z" transform="translate(-25.52 -23.5)"></path>
</svg>
|
Анализировать url |
| anna.fi |
Ihmiset
|
Анализировать url |
| anna.fi |
Hyvinvointi
|
Анализировать url |
| anna.fi |
Ruoka
|
Анализировать url |
| anna.fi |
Lifestyle
|
Анализировать url |
| anna.fi |
Horoskoopit
|
Анализировать url |
| anna.fi |
Keidas
|
Анализировать url |
| anna.fi |
Reseptit
|
Анализировать url |
| seura.fi |
<svg id="logo_seura" xmlns="http://www.w3.org/2000/svg" width="163.855" height="33" viewbox="0 0 163.855 33">
<path id="Path_18" data-name="Path 18" d="M26.484,55.684a7.175,7.175,0,0,1-.889,2.657H20V48.334h6.718c.7,3.371,3.511,4.682,6.952,4.682,3.757,0,5.536-1.428,5.536-3.324,0-3.066-2.914-2.809-8.637-3.839-6.578-1.17-10.416-3.406-10.416-10.182,0-6.519,5.384-9.574,11.271-9.749,2.7-.082,6.484.585,8.076,2.961a7.315,7.315,0,0,1,.936-2.341h5.77v9.234H39.3c-.8-2.341-2.54-3.792-5.957-3.792-3.148,0-4.834,1.252-4.834,3.1,0,3.066,2.914,2.891,9.363,3.886s10.182,3.663,10.182,9.972c0,5.571-4.178,10-12.348,9.972C32.032,58.856,28.357,58.317,26.484,55.684Z" transform="translate(-20 -25.914)"></path>
<path id="Path_19" data-name="Path 19" d="M56.455,32.048V31.72H66.743l.07.246L68.3,37.993h5.735V26.43H44.33v5.29h3.09v21.09H44.33v5.267h29.7V45.894H68.3l-1.58,6.648-.059.269H56.455V45.5h6.25V38.883h-6.25V32.048Z" transform="translate(-15.854 -25.826)"></path>
<path id="Path_20" data-name="Path 20" d="M71.09,26.43H86.949v5.278h-3.16V44.9c0,3.687.843,5.981,4.974,5.981s5.115-2.341,5.068-5.981V31.72H90.554V26.43h15.215v5.278h-2.645V45.028c0,10.241-4.4,13.67-14.372,13.67s-14.372-3.511-14.372-13.05V31.72H71.09Z" transform="translate(-11.295 -25.826)"></path>
<path id="Path_21" data-name="Path 21" d="M134.708,58.091V52.836h-2.692V45.813c0-2.341-2.072-2.727-4.061-3.137l-1.065-.234-1.5-.375,1.521-.281c4.155-.737,6.016-2.984,6.016-7.3,0-3.055-.784-5.056-2.481-6.308s-4.237-1.685-8.193-1.685h-20.4v5.255h2.622v21.09H101.2v5.29h15.554v-5.29h-3.265V45.146h5.77c3.265,0,3.71,2.516,3.71,4.962v7.982Zm-15.168-19.3h-5.7V31.768h5.712a3.522,3.522,0,1,1-.012,7.022Z" transform="translate(-6.164 -25.816)"></path>
<path id="Path_22" data-name="Path 22" d="M163.552,52.846h1.767v5.29H149.765v-5.29h3.956l-.152-.445-1.7-4.81-.082-.222H141.643l-.082.222-1.709,4.8-.152.468h4v5.29H128.78v-5.3h1.931l.094-.234,7.526-20.377.152-.445h-3.675V26.43h24.66v5.349h-3.7l.152.445L163.178,52.6l.082.246ZM146.71,32.2l-2.984,10.112h6.121L146.8,32.2Z" transform="translate(-1.465 -25.826)"></path>
</svg>
|
Анализировать url |
| seura.fi |
Asiat
|
Анализировать url |
| seura.fi |
Ilmiöt
|
Анализировать url |
| seura.fi |
Henkilöt & viihde
|
Анализировать url |
| seura.fi |
Terveys
|
Анализировать url |
| seura.fi |
Horoskoopit
|
Анализировать url |
| seura.fi |
Tv-Maailma
|
Анализировать url |
| seura.fi |
Kolumnit
|
Анализировать url |
| kaksplus.fi |
<svg id="logo_kaksplus" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="186.721" height="40.844" viewbox="0 0 186.721 40.844">
<defs>
<clippath id="clip-path">
<rect id="Rectangle_13" data-name="Rectangle 13" width="186.721" height="40.844" fill="none"></rect>
</clippath>
</defs>
<g id="Group_3" data-name="Group 3" clip-path="url(#clip-path)">
<path id="Path_23" data-name="Path 23" d="M28.17,32.364c-3.629,0-7.047.017-10.464-.031-.28,0-.65-.394-.816-.694-1.9-3.423-3.772-6.863-5.653-10.3-.157-.287-.328-.568-.543-.939-.994.988-1.911,1.811-1.829,3.417.142,2.809.04,5.631.04,8.506H0V.143H8.851V10.692c.354-.372.533-.532.68-.718,2.406-3.053,4.818-6.1,7.2-9.173A1.673,1.673,0,0,1,18.224.06c3.224.036,6.449.016,9.923.016-.423.5-.721.869-1.03,1.226-3.3,3.822-6.59,7.656-9.926,11.449a1.062,1.062,0,0,0-.094,1.521q5.233,8.473,10.419,16.976c.187.305.362.618.654,1.116" transform="translate(0 -0.048)" fill="#1a1818"></path>
<path id="Path_24" data-name="Path 24" d="M509.749,64.259V75.191h-8.27V43.309h8.27V45.8a2.5,2.5,0,0,0,.438-.218c6.1-5.279,15.609-2.443,17.892,6.273a12.552,12.552,0,0,1-4.739,13.428,10.585,10.585,0,0,1-12.483-.18c-.313-.232-.62-.472-1.108-.843m9.82-9.2a4.939,4.939,0,0,0-4.747-5.122c-2.857-.022-4.744,1.933-4.786,4.959a4.78,4.78,0,1,0,9.533.163" transform="translate(-401.3 -34.348)" fill="#1a1818"></path>
<path id="Path_25" data-name="Path 25" d="M263.565,32.613V.416h8.706V16.6l.205.067q1.524-1.874,3.048-3.749c.879-1.084,1.739-2.184,2.648-3.243a1.373,1.373,0,0,1,.881-.484c3.159-.025,6.318,0,9.478.013.05,0,.1.062.245.157-1.548,1.6-3.082,3.2-4.619,4.785-1.2,1.242-2.387,2.5-3.624,3.708a.946.946,0,0,0-.145,1.431c2.594,4.095,5.143,8.219,7.705,12.334.174.28.34.564.57.944-.319.034-.562.083-.8.083-2.661.005-5.322-.015-7.982.017a1.188,1.188,0,0,1-1.234-.739c-1.333-2.555-2.711-5.086-4.123-7.719-1.249,1.124-2.547,2.015-2.282,3.995a33.889,33.889,0,0,1,.037,4.412Z" transform="translate(-210.914 -0.333)" fill="#1a1818"></path>
<path id="Path_26" data-name="Path 26" d="M728.928,44.41V67.82h-8.472l-.353-2.205c-.269.2-.458.316-.624.461A9.472,9.472,0,0,1,710.154,68c-3.121-.87-4.626-3.163-5.16-6.2a17.2,17.2,0,0,1-.249-2.87c-.025-4.516-.012-9.032-.01-13.548,0-.292.031-.584.051-.93h9.139V45.5c0,3.653-.01,7.305.009,10.958a12.716,12.716,0,0,0,.2,2.273c.266,1.415.93,2.11,1.95,2.185a3,3,0,0,0,3.252-1.777,7.84,7.84,0,0,0,.394-2.431c.04-3.752.018-7.5.018-11.256V44.41Z" transform="translate(-563.949 -35.538)" fill="#1a1818"></path>
<path id="Path_27" data-name="Path 27" d="M138.112,43.21a20.146,20.146,0,0,1,14.6-1.935c3.738.881,6.015,3.6,6.422,7.593.235,2.3.2,4.637.225,6.958.034,2.982.008,5.964.008,9.009H151l-.288-2.082c-.5.4-.944.78-1.407,1.126-4.372,3.266-10.467,1.366-11.825-3.682-1.246-4.634,1.29-8.608,6.154-9.405a53.431,53.431,0,0,1,5.661-.343c.328-.018.656-.051.968-.076.559-1.354-.633-2.829-1.953-3.189a10.313,10.313,0,0,0-5.981.3c-.752.242-1.469.59-2.281.922l-1.933-5.194m12.4,11.57a34.771,34.771,0,0,0-4.5,1.01A1.986,1.986,0,0,0,145.281,59a3.215,3.215,0,0,0,3.778.367c.558-.342,1.247-.844,1.391-1.4a14.082,14.082,0,0,0,.062-3.193" transform="translate(-109.762 -32.561)" fill="#1a1818"></path>
<path id="Path_28" data-name="Path 28" d="M386.438,63.468l3.138-5.117a33.228,33.228,0,0,0,4.3,2.017,13.726,13.726,0,0,0,4,.446c.472,0,1.308-.557,1.331-.9a1.944,1.944,0,0,0-.879-1.473,18.677,18.677,0,0,0-2.854-1.123c-1.394-.523-2.831-.955-4.173-1.587-4.5-2.12-4.506-9.3-.268-11.734a13.358,13.358,0,0,1,7.4-1.587,14.87,14.87,0,0,1,8.237,2.876l-2.394,4.76c-1.8-.619-3.494-1.268-5.229-1.766a5.925,5.925,0,0,0-2.362-.115,1.544,1.544,0,0,0-1.052.867c-.1.278.263.884.583,1.1a11.693,11.693,0,0,0,2.136,1.028c1.691.678,3.455,1.2,5.085,2,5.54,2.717,4.144,8.85,1.161,11.347a9.266,9.266,0,0,1-5.817,2.258,19.339,19.339,0,0,1-11.106-2.465c-.392-.24-.766-.507-1.238-.821" transform="translate(-309.241 -33.921)" fill="#1a1818"></path>
<path id="Path_29" data-name="Path 29" d="M851.546,45.434l-2.588,5.119a15.275,15.275,0,0,0-6.294-2.076,4.248,4.248,0,0,0-1.567.127c-.88.277-1.066,1.132-.314,1.657a14.8,14.8,0,0,0,2.555,1.277c1.966.864,4.014,1.57,5.9,2.579a5.019,5.019,0,0,1,2.68,4.2,7.784,7.784,0,0,1-6.3,8.46,18.378,18.378,0,0,1-13.591-2.442,5.753,5.753,0,0,1-.485-.348,2.782,2.782,0,0,1-.262-.292l3.1-5.071c1.212.627,2.35,1.293,3.55,1.816a6.947,6.947,0,0,0,4.829.678c.485-.143,1.21-.565,1.236-.9a1.852,1.852,0,0,0-.8-1.418,15.875,15.875,0,0,0-2.655-1.079c-1.487-.559-3.028-1-4.458-1.679-4.522-2.142-4.542-9.479-.071-11.824a14.294,14.294,0,0,1,11.317-.708,36.36,36.36,0,0,1,4.222,1.931" transform="translate(-665.22 -34.147)" fill="#1a1818"></path>
<rect id="Rectangle_12" data-name="Rectangle 12" width="8.627" height="32.169" transform="translate(128.89 0)" fill="#1a1818"></rect>
</g>
</svg>
|
Анализировать url |
| kaksplus.fi |
Vauvahaaveet
|
Анализировать url |
Конкуренты Готовность: 0%
Конкуренты в Яндексе
Кол-во: 0
Топ сайтов-конкурентов в Яндексе
?
Сайты, чаще всего появляющиеся в ТОПе Яндекса по запросам из семантического ядра этой страницы.
Мы не нашли у вас конкурентов в Яндексе. Сайт или очень молодой или плохо продвигается.
Конкурентов в ТОП-10 Яндекса не нашлось.
Конкуренты в Google
Кол-во: 0
Топ сайтов-конкурентов в Google
?
Сайты, чаще всего появляющиеся в ТОПе Google по запросам из семантического ядра этой страницы.
Конкуренты в Google тоже не найдены. Займитесь продвижением сайта!
Конкурентов в ТОП-10 Google не нашлось.
ЗоЗПП: права потребителей Готовность: 100%
Нарушения
Не выявлены
Признаков дистанционной продажи товаров (интернет-магазина) не обнаружено — требования ЗоЗПП о раскрытии информации продавца к сайту не применяются. Нарушений нет.
ФЗ-149: рекомендательные технологии Готовность: 100%
Нарушения
Не выявлены
Рекомендательные блоки («с этим покупают», «похожие товары» и т.п.) на сайте не обнаружены — требования ст. 10.7 ФЗ-149 к сайту не применяются. Нарушений нет.
ФЗ-38: реклама Готовность: 100%
Нарушения
Не выявлены
Рекламных тематик с обязательными оговорками (медицина, БАД, кредиты и займы, новостройки) на сайте не обнаружено. Нарушений нет.
ФЗ-436: защита детей Готовность: 100%
Нарушения
Не выявлены
Признаков информационной продукции (новости, видео, книги, игры, курсы) не обнаружено — обязательная возрастная маркировка по ФЗ-436 сайту не требуется. Нарушений нет.
Вердикт
Анализ сайта dekolehti.fi, слабо оптимизирован на 44%. Для хорошей оптимизации и выхода на первые места в поиске требуется:
Исправьте ошибки в мета-тегах.
Исправьте ошибки оптимизации.
Исправьте ошибки индексации.
Поделитесь с друзьями: