{"id":90681,"date":"2025-05-26T09:21:01","date_gmt":"2025-05-26T06:21:01","guid":{"rendered":"https:\/\/www.almamedia.fi\/mainostajat\/?page_id=90681"},"modified":"2026-04-13T13:31:14","modified_gmt":"2026-04-13T10:31:14","slug":"programmatic-advertising-help-centre","status":"publish","type":"page","link":"https:\/\/www.almamedia.fi\/mainostajat\/en\/programmatic-advertising\/programmatic-advertising-help-centre\/","title":{"rendered":"Programmatic advertising Help Centre"},"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\">On this page, we\u2019ve gathered tools and information to assist programmatic ad buyers in their daily operations. Is your programmatic advertising not taking off? Do you need more information on systems or deals? Don\u2019t worry\u2014explore the page content or contact our programmatic team!\n<\/p>\n\n\n\n<p>If you don\u2019t find an answer to your question below, be sure to check out <a href=\"https:\/\/www.almamedia.fi\/mainostajat\/en\/programmatic-advertising\/products\/\">the basic information on programmatic products too.<\/a><\/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>Jump to section<\/strong><\/p>\n\n\n\n<p><a href=\"#Diilien trouble shooting\">Deal Trouble Shooting \u203a<\/a><br><a href=\"#J\u00e4rjestelm\u00e4kohtaiset huomiot\">System Specific Considerations\u203a<\/a><br><a href=\"#diilit\">PMP Deals \u203a<\/a><br><a href=\"#PG (Programmatic Guaranteed) -diilit\">PG (Programmatic Guaranteed) Deals \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\">General Information on Alma\u2019s Programmatic Advertising Ecosystem<\/h2>\n\n\n\n<p>Alma\u2019s SSP: Xandr (Appnexus)<br>\nAuction Type: 1st Price Auction<br><br>\nWe recommend programmatic buying using a Deal ID. Alma programmatic products and setup is best and most widely available to you when you use deals. We can offer most support for your troubles amd offer tips and reporting if the buys are done through deals instead of open auction.<\/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\">Programmatic Ad Preview Tool<\/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\">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 formats<\/legend>\n\n      <label class=\"ppw__radio\">\n        <input id=\"ppwParaatitapetti\" name=\"mainosmuoto\" type=\"radio\" value=\"leaderboard-1:\" required \/>\n        <span>Parade + wallpaper<\/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, Native<\/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 or 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\">Mobile formats<\/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 or 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, Native<\/span>\n      <\/label>\n    <\/fieldset>\n\n    <div class=\"ppw__actions\">\n      <button class=\"ppw__button\" type=\"submit\">Preview<\/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\">You can request the Xandr Creative ID of your programmatic ad from your demand side platform\u2019s support.<\/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\">Deal Request Form<\/h2>\n\n\n\n<p>Are you missing some deals? We&#8217;re happy to help! Fill in the form and we&#8217;ll fix you the deals!<\/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\">Your DSP:<\/label><br>\n    <select id=\"dspSelect\" name=\"dsp\" required>\n      <option value=\"\">Choose&#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\">Other<\/option>\n    <\/select>\n<br>\n\n    <!-- Seat ID -->\n    <label for=\"seatId\">Seat ID or buyer ID:<\/label>\n    <input type=\"text\" id=\"seatId\" name=\"seatId\" required autocomplete=\"off\" \/>\n\n    <!-- Diilitoiveet -->\n    <label for=\"dealRequest\">Describe your needs for the deal (B2C\/B2B, targeting, ad formats):<\/label>\n    <textarea id=\"dealRequest\" name=\"dealRequest\" rows=\"5\" required><\/textarea>\n\n    <!-- S\u00e4hk\u00f6posti -->\n    <label for=\"senderEmail\">Your email address:<\/label>\n    <input type=\"email\" id=\"senderEmail\" name=\"senderEmail\" required autocomplete=\"email\" inputmode=\"email\" \/>\n\n    <!-- L\u00e4het\u00e4 -->\n    <button type=\"submit\">Send the request<\/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\n<div style=\"height:125px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\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\">Troubleshooting Deals<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">General Guidance That Often Applies:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Bid responses are being sent, but purchases aren&#8217;t happening: The issue is usually on the seller&#8217;s (SSP) side.<\/li>\n\n\n\n<li>Bid responses aren&#8217;t being sent at all: The issue is typically within the buyer&#8217;s (DSP) campaign settings.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">When a Line Item Doesn&#8217;t Bid, Meaning Bid Responses Aren&#8217;t Sent:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Check factors related to the Transparency &amp; Consent Framework and Brand Safety. <strong>Learn more &gt;&gt;<\/strong><\/li>\n\n\n\n<li>Also, consider the following settings in the buying system:<\/li>\n\n\n\n<li>Ensure the buying algorithm settings allow for bidding (e.g., there is sufficient click data for CPC optimization).<\/li>\n\n\n\n<li>Confirm the inventory source is correct (Appnexus or Xandr).<\/li>\n\n\n\n<li>Verify the deal is created for the correct DSP Seat ID.<\/li>\n\n\n\n<li>Check that the bid is in the correct currency and accounts for the floor price and any additional costs (DSP fee, data, etc.).<\/li>\n\n\n\n<li>Ensure the campaign&#8217;s strict audience, geo, timing, or retargeting targeting settings aren&#8217;t limiting bids.<\/li>\n\n\n\n<li>Review domain targeting and any lists of allowed or blocked sites.<\/li>\n<\/ul>\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\">System-Specific Considerations<\/h2>\n\n\n\n<p><strong>Please note that many audience targeting options offered by the DV360 buying system work in a limited capacity outside Google&#8217;s systems. <\/strong><\/p>\n\n\n\n<p>Using these targeting options may completely prevent bidding on inventory not purchased through Google Ad Manager. In such cases, we recommend using 1st party targeting data collected from Alma&#8217;s website visitors (demographic data and areas of interest) instead of Google&#8217;s data. <\/p>\n\n\n\n<p>For more information, contact&nbsp;<a href=\"&#x6d;&#x61;&#x69;&#x6c;&#x74;&#111;&#58;&#112;&#114;ogr&#x61;&#x6d;&#x6d;&#x61;&#x74;&#x69;&#99;&#64;&#97;lma&#x6d;&#x65;&#x64;&#x69;&#x61;&#x2e;&#102;&#105;\">&#x70;&#x72;&#x6f;&#103;&#114;am&#x6d;&#x61;&#x74;&#x69;&#99;&#64;al&#x6d;&#x61;&#x6d;&#101;&#100;&#105;a&#46;&#x66;&#x69;<\/a><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th><strong>Google Data<\/strong><\/th><th><\/th><\/tr><\/thead><tbody><tr><td>Third Party Audience<\/td><td>Targeting works for all inventory sources<\/td><\/tr><tr><td>Geography<\/td><td>Targeting works for all inventory sources<\/td><\/tr><tr><td>Day and Time<\/td><td>Targeting works for all inventory sources<\/td><\/tr><tr><td>Installed App Category<\/td><td>Targeting works for all inventory sources<\/td><\/tr><tr><td>New Mobile Device<\/td><td>Targeting works for all inventory sources<\/td><\/tr><tr><td>Demographics<\/td><td>Limited useability of audience data outside Ad Manager*<\/td><\/tr><tr><td>Custom Affinity<\/td><td>Limited useability of audience data outside Ad Manager*<\/td><\/tr><tr><td>Affinity<\/td><td>Limited useability of audience data outside Ad Manager*<\/td><\/tr><tr><td>Similar\/Lookalike<\/td><td>Limited useability of audience data outside Ad Manager*<\/td><\/tr><tr><td>In-Market<\/td><td>Limited useability of audience data outside Ad Manager*<\/td><\/tr><tr><td>Custom Intent<\/td><td>Use possible only in Ad Manager inventory<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"has-small-font-size\">*Google recommends using 1st party data outside of Ad Manager.<\/p>\n\n\n\n<p class=\"has-small-font-size\"><\/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=\"diilit\" class=\"ankkurilinkki\"><\/a>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">PMP deals<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Alma deals are created in Xandr&#8217;s SSP using the buyer&#8217;s seat ID.<\/li>\n\n\n\n<li>Deals are activated manually in the DSP with the deal ID provided by Alma.<\/li>\n\n\n\n<li>Exchange: Appnexus (Xandr)<\/li>\n\n\n\n<li>When creating a deal, select &#8221;New non-guaranteed inventory&#8221; and 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) -deals<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>PG deals enable the purchase of guaranteed inventory. For more information, contact&nbsp;<a href=\"&#109;&#97;&#x69;&#x6c;&#116;&#111;&#x3a;&#x70;&#114;&#111;&#x67;&#x72;&#97;&#109;&#x6d;&#x61;&#116;&#105;&#x63;&#x40;&#97;&#108;&#x6d;&#x61;&#109;&#101;&#x64;&#x69;&#97;&#46;&#x66;&#x69;\">&#x70;&#114;&#x6f;&#103;r&#x61;&#109;m&#x61;&#116;&#x69;&#x63;&#64;&#x61;&#108;m&#x61;&#109;&#x65;&#x64;i&#x61;&#46;f&#x69;<\/a><\/li>\n\n\n\n<li>Supported ad formats: display, native, video<\/li>\n\n\n\n<li>Targeting: Alma&#8217;s 1st party data (demographic data and areas of interest)<\/li>\n\n\n\n<li>PG deals are specific to campaigns and formats<\/li>\n\n\n\n<li>When creating a PG deal, select &#8221;New guaranteed inventory&#8221;<\/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\">Contact the programmatic team<\/h2>\n\n\n\n<p>Didn&#8217;t find a solution to your problem? Is there something we could still help you with?<\/p>\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            Programmatic Team\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><br><strong>Contact Programmatic Team:<\/strong> <a href=\"&#109;a&#x69;l&#x74;o&#x3a;&#112;&#x72;&#111;&#x67;&#114;a&#x6d;m&#x61;t&#x69;&#99;&#x40;&#97;&#x6c;&#109;&#x61;&#109;e&#x64;i&#x61;&#46;&#x66;&#105;\">&#x70;&#x72;&#x6f;&#x67;&#114;&#97;&#109;ma&#x74;&#x69;&#x63;&#x40;&#x61;&#108;&#109;&#97;me&#x64;&#x69;&#x61;&#x2e;&#x66;&#105;<\/a><\/p>\n<p><a href=\"https:\/\/www.almamedia.fi\/mainostajat\/en\/programmatic-advertising\/contact-the-programmatic-team\/\">Or get to know the team!<\/a>\n\n\n<\/div><\/div>\n<\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>General Information on Alma\u2019s Programmatic Advertising Ecosystem Alma\u2019s SSP: Xandr (Appnexus) Auction Type: 1st Price [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":88660,"parent":90665,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-90681","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>Programmatic advertising Help Centre - Alma Media<\/title>\n<meta name=\"description\" content=\"On this page, we&#039;ve gathered tools and information to assist programmatic advertising buyers in their daily tasks. Read more.\" \/>\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\/en\/programmatic-advertising\/programmatic-advertising-help-centre\/\" \/>\n<meta property=\"og:locale\" content=\"fi_FI\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Programmatic advertising Help Centre - Alma Media\" \/>\n<meta property=\"og:description\" content=\"On this page, we&#039;ve gathered tools and information to assist programmatic advertising buyers in their daily tasks. Read more.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.almamedia.fi\/mainostajat\/en\/programmatic-advertising\/programmatic-advertising-help-centre\/\" \/>\n<meta property=\"og:site_name\" content=\"Alma Media - mainostajat\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-13T10:31:14+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=\"5 minuuttia\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.almamedia.fi\/mainostajat\/en\/programmatic-advertising\/programmatic-advertising-help-centre\/\",\"url\":\"https:\/\/www.almamedia.fi\/mainostajat\/en\/programmatic-advertising\/programmatic-advertising-help-centre\/\",\"name\":\"Programmatic advertising Help Centre - Alma Media\",\"isPartOf\":{\"@id\":\"https:\/\/www.almamedia.fi\/mainostajat\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.almamedia.fi\/mainostajat\/en\/programmatic-advertising\/programmatic-advertising-help-centre\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.almamedia.fi\/mainostajat\/en\/programmatic-advertising\/programmatic-advertising-help-centre\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.almamedia.fi\/mainostajat\/wp-content\/uploads\/sites\/6\/shutterstock_2143201941-scaled.jpg\",\"datePublished\":\"2025-05-26T06:21:01+00:00\",\"dateModified\":\"2026-04-13T10:31:14+00:00\",\"description\":\"On this page, we've gathered tools and information to assist programmatic advertising buyers in their daily tasks. Read more.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.almamedia.fi\/mainostajat\/en\/programmatic-advertising\/programmatic-advertising-help-centre\/#breadcrumb\"},\"inLanguage\":\"fi\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.almamedia.fi\/mainostajat\/en\/programmatic-advertising\/programmatic-advertising-help-centre\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fi\",\"@id\":\"https:\/\/www.almamedia.fi\/mainostajat\/en\/programmatic-advertising\/programmatic-advertising-help-centre\/#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\/en\/programmatic-advertising\/programmatic-advertising-help-centre\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Etusivu\",\"item\":\"https:\/\/www.almamedia.fi\/mainostajat\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Programmatic advertising\",\"item\":\"https:\/\/www.almamedia.fi\/mainostajat\/en\/programmatic-advertising\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Programmatic advertising Help Centre\"}]},{\"@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":"Programmatic advertising Help Centre - Alma Media","description":"On this page, we've gathered tools and information to assist programmatic advertising buyers in their daily tasks. Read more.","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\/en\/programmatic-advertising\/programmatic-advertising-help-centre\/","og_locale":"fi_FI","og_type":"article","og_title":"Programmatic advertising Help Centre - Alma Media","og_description":"On this page, we've gathered tools and information to assist programmatic advertising buyers in their daily tasks. Read more.","og_url":"https:\/\/www.almamedia.fi\/mainostajat\/en\/programmatic-advertising\/programmatic-advertising-help-centre\/","og_site_name":"Alma Media - mainostajat","article_modified_time":"2026-04-13T10:31:14+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":"5 minuuttia"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.almamedia.fi\/mainostajat\/en\/programmatic-advertising\/programmatic-advertising-help-centre\/","url":"https:\/\/www.almamedia.fi\/mainostajat\/en\/programmatic-advertising\/programmatic-advertising-help-centre\/","name":"Programmatic advertising Help Centre - Alma Media","isPartOf":{"@id":"https:\/\/www.almamedia.fi\/mainostajat\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.almamedia.fi\/mainostajat\/en\/programmatic-advertising\/programmatic-advertising-help-centre\/#primaryimage"},"image":{"@id":"https:\/\/www.almamedia.fi\/mainostajat\/en\/programmatic-advertising\/programmatic-advertising-help-centre\/#primaryimage"},"thumbnailUrl":"https:\/\/www.almamedia.fi\/mainostajat\/wp-content\/uploads\/sites\/6\/shutterstock_2143201941-scaled.jpg","datePublished":"2025-05-26T06:21:01+00:00","dateModified":"2026-04-13T10:31:14+00:00","description":"On this page, we've gathered tools and information to assist programmatic advertising buyers in their daily tasks. Read more.","breadcrumb":{"@id":"https:\/\/www.almamedia.fi\/mainostajat\/en\/programmatic-advertising\/programmatic-advertising-help-centre\/#breadcrumb"},"inLanguage":"fi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.almamedia.fi\/mainostajat\/en\/programmatic-advertising\/programmatic-advertising-help-centre\/"]}]},{"@type":"ImageObject","inLanguage":"fi","@id":"https:\/\/www.almamedia.fi\/mainostajat\/en\/programmatic-advertising\/programmatic-advertising-help-centre\/#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\/en\/programmatic-advertising\/programmatic-advertising-help-centre\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Etusivu","item":"https:\/\/www.almamedia.fi\/mainostajat\/"},{"@type":"ListItem","position":2,"name":"Programmatic advertising","item":"https:\/\/www.almamedia.fi\/mainostajat\/en\/programmatic-advertising\/"},{"@type":"ListItem","position":3,"name":"Programmatic advertising Help Centre"}]},{"@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":"en","translations":{"en":90681,"fi":88773},"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/www.almamedia.fi\/mainostajat\/wp-json\/wp\/v2\/pages\/90681","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\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.almamedia.fi\/mainostajat\/wp-json\/wp\/v2\/comments?post=90681"}],"version-history":[{"count":5,"href":"https:\/\/www.almamedia.fi\/mainostajat\/wp-json\/wp\/v2\/pages\/90681\/revisions"}],"predecessor-version":[{"id":93727,"href":"https:\/\/www.almamedia.fi\/mainostajat\/wp-json\/wp\/v2\/pages\/90681\/revisions\/93727"}],"up":[{"embeddable":true,"href":"https:\/\/www.almamedia.fi\/mainostajat\/wp-json\/wp\/v2\/pages\/90665"}],"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=90681"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}