{"id":88773,"date":"2025-05-07T13:21:24","date_gmt":"2025-05-07T10:21:24","guid":{"rendered":"https:\/\/www.almamedia.fi\/mainostajat\/?page_id=88773"},"modified":"2026-03-10T13:36:11","modified_gmt":"2026-03-10T11:36:11","slug":"ohjelmallisen-mainonnan-helpcenter","status":"publish","type":"page","link":"https:\/\/www.almamedia.fi\/mainostajat\/ohjelmallinen-mainonta\/ohjelmallisen-mainonnan-helpcenter\/","title":{"rendered":"Ohjelmallisen mainonnan Helpcenter"},"content":{"rendered":"\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div style=\"--right-column-max-width:500px;--left-column-max-width:850px\" class=\"wp-block-netello-kaksi-palstaa\"><div class=\"wrapper\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:70%\">\n<div class=\"wp-block-group column-inner-left has-medium-font-size\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"has-medium-font-size\">T\u00e4lle sivulle olemme koonneet ohjelmallisen mainonnan ostajaa arjessa helpottavia ty\u00f6kaluja ja informaatiota. Eik\u00f6 ohjelmallinen mainonta l\u00e4hde k\u00e4yntiin? Tarvitsetko lis\u00e4tietoa k\u00e4ytett\u00e4vist\u00e4 j\u00e4rjestelmist\u00e4 tai diileist\u00e4? Eip\u00e4 h\u00e4t\u00e4\u00e4, tutustu sivun sis\u00e4lt\u00f6\u00f6n tai ota yhteytt\u00e4 ohjelmallisen tiimiin!<\/p>\n\n\n\n<p>Jos et l\u00f6yd\u00e4 alta suoraan vastausta kysymykseesi, kannattaa vilkaista my\u00f6s&nbsp;perustiedot ohjelmallisen tuotteista.<\/p>\n<\/div><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:30%\">\n<div class=\"wp-block-group column-inner\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-netello-laatikko-viivalla laatikko-viivalla line-vaalea\"><div class=\"netello-line netello-line-animated\"><\/div>\n<p class=\"has-medium-font-size\"><strong>Hypp\u00e4\u00e4 osioon<\/strong><\/p>\n\n\n\n<p><a href=\"#Diilien trouble shooting\">Diilien trouble shooting \u203a<\/a><br><a href=\"#J\u00e4rjestelm\u00e4kohtaiset huomiot\">J\u00e4rjestelm\u00e4kohtaiset huomiot \u203a<\/a><br><a href=\"#RTB (Real Time Bidding) -diilit\">RTB (Real Time Bidding) -diilit \u203a<\/a><br><a href=\"#PG (Programmatic Guaranteed) -diilit\">PG (Programmatic Guaranteed) -diilit \u203a<\/a><br><br><\/p>\n<\/div>\n<\/div><\/div>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h2 class=\"wp-block-heading\" id=\"Yleiset-tiedot-Alman-ohjelmallisen-mainonnan-ekosysteemist\u00e4\">Yleiset tiedot Alman ohjelmallisen mainonnan ekosysteemist\u00e4<\/h2>\n\n\n\n<p>Alman SSP: Xandr (Appnexus)<br>Auction type: 1st price auction<br><br>Ostaessasi ohjelmallista suosittelemme diilien k\u00e4ytt\u00e4mist\u00e4. Alman ohjelmallisen tuotteistus ja rakenne ovat parhaiten ja monipuolisimmin hy\u00f6dynnett\u00e4viss\u00e4 diileill\u00e4. Pystymme tarjoamaan parhaiten tukea ongelmatilanteissa sek\u00e4 antamaan vinkkej\u00e4 ja raportoimaan, mik\u00e4li ostot on tehty diileill\u00e4 avoimen huutokaupan sijaan.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h2 class=\"wp-block-heading\">Ohjelmallisen mainoksen esikatselu<\/h2>\n\n\n\n<!-- Programmatic Preview Widget -->\n<div id=\"programmatic-preview-widget\" class=\"ppw\">\n  <form id=\"ppwForm\" class=\"ppw__form\" novalidate>\n    <div class=\"ppw__field\">\n      <label class=\"ppw__label\" for=\"ppwAdId\">Luovan aineiston Xandr Creative ID:<\/label>\n      <input\n        id=\"ppwAdId\"\n        name=\"adId\"\n        type=\"text\"\n        inputmode=\"numeric\"\n        autocomplete=\"off\"\n        required\n      \/>\n    <\/div>\n\n    <fieldset class=\"ppw__fieldset\" aria-labelledby=\"ppwDesktopLegend\">\n      <legend id=\"ppwDesktopLegend\" class=\"ppw__legend\">Desktop-mainosmuodot<\/legend>\n\n      <label class=\"ppw__radio\">\n        <input id=\"ppwParaatitapetti\" name=\"mainosmuoto\" type=\"radio\" value=\"leaderboard-1:\" required \/>\n        <span>Paraati + tapetti<\/span>\n      <\/label>\n\n      <label class=\"ppw__radio\">\n        <input id=\"ppwParade\" name=\"mainosmuoto\" type=\"radio\" value=\"leaderboard-1:\" \/>\n        <span>980&#215;400, 980&#215;552, 980&#215;600, 980&#215;120<\/span>\n      <\/label>\n\n      <label class=\"ppw__radio\">\n        <input id=\"ppwSkyscraperD\" name=\"mainosmuoto\" type=\"radio\" value=\"content-2:\" \/>\n        <span>300&#215;300, 300&#215;431, 300&#215;250, 300&#215;600, 620&#215;891, 468&#215;400, Natiivi<\/span>\n      <\/label>\n\n      <label class=\"ppw__radio\">\n        <input id=\"ppwOutstream\" name=\"mainosmuoto\" type=\"radio\" value=\"content-2:\" \/>\n        <span>Outstream<\/span>\n      <\/label>\n\n      <label class=\"ppw__radio\">\n        <input id=\"ppwSkins\" name=\"mainosmuoto\" type=\"radio\" value=\"leaderboard-1:\" \/>\n        <span>Desktop Fluid ja Seamless Skins<\/span>\n      <\/label>\n\n      <label class=\"ppw__radio\">\n        <input id=\"ppwInline\" name=\"mainosmuoto\" type=\"radio\" value=\"content-2:\" \/>\n        <span>Desktop Inline<\/span>\n      <\/label>\n\n      <label class=\"ppw__radio\">\n        <input id=\"ppwTopscrollD\" name=\"mainosmuoto\" type=\"radio\" value=\"interstitial-1:\" \/>\n        <span>Desktop Topscroll<\/span>\n      <\/label>\n\n      <label class=\"ppw__radio\">\n        <input id=\"ppwTelkku\" name=\"mainosmuoto\" type=\"radio\" value=\"content-2:\" data-base=\"https:\/\/www.iltalehti.fi\/telkku?ast_override_div=almad-\" \/>\n        <span>Desktop Midscroll Telkku<\/span>\n      <\/label>\n    <\/fieldset>\n\n    <fieldset class=\"ppw__fieldset\" aria-labelledby=\"ppwMobileLegend\">\n      <legend id=\"ppwMobileLegend\" class=\"ppw__legend\">Mobiilimainosmuodot<\/legend>\n\n      <label class=\"ppw__radio\">\n        <input id=\"ppwTopscrollM\" name=\"mainosmuoto\" type=\"radio\" value=\"interstitial-1:\" data-mobile=\"true\" \/>\n        <span>Mobile Topscroll<\/span>\n      <\/label>\n\n      <label class=\"ppw__radio\">\n        <input id=\"ppwMidscrollM\" name=\"mainosmuoto\" type=\"radio\" value=\"content-2:\" data-mobile=\"true\" \/>\n        <span>Mobile Midscroll ja Mobile Double Midscroll<\/span>\n      <\/label>\n\n      <label class=\"ppw__radio\">\n        <input id=\"ppwSkyscraperM\" name=\"mainosmuoto\" type=\"radio\" value=\"content-2:\" data-mobile=\"true\" \/>\n        <span>300&#215;300, 300&#215;431, 300&#215;250, 300&#215;600, 620&#215;891, 468&#215;400, Natiivi<\/span>\n      <\/label>\n    <\/fieldset>\n\n    <div class=\"ppw__actions\">\n      <button class=\"ppw__button\" type=\"submit\">Luo esikatselulinkki<\/button>\n    <\/div>\n\n    <div id=\"ppwError\" class=\"ppw__error\" role=\"alert\" aria-live=\"polite\" hidden><\/div>\n  <\/form>\n\n  <div class=\"ppw__outputs\" aria-live=\"polite\">\n    <div id=\"ppwLink\"><\/div>\n    <div id=\"ppwQr\"><\/div>\n    <p class=\"ppw__hint\">Voit pyyt\u00e4\u00e4 Xandr Creative ID:t\u00e4 DSP:si tuesta.<\/p>\n  <\/div>\n<\/div>\n\n<!-- QRCode.js (CDN) -->\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/qrcodejs\/1.0.0\/qrcode.min.js\" referrerpolicy=\"no-referrer\"><\/script>\n\n<style>\n  \/* Scoped styles: only affect the widget *\/\n  .ppw {\n    border-radius: 6px;\n    padding: 16px;\n  }\n\n  .ppw__title {\n    margin: 0 0 12px;\n  }\n\n  .ppw__field {\n    margin-bottom: 12px;\n  }\n\n  .ppw__label {\n    display: inline-block;\n    margin-bottom: 6px;\n    font-size: 1rem;\n    font-weight: 600;\n  }\n\n  .ppw input[type=\"text\"] {\n    width: 100%;\n    max-width: 360px;\n  }\n\n  .ppw__fieldset {\n    border: 1px solid #ddd;\n    border-radius: 6px;\n    padding: 12px;\n    margin: 12px 0;\n  }\n\n  .ppw__legend {\n    padding: 0 6px;\n    font-weight: 700;\n  }\n\n  .ppw__radio {\n    display: flex;\n    gap: 10px;\n    align-items: flex-start;\n    margin: 8px 0;\n    font-size: 0.95rem;\n  }\n\n  .ppw__radio input {\n    margin-top: 3px;\n  }\n\n  .ppw__actions {\n    margin-top: 12px;\n  }\n\n  .ppw__button {\n    border-radius: 4px;\n    padding: 10px 14px;\n    text-decoration: none;\n    display: inline-block;\n    cursor: pointer;\n  }\n\n  .ppw__outputs {\n    margin-top: 16px;\n  }\n\n  .ppw__error {\n    margin-top: 10px;\n  }\n\n  #ppwQr canvas,\n  #ppwQr img {\n    margin-top: 8px;\n  }\n\n  .ppw__hint {\n    margin-top: 8px;\n  }\n<\/style>\n\n<script>\n  (() => {\n    const BASE_DEFAULT = \"https:\/\/www.iltalehti.fi\/?ast_override_div=almad-\";\n\n    function $(id) {\n      return document.getElementById(id);\n    }\n\n    function setError(el, msg) {\n      el.textContent = msg || \"\";\n      el.hidden = !msg;\n    }\n\n    function buildFinalUrl(selectedRadio, xandrIdRaw) {\n      const xandrId = (xandrIdRaw || \"\").replace(\/\\s+\/g, \"\");\n      const base = selectedRadio?.dataset?.base || BASE_DEFAULT;\n      const format = selectedRadio?.value || \"\";\n      return `${base}${format}${encodeURIComponent(xandrId)}&programmatic_override`;\n    }\n\n    function renderLink(container, url) {\n      container.innerHTML = \"\";\n      const a = document.createElement(\"a\");\n      a.className = \"ppw__button\";\n      a.href = url;\n      a.target = \"_blank\";\n      a.rel = \"noopener noreferrer\";\n      a.textContent = \"Esikatsele mainostasi\";\n      container.appendChild(a);\n    }\n\n    function renderQr(container, selectedRadio, url) {\n      container.innerHTML = \"\";\n\n      const isMobile = selectedRadio?.dataset?.mobile === \"true\";\n      if (!isMobile) return;\n\n      const p = document.createElement(\"p\");\n      p.textContent = \"Preview mobile ad formats conveniently with a QR code:\";\n      container.appendChild(p);\n\n      new QRCode(container, {\n        text: url,\n        colorDark: \"#000000\",\n        colorLight: \"#ffffff\"\n      });\n    }\n\n    document.addEventListener(\"DOMContentLoaded\", () => {\n      const form = $(\"ppwForm\");\n      const adId = $(\"ppwAdId\");\n      const err = $(\"ppwError\");\n      const link = $(\"ppwLink\");\n      const qr = $(\"ppwQr\");\n\n      form.addEventListener(\"submit\", (e) => {\n        e.preventDefault();\n        setError(err, \"\");\n\n        const selected = form.querySelector('input[name=\"mainosmuoto\"]:checked');\n\n        if (!selected) {\n          setError(err, \"Valitse ensin mainosmuoto.\");\n          form.querySelector('input[name=\"mainosmuoto\"]')?.focus();\n          return;\n        }\n\n        if (!adId.value.trim()) {\n          setError(err, \"Lis\u00e4\u00e4 Xandr Creative ID.\");\n          adId.focus();\n          return;\n        }\n\n        const url = buildFinalUrl(selected, adId.value);\n        renderLink(link, url);\n        renderQr(qr, selected, url);\n      });\n    });\n  })();\n<\/script>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:125px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wrapper\">\n<h2 class=\"wp-block-heading\">Diilipyynt\u00f6lomake<\/h2>\n\n\n\n<p>Puuttuuko sinulta diilej\u00e4? Autamme niiden kanssa mielell\u00e4mme! T\u00e4yt\u00e4 t\u00e4st\u00e4 lomake niin laitamme diilit tulemaan.<\/p>\n<p><\/p>\n\n\n<style>\n  \/* ---- Diilipyynt\u00f6lomakkeen linjaus & spacing ---- *\/\n  .diilipyyntolomake {\n    \/* varmistetaan, ettei ymp\u00e4rist\u00f6 pakota sisennyksi\u00e4 *\/\n    padding-left: 0;\n  }\n\n  .diilipyyntolomake h3 {\n    margin: 0 0 0.75rem 0;          \/* otsikko samaan linjaan *\/\n  }\n\n  .diilipyyntolomake form {\n    margin: 0;\n  }\n\n  \/* Yhten\u00e4iset kentt\u00e4blokit *\/\n  .diilipyyntolomake form label,\n  .diilipyyntolomake form select,\n  .diilipyyntolomake form input[type=\"text\"],\n  .diilipyyntolomake form input[type=\"email\"],\n  .diilipyyntolomake form textarea,\n  .diilipyyntolomake form button {\n    display: block;\n    width: 100%;\n    box-sizing: border-box;         \/* reuna\/padding ei siirr\u00e4 linjaa *\/\n  }\n\n  \/* Poistetaan aiempien globaalien tyylien aiheuttama sisennys *\/\n  .diilipyyntolomake form label {\n    margin: 0 0 0.25rem 0;          \/* vasen marginaali nollaan *\/\n    font-weight: 600;               \/* selke\u00e4 label, mutta teema s\u00e4ilyy *\/\n  }\n\n  \/* Kenttien v\u00e4lit *\/\n  .diilipyyntolomake #dspSelect,\n  .diilipyyntolomake #seatId,\n  .diilipyyntolomake #dealRequest,\n  .diilipyyntolomake #senderEmail {\n    margin: 0 0 1rem 0;             \/* s\u00e4\u00e4nn\u00f6llinen pystysv\u00e4li *\/\n  }\n\n  \/* Nappi voi olla teeman button-tyyleill\u00e4; varmistetaan, ettei se sisenny *\/\n  .diilipyyntolomake form button[type=\"submit\"] {\n    width: auto;                    \/* nappi ei ole pakotettu 100% leve\u00e4ksi *\/\n    margin: 0.5rem 0 0 0;\n  }\n\n  \/* ---- DSP-selectin vaalea punainen teema ----\n     K\u00e4ytet\u00e4\u00e4n ensin teeman globaaleja v\u00e4rej\u00e4 jos saatavilla,\n     muuten fallback: #f3c1cf (vaalea pinkinpunainen).\n     Voit vaihtaa fallbackin haluttuun heksaan. *\/\n  :root {\n    --deal-accent: var(--wp--preset--color--primary, #f3c1cf);\n    \/* vaihtoehtoisesti: var(--global--color-primary); jos teema tukee *\/\n  }\n\n  .diilipyyntolomake #dspSelect {\n    background-color: color-mix(in srgb, var(--deal-accent) 25%, transparent);\n    border: 1px solid color-mix(in srgb, var(--deal-accent) 55%, #0000);\n    \/* Tekstin v\u00e4ri sointumaan; teema voi yliajaa *\/\n    color: inherit;\n    \/* Parempi kontrasti fokuksessa *\/\n    outline: none;\n  }\n\n  .diilipyyntolomake #dspSelect:focus {\n    border-color: var(--deal-accent);\n    box-shadow: 0 0 0 3px color-mix(in srgb, var(--deal-accent) 35%, transparent);\n  }\n\n  \/* Safari\/Chromium: nuolen taustaa ei aina voi v\u00e4ritt\u00e4\u00e4, mutta t\u00e4m\u00e4 auttaa *\/\n  .diilipyyntolomake #dspSelect {\n    -webkit-appearance: none;\n       -moz-appearance: none;\n            appearance: none;\n    background-image:\n      linear-gradient(45deg, transparent 50%, currentColor 50%),\n      linear-gradient(135deg, currentColor 50%, transparent 50%),\n      linear-gradient(to right, transparent, transparent);\n    background-position:\n      calc(100% - 18px) 50%,\n      calc(100% - 12px) 50%,\n      0 0;\n    background-size:\n      6px 6px,\n      6px 6px,\n      100% 100%;\n    background-repeat: no-repeat;\n    padding-right: 28px; \/* tilaa nuolelle *\/\n    border-radius: .25rem; \/* pehme\u00e4 kulma, teema voi yliajaa *\/\n  }\n\n  \/* Jos teema k\u00e4ytt\u00e4\u00e4 form-kentille sis\u00e4ist\u00e4 paddingia, varmistetaan linja *\/\n  .diilipyyntolomake input,\n  .diilipyyntolomake textarea,\n  .diilipyyntolomake select {\n    padding-left: 0.75rem; \/* yhten\u00e4inen sis\u00e4tyhj\u00e4 *\/\n    padding-right: 0.75rem;\n  }\n\n  \/* Palauteteksti tasattuna *\/\n  .diilipyyntolomake #dealFormStatus {\n    margin: 0.75rem 0 0 0;\n  }\n\n  \/* Pieni responsiivinen parannus *\/\n  @media (min-width: 640px) {\n    .diilipyyntolomake form button[type=\"submit\"] {\n      \/* j\u00e4t\u00e4 napille luonnollinen koko ja linja *\/\n    }\n  }\n\n.diilipyyntolomake select option {\n    background-color: #f3c1cf; \/* vaalea punainen \u2013 sama kuin select-taustassa *\/\n    color: #000; \/* tai inherit, riippuen teemasta *\/\n}\n<\/style>\n  <form id=\"dealRequestForm\" novalidate>\n    <!-- DSP-valinta -->\n    <label for=\"dspSelect\">Valitse k\u00e4ytt\u00e4m\u00e4si DSP:<\/label><br>\n    <select id=\"dspSelect\" name=\"dsp\" required>\n      <option value=\"\">Valitse&#8230;<\/option>\n      <option value=\"Adform\">Adform<\/option>\n      <option value=\"DV360\">DV360<\/option>\n      <option value=\"The TradeDesk\">The TradeDesk<\/option>\n      <option value=\"Muu\">Muu<\/option>\n    <\/select>\n<br>\n\n    <!-- Seat ID -->\n    <label for=\"seatId\">Seat ID tai buyer ID:<\/label>\n    <input type=\"text\" id=\"seatId\" name=\"seatId\" required autocomplete=\"off\" \/>\n\n    <!-- Diilitoiveet -->\n    <label for=\"dealRequest\">Kuvaile toiveesi diilille (B2C\/B2B, kohdennukset, mainosmuodot):<\/label>\n    <textarea id=\"dealRequest\" name=\"dealRequest\" rows=\"5\" required><\/textarea>\n\n    <!-- S\u00e4hk\u00f6posti -->\n    <label for=\"senderEmail\">S\u00e4hk\u00f6postisi:<\/label>\n    <input type=\"email\" id=\"senderEmail\" name=\"senderEmail\" required autocomplete=\"email\" inputmode=\"email\" \/>\n\n    <!-- L\u00e4het\u00e4 -->\n    <button type=\"submit\">L\u00e4het\u00e4 pyynt\u00f6<\/button>\n\n    <!-- Palaute k\u00e4ytt\u00e4j\u00e4lle -->\n    <div id=\"dealFormStatus\" role=\"status\" aria-live=\"polite\" style=\"margin-top:10px;\"><\/div>\n  <\/form>\n<\/div>\n\n<script>\n(function start() {\n  function init() {\n    const form = document.getElementById(\"dealRequestForm\");\n    const statusEl = document.getElementById(\"dealFormStatus\");\n    if (!form) { console.warn(\"dealRequestForm ei l\u00f6ytynyt\"); return; }\n\n    form.addEventListener(\"submit\", async function (e) {\n      e.preventDefault();\n      statusEl.textContent = \"\";\n\n      const dsp = document.getElementById(\"dspSelect\").value;\n      const seatId = document.getElementById(\"seatId\").value.trim();\n      const dealReq = document.getElementById(\"dealRequest\").value.trim();\n      const senderEmail = document.getElementById(\"senderEmail\").value.trim();\n\n      \/\/ Perusvalidointi\n      if (!dsp || !seatId || !dealReq || !senderEmail) {\n        statusEl.textContent = \"T\u00e4yt\u00e4 kaikki kent\u00e4t.\";\n        return;\n      }\n\n      \/\/ K\u00e4yt\u00e4 shortcodella tuotua URL:ia ja noncea\n      const ajaxUrl = window.wpAjaxUrl || \"\/wp-admin\/admin-ajax.php\";\n      const params = new URLSearchParams({\n        action: \"send_deal_request\",\n        dsp,\n        seatId,\n        dealReq,                 \/\/ HUOM: t\u00e4m\u00e4 avain on 'dealReq' (PHP lukee t\u00e4m\u00e4n nimen)\n        senderEmail,\n        nonce: window.dealNonce || \"\"\n      });\n\n      try {\n        const resp = await fetch(ajaxUrl, {\n          method: \"POST\",\n          headers: {\n            \"Content-Type\": \"application\/x-www-form-urlencoded\",\n            \"X-Requested-With\": \"XMLHttpRequest\" \/\/ auttaa monia WAF-suojauskerroksia hyv\u00e4ksym\u00e4\u00e4n pyynn\u00f6n\n          },\n          credentials: \"same-origin\",            \/\/ l\u00e4het\u00e4 ev\u00e4steet (WordPress tunnistaa istunnon)\n          body: params\n        });\n\n        const raw = await resp.text();\n        let data = null;\n        try { data = JSON.parse(raw); } catch(e) {}\n\n        if (resp.ok && data && data.success) {\n          statusEl.textContent = data.data?.message || \"Diilipyynt\u00f6 l\u00e4hetetty onnistuneesti!\";\n          form.reset();\n        } else {\n          const msg = (data && (data.message || data.data?.message)) || raw || \"L\u00e4hetys ep\u00e4onnistui.\";\n          statusEl.textContent = msg;\n          console.warn(\"AJAX error\", {status: resp.status, body: raw});\n        }\n      } catch (err) {\n        statusEl.textContent = \"Verkkovirhe. Yrit\u00e4 uudelleen.\";\n        console.error(err);\n      }\n    });\n\n    console.log(\"Submit handler kiinnitetty\");\n  }\n\n  \/\/ varmista, ett\u00e4 init ajetaan vaikka skripti injektoidaan DOMContentLoaded:n j\u00e4lkeen\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", init);\n  } else {\n    init();\n  }\n})();\n<\/script>\n<p><\/p>\n\n\n<div style=\"height:125px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div  class=\"anchor-link\">\n    <a id=\"Diilien trouble shooting\" class=\"ankkurilinkki\"><\/a>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Diilien trouble shooting<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Yleinen ohje, joka p\u00e4tee usein:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ostoj\u00e4rjestelm\u00e4 vastaa mainoskutsuihin (eli l\u00e4hett\u00e4\u00e4 bid responseja), mutta ostoja ei tule: Ongelma on yleens\u00e4 myyj\u00e4n (SSP) puolella<\/li>\n\n\n\n<li>Ostoj\u00e4rjestelm\u00e4 ei vastaa mainoskutsuihin (eli bid responseja ei edes l\u00e4hde): Ongelma on yleens\u00e4 ostajan (DSP) kampanja-asetuksissa<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Kun line item &#8221;ei bidaa&#8221; eli bid responseja ei l\u00e4hde:<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Tarkista Transparency &amp; Consent Frameworkiin sek\u00e4 Brand Safetyyn liittyv\u00e4t asiat.<br><a href=\"https:\/\/www.almamedia.fi\/mainostajat\/transparency-and-consent-framework\/\"><strong>Lue lis\u00e4\u00e4 &gt;&gt;<\/strong><\/a><\/li>\n\n\n\n<li>Huomioi my\u00f6s alla olevat asetukset ostoj\u00e4rjestelm\u00e4ss\u00e4:<\/li>\n\n\n\n<li>Varmista, ett\u00e4 ostoalgoritmin asetuksilla on mahdollista bidata (esim. CPC-optimoinnissa on tarpeeksi klikkidataa taustalla)<\/li>\n\n\n\n<li>Inventaarin l\u00e4hde on oikea (Appnexus tai Xandr)<\/li>\n\n\n\n<li>Diili on luotu oikealle DSP:n Seat ID:lle<\/li>\n\n\n\n<li>Bidi on oikeassa valuutassa ja ottaa huomioon floor-hinnan sek\u00e4 muut mahdolliset kustannukset (DSP fee, data jne.)<\/li>\n\n\n\n<li>Tarkista, etteiv\u00e4t kampanjan tiukat yleis\u00f6-, geo-, aika- tai retargeting-kohdennukset rajaa bidaamista<\/li>\n\n\n\n<li>Tarkista domain-kohdennukset ja mahdolliset sallittujen tai estettyjen sivustojen listaukset<\/li>\n<\/ol>\n\n\n\n<div style=\"height:49px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><\/p>\n\n\n<div  class=\"anchor-link\">\n    <a id=\"J\u00e4rjestelm\u00e4kohtaiset huomiot\" class=\"ankkurilinkki\"><\/a>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">J\u00e4rjestelm\u00e4kohtaiset huomiot<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Huomioithan, ett\u00e4 useat DV360-ostoj\u00e4rjestelm\u00e4n tarjoamat yleis\u00f6kohdentamisen vaihtoehdot toimivat rajallisesti Googlen j\u00e4rjestelmien ulkopuolella.<\/h3>\n\n\n\n<p>N\u00e4iden kohdennusten k\u00e4ytt\u00e4minen voi est\u00e4\u00e4 bidaamisen kokonaan muissa kuin Google Ad Managerin kautta ostetussa inventaarissa. Suosittelemme n\u00e4iss\u00e4 tapauksissa, ett\u00e4 Googlen datan sijaan yhdist\u00e4mme diileihin Alman verkkok\u00e4vij\u00f6ist\u00e4 ker\u00e4tty\u00e4 1st party -kohdennusdataa (demografiadata ja kiinnostusalueet).<\/p>\n\n\n\n<p>Kysy lis\u00e4\u00e4&nbsp;<a href=\"ma&#105;&#108;&#x74;&#x6f;&#x3a;&#x70;ro&#103;&#114;&#x61;&#x6d;&#x6d;&#x61;ti&#99;&#64;&#97;&#x6c;&#x6d;&#x61;&#x6d;ed&#105;&#97;&#x2e;&#x66;&#x69;\">&#x70;&#114;&#111;g&#x72;&#x61;&#109;m&#x61;&#x74;&#105;c&#64;&#x61;&#108;&#109;a&#x6d;&#x65;&#100;i&#x61;&#x2e;&#102;&#105;<\/a><\/p>\n\n\n\n<figure class=\"wp-block-table is-style-regular\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Google Data<\/th><th><\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\">Third Party Audience<\/td><td>Kohdentaminen toimii kaikissa inventaarin l\u00e4hteiss\u00e4<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">Geography<\/td><td>Kohdentaminen toimii kaikissa inventaarin l\u00e4hteiss\u00e4<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">Day and Time<\/td><td>Kohdentaminen toimii kaikissa inventaarin l\u00e4hteiss\u00e4<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">Installed App Category<\/td><td>Kohdentaminen toimii kaikissa inventaarin l\u00e4hteiss\u00e4<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">New Mobile Device<\/td><td>Kohdentaminen toimii kaikissa inventaarin l\u00e4hteiss\u00e4<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">Demographics<\/td><td>Yleis\u00f6datan k\u00e4ytett\u00e4vyys on rajoittunutta Ad Managerin ulkopuolella*<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">Custom Affinity<\/td><td>Yleis\u00f6datan k\u00e4ytett\u00e4vyys on rajoittunutta Ad Managerin ulkopuolella*<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">PalstaboksiAffinity<\/td><td>Yleis\u00f6datan k\u00e4ytett\u00e4vyys on rajoittunutta Ad Managerin ulkopuolella*<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">Similar\/Lookalike<\/td><td>Yleis\u00f6datan k\u00e4ytett\u00e4vyys on rajoittunutta Ad Managerin ulkopuolella*<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">In-Market<\/td><td>Yleis\u00f6datan k\u00e4ytett\u00e4vyys on rajoittunutta Ad Managerin ulkopuolella*<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">Custom Intent<\/td><td>K\u00e4ytt\u00f6 mahdollista vain Ad Managerin inventaarissa<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"has-small-font-size\">*Google suosittelee 1st party datan k\u00e4ytt\u00f6\u00e4 Ad Managerin ulkopuolella.<\/p>\n\n\n\n<div style=\"height:49px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><\/p>\n\n\n<div  class=\"anchor-link\">\n    <a id=\"RTB (Real Time Bidding) -diilit\" class=\"ankkurilinkki\"><\/a>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">PMP eli Private Marketplace -diilit<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Alman diilit luodaan Xandrin SSP:hen ostajan seat ID:n avulla<\/li>\n\n\n\n<li>Diilit otetaan k\u00e4ytt\u00f6\u00f6n DSP:ss\u00e4 manuaalisesti Alman l\u00e4hett\u00e4m\u00e4n deal ID:n avulla<\/li>\n\n\n\n<li>Exchange: Appnexus (Xandr)<\/li>\n\n\n\n<li>Diili\u00e4 luotaessa valitse \u201cNew non-guaranteed inventory\u201d + inventory type: private auction<\/li>\n<\/ul>\n\n\n\n<div style=\"height:49px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div  class=\"anchor-link\">\n    <a id=\"PG (Programmatic Guaranteed) -diilit\" class=\"ankkurilinkki\"><\/a>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">PG (Programmatic Guaranteed) -diilit<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>PG-diileill\u00e4 on mahdollista ostaa takuuinventaaria. Kysy lis\u00e4\u00e4 prog&#114;&#97;&#109;&#109;&#97;&#x74;&#x69;&#x63;&#x40;&#x61;&#x6c;&#x6d;amed&#105;&#97;&#46;&#102;&#105;<\/li>\n\n\n\n<li>Tuetut mainosformaatit: display, natiivi, video<\/li>\n\n\n\n<li>Kohdentaminen: Alman 1st party data (demografiadata ja kiinnostusalueet)<\/li>\n\n\n\n<li>PG-diilit ovat kampanja- ja formaattikohtaisia<\/li>\n\n\n\n<li>PG-diili\u00e4 luotaessa valitse \u201dNew guaranteed inventory\u201d<\/li>\n\n\n\n<li>Exchange: Appnexus (Xandr)<\/li>\n<\/ul>\n\n\n\n<div style=\"height:49px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Yhteystiedot<\/h2>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:50%\"><div data-aos=\"fade-up\"         class=\"iso-otsikko has-align-center  has-font-size-xs\">\n\n    <h2 class=\"otsikko\">\n        \n            Ohjelmallisen tiimi\n            <\/h2>\n<\/div>\n\n\n\n<div class=\"wp-block-netello-container align-center\"><div class=\"wrapper\">\n<div style=\"height:8px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Etk\u00f6 l\u00f6yt\u00e4nyt ratkaisua ongelmaasi? Kaipaatko viel\u00e4 muuta apua?<\/p>\n\n\n\n<p><br><strong>Ota yhteytt\u00e4 ohjelmallisen tiimiin:<\/strong> <a href=\"m&#97;&#105;&#108;&#x74;&#x6f;&#x3a;pr&#111;&#103;&#x72;&#x61;&#x6d;&#x6d;at&#105;&#99;&#x40;&#x61;&#x6c;&#x6d;a&#109;&#101;&#100;&#x69;&#x61;&#x2e;fi\">&#112;&#x72;&#111;&#x67;&#114;&#x61;m&#x6d;a&#x74;i&#99;&#x40;&#97;&#x6c;&#109;&#x61;&#109;&#x65;d&#x69;a&#x2e;f&#105;<\/a><\/p>\n\n\n<\/div><\/div>\n<\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Yleiset tiedot Alman ohjelmallisen mainonnan ekosysteemist\u00e4 Alman SSP: Xandr (Appnexus)Auction type: 1st price auction Ostaessasi [&hellip;]<\/p>\n","protected":false},"author":105,"featured_media":88660,"parent":84383,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-88773","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Ohjelmallisen mainonnan Helpcenter - Alma Media - mainostajat<\/title>\n<meta name=\"description\" content=\"T\u00e4lle sivulle olemme koonneet ohjelmallisen mainonnan ostajaa arjessa helpottavia ty\u00f6kaluja ja informaatiota. Eik\u00f6 ohjelmallinen mainonta l\u00e4hde k\u00e4yntiin?\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.almamedia.fi\/mainostajat\/ohjelmallinen-mainonta\/ohjelmallisen-mainonnan-helpcenter\/\" \/>\n<meta property=\"og:locale\" content=\"fi_FI\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ohjelmallisen mainonnan Helpcenter - Alma Media - mainostajat\" \/>\n<meta property=\"og:description\" content=\"T\u00e4lle sivulle olemme koonneet ohjelmallisen mainonnan ostajaa arjessa helpottavia ty\u00f6kaluja ja informaatiota. Eik\u00f6 ohjelmallinen mainonta l\u00e4hde k\u00e4yntiin?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.almamedia.fi\/mainostajat\/ohjelmallinen-mainonta\/ohjelmallisen-mainonnan-helpcenter\/\" \/>\n<meta property=\"og:site_name\" content=\"Alma Media - mainostajat\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-10T11:36:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.almamedia.fi\/mainostajat\/wp-content\/uploads\/sites\/6\/shutterstock_2143201941-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2048\" \/>\n\t<meta property=\"og:image:height\" content=\"1365\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Arvioitu lukuaika\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minuuttia\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.almamedia.fi\/mainostajat\/ohjelmallinen-mainonta\/ohjelmallisen-mainonnan-helpcenter\/\",\"url\":\"https:\/\/www.almamedia.fi\/mainostajat\/ohjelmallinen-mainonta\/ohjelmallisen-mainonnan-helpcenter\/\",\"name\":\"Ohjelmallisen mainonnan Helpcenter - Alma Media - mainostajat\",\"isPartOf\":{\"@id\":\"https:\/\/www.almamedia.fi\/mainostajat\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.almamedia.fi\/mainostajat\/ohjelmallinen-mainonta\/ohjelmallisen-mainonnan-helpcenter\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.almamedia.fi\/mainostajat\/ohjelmallinen-mainonta\/ohjelmallisen-mainonnan-helpcenter\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.almamedia.fi\/mainostajat\/wp-content\/uploads\/sites\/6\/shutterstock_2143201941-scaled.jpg\",\"datePublished\":\"2025-05-07T10:21:24+00:00\",\"dateModified\":\"2026-03-10T11:36:11+00:00\",\"description\":\"T\u00e4lle sivulle olemme koonneet ohjelmallisen mainonnan ostajaa arjessa helpottavia ty\u00f6kaluja ja informaatiota. Eik\u00f6 ohjelmallinen mainonta l\u00e4hde k\u00e4yntiin?\",\"breadcrumb\":{\"@id\":\"https:\/\/www.almamedia.fi\/mainostajat\/ohjelmallinen-mainonta\/ohjelmallisen-mainonnan-helpcenter\/#breadcrumb\"},\"inLanguage\":\"fi\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.almamedia.fi\/mainostajat\/ohjelmallinen-mainonta\/ohjelmallisen-mainonnan-helpcenter\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fi\",\"@id\":\"https:\/\/www.almamedia.fi\/mainostajat\/ohjelmallinen-mainonta\/ohjelmallisen-mainonnan-helpcenter\/#primaryimage\",\"url\":\"https:\/\/www.almamedia.fi\/mainostajat\/wp-content\/uploads\/sites\/6\/shutterstock_2143201941-scaled.jpg\",\"contentUrl\":\"https:\/\/www.almamedia.fi\/mainostajat\/wp-content\/uploads\/sites\/6\/shutterstock_2143201941-scaled.jpg\",\"width\":2048,\"height\":1365},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.almamedia.fi\/mainostajat\/ohjelmallinen-mainonta\/ohjelmallisen-mainonnan-helpcenter\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Etusivu\",\"item\":\"https:\/\/www.almamedia.fi\/mainostajat\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ohjelmallinen mainonta\",\"item\":\"https:\/\/www.almamedia.fi\/mainostajat\/ohjelmallinen-mainonta\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Ohjelmallisen mainonnan Helpcenter\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.almamedia.fi\/mainostajat\/#website\",\"url\":\"https:\/\/www.almamedia.fi\/mainostajat\/\",\"name\":\"Alma Media - mainostajat\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.almamedia.fi\/mainostajat\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.almamedia.fi\/mainostajat\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fi\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.almamedia.fi\/mainostajat\/#organization\",\"name\":\"Alma Media - mainostajat\",\"url\":\"https:\/\/www.almamedia.fi\/mainostajat\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fi\",\"@id\":\"https:\/\/www.almamedia.fi\/mainostajat\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.almamedia.fi\/mainostajat\/wp-content\/uploads\/sites\/6\/alma-media-logo-valkoinen.svg\",\"contentUrl\":\"https:\/\/www.almamedia.fi\/mainostajat\/wp-content\/uploads\/sites\/6\/alma-media-logo-valkoinen.svg\",\"width\":49,\"height\":50,\"caption\":\"Alma Media - mainostajat\"},\"image\":{\"@id\":\"https:\/\/www.almamedia.fi\/mainostajat\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Ohjelmallisen mainonnan Helpcenter - Alma Media - mainostajat","description":"T\u00e4lle sivulle olemme koonneet ohjelmallisen mainonnan ostajaa arjessa helpottavia ty\u00f6kaluja ja informaatiota. Eik\u00f6 ohjelmallinen mainonta l\u00e4hde k\u00e4yntiin?","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.almamedia.fi\/mainostajat\/ohjelmallinen-mainonta\/ohjelmallisen-mainonnan-helpcenter\/","og_locale":"fi_FI","og_type":"article","og_title":"Ohjelmallisen mainonnan Helpcenter - Alma Media - mainostajat","og_description":"T\u00e4lle sivulle olemme koonneet ohjelmallisen mainonnan ostajaa arjessa helpottavia ty\u00f6kaluja ja informaatiota. Eik\u00f6 ohjelmallinen mainonta l\u00e4hde k\u00e4yntiin?","og_url":"https:\/\/www.almamedia.fi\/mainostajat\/ohjelmallinen-mainonta\/ohjelmallisen-mainonnan-helpcenter\/","og_site_name":"Alma Media - mainostajat","article_modified_time":"2026-03-10T11:36:11+00:00","og_image":[{"width":2048,"height":1365,"url":"https:\/\/www.almamedia.fi\/mainostajat\/wp-content\/uploads\/sites\/6\/shutterstock_2143201941-scaled.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Arvioitu lukuaika":"4 minuuttia"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.almamedia.fi\/mainostajat\/ohjelmallinen-mainonta\/ohjelmallisen-mainonnan-helpcenter\/","url":"https:\/\/www.almamedia.fi\/mainostajat\/ohjelmallinen-mainonta\/ohjelmallisen-mainonnan-helpcenter\/","name":"Ohjelmallisen mainonnan Helpcenter - Alma Media - mainostajat","isPartOf":{"@id":"https:\/\/www.almamedia.fi\/mainostajat\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.almamedia.fi\/mainostajat\/ohjelmallinen-mainonta\/ohjelmallisen-mainonnan-helpcenter\/#primaryimage"},"image":{"@id":"https:\/\/www.almamedia.fi\/mainostajat\/ohjelmallinen-mainonta\/ohjelmallisen-mainonnan-helpcenter\/#primaryimage"},"thumbnailUrl":"https:\/\/www.almamedia.fi\/mainostajat\/wp-content\/uploads\/sites\/6\/shutterstock_2143201941-scaled.jpg","datePublished":"2025-05-07T10:21:24+00:00","dateModified":"2026-03-10T11:36:11+00:00","description":"T\u00e4lle sivulle olemme koonneet ohjelmallisen mainonnan ostajaa arjessa helpottavia ty\u00f6kaluja ja informaatiota. Eik\u00f6 ohjelmallinen mainonta l\u00e4hde k\u00e4yntiin?","breadcrumb":{"@id":"https:\/\/www.almamedia.fi\/mainostajat\/ohjelmallinen-mainonta\/ohjelmallisen-mainonnan-helpcenter\/#breadcrumb"},"inLanguage":"fi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.almamedia.fi\/mainostajat\/ohjelmallinen-mainonta\/ohjelmallisen-mainonnan-helpcenter\/"]}]},{"@type":"ImageObject","inLanguage":"fi","@id":"https:\/\/www.almamedia.fi\/mainostajat\/ohjelmallinen-mainonta\/ohjelmallisen-mainonnan-helpcenter\/#primaryimage","url":"https:\/\/www.almamedia.fi\/mainostajat\/wp-content\/uploads\/sites\/6\/shutterstock_2143201941-scaled.jpg","contentUrl":"https:\/\/www.almamedia.fi\/mainostajat\/wp-content\/uploads\/sites\/6\/shutterstock_2143201941-scaled.jpg","width":2048,"height":1365},{"@type":"BreadcrumbList","@id":"https:\/\/www.almamedia.fi\/mainostajat\/ohjelmallinen-mainonta\/ohjelmallisen-mainonnan-helpcenter\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Etusivu","item":"https:\/\/www.almamedia.fi\/mainostajat\/"},{"@type":"ListItem","position":2,"name":"Ohjelmallinen mainonta","item":"https:\/\/www.almamedia.fi\/mainostajat\/ohjelmallinen-mainonta\/"},{"@type":"ListItem","position":3,"name":"Ohjelmallisen mainonnan Helpcenter"}]},{"@type":"WebSite","@id":"https:\/\/www.almamedia.fi\/mainostajat\/#website","url":"https:\/\/www.almamedia.fi\/mainostajat\/","name":"Alma Media - mainostajat","description":"","publisher":{"@id":"https:\/\/www.almamedia.fi\/mainostajat\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.almamedia.fi\/mainostajat\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fi"},{"@type":"Organization","@id":"https:\/\/www.almamedia.fi\/mainostajat\/#organization","name":"Alma Media - mainostajat","url":"https:\/\/www.almamedia.fi\/mainostajat\/","logo":{"@type":"ImageObject","inLanguage":"fi","@id":"https:\/\/www.almamedia.fi\/mainostajat\/#\/schema\/logo\/image\/","url":"https:\/\/www.almamedia.fi\/mainostajat\/wp-content\/uploads\/sites\/6\/alma-media-logo-valkoinen.svg","contentUrl":"https:\/\/www.almamedia.fi\/mainostajat\/wp-content\/uploads\/sites\/6\/alma-media-logo-valkoinen.svg","width":49,"height":50,"caption":"Alma Media - mainostajat"},"image":{"@id":"https:\/\/www.almamedia.fi\/mainostajat\/#\/schema\/logo\/image\/"}}]}},"lang":"fi","translations":{"fi":88773,"en":90681},"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/www.almamedia.fi\/mainostajat\/wp-json\/wp\/v2\/pages\/88773","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.almamedia.fi\/mainostajat\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.almamedia.fi\/mainostajat\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.almamedia.fi\/mainostajat\/wp-json\/wp\/v2\/users\/105"}],"replies":[{"embeddable":true,"href":"https:\/\/www.almamedia.fi\/mainostajat\/wp-json\/wp\/v2\/comments?post=88773"}],"version-history":[{"count":5,"href":"https:\/\/www.almamedia.fi\/mainostajat\/wp-json\/wp\/v2\/pages\/88773\/revisions"}],"predecessor-version":[{"id":93441,"href":"https:\/\/www.almamedia.fi\/mainostajat\/wp-json\/wp\/v2\/pages\/88773\/revisions\/93441"}],"up":[{"embeddable":true,"href":"https:\/\/www.almamedia.fi\/mainostajat\/wp-json\/wp\/v2\/pages\/84383"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.almamedia.fi\/mainostajat\/wp-json\/wp\/v2\/media\/88660"}],"wp:attachment":[{"href":"https:\/\/www.almamedia.fi\/mainostajat\/wp-json\/wp\/v2\/media?parent=88773"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}