PageSourceSearch

https://radiomedia.fi/radiomainonta/radiomainonnan-ostaminen/

html radiomedia.fi collected 2026-10-02 10:29:53 UTC 60,443 bytes, 875 lines download raw bytes

1<!DOCTYPE html>
2<html lang="fi">
3<head>
4<script defer data-domain="radiomedia.fi" src="https://analytics.dude.fi/js/script.js"></script>
4
5
6	<!-- We will control most of the scripts from Radiomedias Google tag manager account. Tag manager will initialize for example GA and HubSpot scripts.
7	Though, we dont want to initialize these scripts in local or staging environments -->
8        
9      
9<script id="Cookiebot" src="https://consent.cookiebot.com/uc.js" data-cbid="c74f0973-ec6e-4664-86c6-17d291e74b89" data-blockingmode="auto" type="text/javascript"></script>
9  
10      
10<script data-cookieconsent="ignore">
11      window.dataLayer = window.dataLayer || [];
12      function gtag() {
13          dataLayer.push(arguments);
14      }
15      gtag("consent", "default", {
16          ad_storage: "denied",
17          analytics_storage: "denied",
18          functionality_storage: "denied",
19          personalization_storage: "denied",
20          security_storage: "denied",
21          wait_for_update: 2000,
22      });
23      gtag("set", "ads_data_redaction", true);
24    </script>
24
25
26    <!-- Google Tag Manager -->
27    
27<script>
28      window.addEventListener('CookiebotOnAccept', function (e) {
29        if (!Cookiebot.consent.statistics) return;
vendor: 370 bytes, lines 29-34
29
30          (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
31        new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
32        j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
33        'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
34        })(window,document,'script','dataLayer','
34GTM-M6LS6CQ
vendor: 10 bytes, lines 34-35
34');
35      
35});
36    </script>
36
37    <!-- End Google Tag Manager -->
38  
39	<meta charset="UTF-8"/>
40	<meta name="viewport" content="width=device-width, initial-scale=1">
41	
42	<title>Radiomainonnan ostaminen - RadioMedia</title>
43
44<!-- The SEO Framework tehnyt Sybre Waaijer -->
45<meta name="robots" content="max-snippet:-1,max-image-preview:standard,max-video-preview:-1" />
46<link rel="canonical" href="https://radiomedia.fi/radiomainonta/radiomainonnan-ostaminen/" />
47<meta name="description" content="Radiomainontaa voi ostaa suoraan radioyhtiöstä tai mediatoimistojen kautta. He osaavat auttaa kanavavalinnoissa sekä oikean peitto- ja toistotason…" />
48<meta property="og:type" content="website" />
49<meta property="og:locale" content="fi_FI" />
50<meta property="og:site_name" content="RadioMedia" />
51<meta property="og:title" content="Radiomainonnan ostaminen" />
52<meta property="og:description" content="Radiomainontaa voi ostaa suoraan radioyhtiöstä tai mediatoimistojen kautta. He osaavat auttaa kanavavalinnoissa sekä oikean peitto- ja toistotason määrittelemisessä. Radioyhtiöt ovat oman tuotteensa…" />
53<meta property="og:url" content="https://radiomedia.fi/radiomainonta/radiomainonnan-ostaminen/" />
54<meta property="og:image" content="https://radiomedia.fi/wp-content/uploads/2022/09/radiomedia-some.jpg" />
55<meta property="og:image:width" content="800" />
56<meta property="og:image:height" content="600" />
57<meta name="twitter:card" content="summary_large_image" />
58<meta name="twitter:title" content="Radiomainonnan ostaminen" />
59<meta name="twitter:description" content="Radiomainontaa voi ostaa suoraan radioyhtiöstä tai mediatoimistojen kautta. He osaavat auttaa kanavavalinnoissa sekä oikean peitto- ja toistotason määrittelemisessä. Radioyhtiöt ovat oman tuotteensa…" />
60<meta name="twitter:image" content="https://radiomedia.fi/wp-content/uploads/2022/09/radiomedia-some.jpg" />
61<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://radiomedia.fi/#/schema/WebSite","url":"https://radiomedia.fi/","name":"RadioMedia","inLanguage":"fi","potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://radiomedia.fi/search/{search_term_string}/"},"query-input":"required name=search_term_string"},"publisher":{"@type":"Organization","@id":"https://radiomedia.fi/#/schema/Organization","name":"RadioMedia","url":"https://radiomedia.fi/"}},{"@type":"WebPage","@id":"https://radiomedia.fi/radiomainonta/radiomainonnan-ostaminen/","url":"https://radiomedia.fi/radiomainonta/radiomainonnan-ostaminen/","name":"Radiomainonnan ostaminen - RadioMedia","description":"Radiomainontaa voi ostaa suoraan radioyhtiöstä tai mediatoimistojen kautta. He osaavat auttaa kanavavalinnoissa sekä oikean peitto- ja toistotason…","inLanguage":"fi","isPartOf":{"@id":"https://radiomedia.fi/#/schema/WebSite"},"breadcrumb":{"@type":"BreadcrumbList","@id":"https://radiomedia.fi/#/schema/BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":"https://radiomedia.fi/","name":"RadioMedia"},{"@type":"ListItem","position":2,"item":"https://radiomedia.fi/radiomainonta/","name":"Radiomainonta"},{"@type":"ListItem","position":3,"name":"Radiomainonnan ostaminen"}]},"potentialAction":{"@type":"ReadAction","target":"https://radiomedia.fi/radiomainonta/radiomainonnan-ostaminen/"}}]}</script>
61
62<!-- / The SEO Framework tehnyt Sybre Waaijer | 7.25ms meta | 4.14ms boot -->
63
64<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://radiomedia.fi/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fradiomedia.fi%2Fradiomainonta%2Fradiomainonnan-ostaminen%2F" />
65<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://radiomedia.fi/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fradiomedia.fi%2Fradiomainonta%2Fradiomainonnan-ostaminen%2F&#038;format=xml" />
66<style id="wp-img-auto-sizes-contain-inline-css">
67img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
68/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
69</style>
70<style id="classic-theme-styles-inline-css">
71/*! This file is auto-generated */
72.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}
73/*# sourceURL=/wp-includes/css/classic-themes.min.css */
74</style>
75
76<style id="global-styles-inline-css">
77: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: #fff;--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--color--purple: #f50f8a;--wp--preset--color--light-purple: #f2e9ff;--wp--preset--color--gray: #6a6a71;--wp--preset--color--light-gray: #f4f4f8;--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%);
77--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);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 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;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.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-purple-color{color: var(--wp--preset--color--purple) !important;}.has-light-purple-color{color: var(--wp--preset--color--light-purple) !important;}.has-gray-color{color: var(--wp--preset--color--gray) !important;}.has-light-gray-color{color: var(--wp--preset--color--light-gray) !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-purple-background-color{background-color: var(--wp--preset--color--purple) !important;}.has-light-purple-background-color{background-color: var(--wp--preset--color--light-purple) !important;}.has-gray-background-color{background-color: var(--wp--preset--color--gray) !important;}.has-light-gray-background-color{background-color: var(--wp--preset--color--light-gray) !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-purple-border-color{border-color: var(--wp--preset--color--purple) !important;}.has-light-purple-border-color{border-color: var(--wp--preset--color--light-purple) !important;}.has-gray-border-color{border-color: var(--wp--preset--color--gray) !important;}.has-light-gray-border-color{border-color: var(--wp--preset--color--light-gray) !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;}
77.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;}
78/*# sourceURL=global-styles-inline-css */
79</style>
80
81<link rel='stylesheet' id='cntrst-style-css' href='https://radiomedia.fi/content/themes/radiomedia/assets/dist/layout.css?ver=1734528926' media='all' />
82<script id="jquery-core-js" src="https://radiomedia.fi/wp/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 82
82
83<script id="jquery-migrate-js" src="https://radiomedia.fi/wp/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
83
84<link rel="https://api.w.org/" href="https://radiomedia.fi/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://radiomedia.fi/wp-json/wp/v2/pages/798" /><meta name="google-site-verification" content="NZs0SV59AxaWm3v_g3dG0L1vahrbvS9QqIJNocKBW14" />
85	<link rel="icon" type="image/png" sizes="16x16" href="https://radiomedia.fi/content/themes/radiomedia/assets/img/favicons/favicon-16x16.png">
86	<link rel="icon" type="image/png" sizes="32x32" href="https://radiomedia.fi/content/themes/radiomedia/assets/img/favicons/favicon-32x32.png">
87	<link rel="shortcut icon" href="https://radiomedia.fi/content/themes/radiomedia/assets/img/favicons/favicon.ico">
88	
89<style id="wp-block-heading-inline-css">
90h1:where(.wp-block-heading).has-background,h2:where(.wp-block-heading).has-background,h3:where(.wp-block-heading).has-background,h4:where(.wp-block-heading).has-background,h5:where(.wp-block-heading).has-background,h6:where(.wp-block-heading).has-background{padding:1.25em 2.375em}h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){rotate:180deg}
91/*# sourceURL=https://radiomedia.fi/wp/wp-includes/blocks/heading/style.min.css */
92</style>
93<style id="wp-block-paragraph-inline-css">
94.is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}:root :where(p.has-background){padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg}
95/*# sourceURL=https://radiomedia.fi/wp/wp-includes/blocks/paragraph/style.min.css */
96</style>
97
98</head>
99
100<body class="wp-singular page-template-default page page-id-798 page-child parent-pageid-749 wp-theme-radiomedia" itemscope="" itemtype="http://schema.org/WebPage"><!-- the Body  -->
101
102<div id="site">
103	<header class="site-header" id="banner">
104		<div class="main-bar">
105			<a class="logo" href="https://radiomedia.fi">
106				<img class="lazyloaded" src="https://radiomedia.fi/content/themes/radiomedia/assets/img/radiomedia-logo.svg" alt="radiomedia logo">
107			</a>
108			<nav id="site-navigation" class="nav" aria-label="Päätason valikko">
109				<div class="search-form-mobile">
110					<form action="https://radiomedia.fi" method="get" role="search">
111						<label>
112							<span class="screen-reader-text">Hae sivustolta</span>
113							<input type="text" name="s" required="" aria-invalid="false" minlength="3" aria-label="Haku" placeholder="Haku">
114						</label>
115						<button type="submit" id="search-button-mobile" aria-label="Vahvista haku" aria-labelledby="search-button-mobile">
116							<i class="icon-search"></i>
117              <span class="search-text">Haku</span>
118						</button>
119					</form>
120				</div>
121				<ul id="menu-primary" class="menu"><li id="menu-item-788" class="menu-item menu-item-type-post_type menu-item-object-page current-page-ancestor current-menu-ancestor current-menu-parent current-page-parent current_page_parent current_page_ancestor menu-item-has-children menu-item-788"><a href="https://radiomedia.fi/radiomainonta/">Radiomainonta</a>
122<ul class="sub-menu">
123	<li id="menu-item-841" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-841"><a href="https://radiomedia.fi/radiomainonta/miksi-valita-radio/">Miksi valita radio</a></li>
124	<li id="menu-item-800" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-798 current_page_item menu-item-800"><a href="https://radiomedia.fi/radiomainonta/radiomainonnan-ostaminen/" aria-current="page">Radiomainonnan ostaminen</a></li>
125	<li id="menu-item-797" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-797"><a href="https://radiomedia.fi/radiomainonta/radiomainonnan-tekeminen/">Radiomainonnan tekeminen</a></li>
126	<li id="menu-item-1404" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1404"><a href="https://radiomedia.fi/radiomainonta/radiomainonnan-saannot/">Radiomainonnan säännöt</a></li>
127	<li id="menu-item-3647" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3647"><a href="https://radiomedia.fi/podcast-mainonta/">Podcast-mainonta</a></li>
128</ul>
129</li>
130<li id="menu-item-929" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-929"><a href="https://radiomedia.fi/radiotoimiala/">Radiotoimiala</a>
131<ul class="sub-menu">
132	<li id="menu-item-949" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-949"><a href="https://radiomedia.fi/radiotoimiala/faktaa-radiotoimialasta/">Faktaa radiotoimialasta</a></li>
133	<li id="menu-item-991" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-991"><a href="https://radiomedia.fi/radiotoimiala/radiotoimiluvat/">Radiotoimiluvat</a></li>
134	<li id="menu-item-1040" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1040"><a href="https://radiomedia.fi/tutkimukset/">Tutkimustietoa radiosta</a></li>
135	<li id="menu-item-992" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-992"><a href="https://radiomedia.fi/radiotoimiala/radion-historia/">Radion historia</a></li>
136</ul>
137</li>
138<li id="menu-item-200" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-200"><a href="https://radiomedia.fi/radiokanavat">Radiokanavat</a>
139<ul class="sub-menu">
140	<li id="menu-item-3096" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3096"><a href="https://radiomedia.fi/radiokanavat/">Radiokanavat</a></li>
141	<li id="menu-item-2360" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2360"><a href="https://radiomedia.fi/kuntahaku/">Kuntahaku</a></li>
142	<li id="menu-item-3566" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3566"><a href="https://radiomedia.fi/kuuluvuushaku/">Kuuluvuushaku</a></li>
143</ul>
144</li>
145<li id="menu-item-358" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-358"><a href="https://radiomedia.fi/palvelut/">Palvelut</a>
146<ul class="sub-menu">
147	<li id="menu-item-511" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-511"><a href="https://radiomedia.fi/palvelut/edunvalvonta/">Radioalan edunvalvonta</a></li>
148	<li id="menu-item-556" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-556"><a href="https://radiomedia.fi/palvelut/koulutukset/">Koulutukset</a></li>
149	<li id="menu-item-850" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-850"><a href="https://radiomedia.fi/myyntipalvelut/">Myyntipalvelut</a></li>
150	<li id="menu-item-4844" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4844"><a href="https://radiomedia.fi/palvelut/palkinnot/">Palkinnot</a></li>
151	<li id="menu-item-559" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-559"><a href="https://radiomedia.fi/palvelut/tapahtumat/">Tapahtumat</a></li>
152	<li id="menu-item-1011" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1011"><a href="https://radiomedia.fi/radiotoimiala/tutkimustietoa-radiosta/">Tutkimukset</a></li>
153	<li id="menu-item-8608" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-8608"><a href="https://radiomedia.fi/avoimuusilmoitukset/">Avoimuusilmoitukset</a></li>
154</ul>
155</li>
156<li id="menu-item-198" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-198"><a href="https://radiomedia.fi/ajankohtaista">Ajankohtaista</a></li>
157<li id="menu-item-362" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-362"><a href="https://radiomedia.fi/tietoa-radiomediasta/">Tietoa RadioMediasta</a>
158<ul class="sub-menu">
159	<li id="menu-item-563" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-563"><a href="https://radiomedia.fi/tietoa-radiomediasta/mita-radiomedia-tekee/">Esittely</a></li>
160	<li id="menu-item-1171" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1171"><a href="https://radiomedia.fi/tietoa-radiomediasta/hallitus/">Hallitus</a></li>
161	<li id="menu-item-562" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-562"><a href="https://radiomedia.fi/yhteystiedot/">Yhteystiedot</a></li>
162	<li id="menu-item-3628" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3628"><a href="https://radiomedia.fi/radiomedia-in-english/">In English</a></li>
163</ul>
164</li>
165</ul>			</nav>
166
167			<div class="search-form">
168				<form action="https://radiomedia.fi" method="get" role="search">
169					<span class="screen-reader-text">
169Hakukenttä</span>
170					<input id="search-input" type="text" name="s" required="" aria-invalid="false" minlength="3" aria-label="Haku" placeholder="Haku">
171					<label>
172						<span class="screen-reader-text">Avaa haku</span>
173						<i id="search-trigger" class="icon-search"></i>
174					</label>
175					<label>
176						<span class="search-text">Haku</span>
177						<span class="screen-reader-text">Hae sivustolta</span>
178					</label>
179				</form>
180			</div>
181
182			<div class="hamburger hamburger--slider hidden-md-up" data-toggle-nav="">
183				<div class="hamburger-box">
184					<div class="hamburger-inner"></div>
185				</div>
186			</div>
187		</div>
188	</header>
189
190
191	<main id="primary" class="site-main">
192		<div class="entry-content">
193			<div class="blocks col-12">
194				
195<section class="text-and-media-block grey">
196	<div class="theme">
197		<div class="grid reverse has-image">
198			<div class="box col-12 col-md-auto col-bleed">
199				<div class="content">
200					<div class="acf-innerblocks-container">
201
202<h1 class="wp-block-heading">Radiomainonnan <span class="has-inline-color has-purple-color">ostaminen</span></h1>
203
204
205
206<p class="wp-block-paragraph">Radiomainontaa voi ostaa suoraan radioyhtiöstä tai mediatoimistojen kautta. He osaavat auttaa kanavavalinnoissa sekä oikean peitto- ja toistotason määrittelemisessä. Radioyhtiöt ovat oman tuotteensa ammattilaisia ja useimmissa yhtiöissä työskentelee kampanjasuunnittelija, jolla on käytössään kampanjansuunnitteluohjelma.</p>
207
208</div>				</div>
209			</div>
210							<div class="image col-12 col-md-auto col-bleed">
211					<div class="image-wrapper">
212						<img fetchpriority="high" decoding="async" width="1250" height="570" src="https://radiomedia.fi/wp-content/uploads/2021/06/header-headphones5b-1250x570.jpg" class="attachment-hero size-hero" alt="" />					</div>
213				</div>
214					</div>
215	</div>
216</section>
217
218
219
220<h3 class="wp-block-heading">Mitattuja kontakteja</h3>
221
222
223
224<p class="wp-block-paragraph">Liki kaikessa ostamisessa kulkee mukana kuuntelijamäärätieto KRT:sta (<a href="https://radiomedia.fi/radiotoimiala/tutkimustietoa-radiosta/miten-radion-kuuntelua-mitataan/" data-type="page" data-id="2335">Kansallinen radiotutkimus</a>). Radioyhtiöt ja mediatoimistot käyttävät sähköisiä järjestelmiä radiokampanjan kuuntelijoiden sekä muiden tunnuslukujen laskentaan. Kuuntelijatietojen mukana kulkevat myös hintatiedot. Radioyhtiön järjestelmät keskustelevat keskenään ja todentavat asiakkaalle kampanjoiden toteutuneet lähetysajat sekä kuuntelijamäärät.</p>
225
226
227
228<p class="wp-block-paragraph">Kampanjaa suunniteltaessa on tärkeää ymmärtää radion rooli ja määritellä radiokampanjalle mm. peitto­ ja toistotasot sekä tavoitteiden kannalta realistinen kokonaisbudjetti. Varsinaisen kampanjasuunnittelun tavoitteena on laatia suunnitelma asetettujen mediatavoitteiden saavuttamisesta kustannustehokkaimmalla tavalla.</p>
229
230
231
232<h3 class="wp-block-heading">Kohderyhmälle optimaalinen kanavaratkaisu</h3>
233
234
235
236<p class="wp-block-paragraph">Yleisö valitsee radiokanavansa pitkälti mieltymyksensä ja kiinnostuksen aiheidensa mukaan. Musiikkivalikoima on merkittävin yksittäinen tekijä kanavan valinnassa. Mainostajan kannalta radiokanavat tarjoavat otollisen ympäristön kohdennetun mainonnan toteuttamiselle – kukin kanava tavoittaa tietyn ikäisen ja arvomaailmaltaan selvästi profiloituvan kohderyhmän.</p>
237
238
239
240<p class="wp-block-paragraph">Kohderyhmän kuuntelutottumuksia analysoimalla löytyy mediatavoitteet tehokkaimmin täyttävä kanavayhdistelmä. Mediatoimistojen ja radioasemien käyttämän kampanjasuunnitteluun tarkoitetun Telmarin Audio Planner -ohjelmiston avulla on mahdollista optimoida kanavakohtainen toistomäärä siten, että lopputulos on tavoittavuudeltaan riittävä, toistotasoltaan halutun kaltainen ja kokonaishinnaltaan edullisin tavoitteet täyttävä radiokanavien yhdistelmä.</p>
241
242
243
244<p class="wp-block-paragraph">Yksi radiomainonnan erityispiirre on mahdollisuus valita mainosten esitysajankohta tiettynä päivänä jopa minuutin tarkkuudella. Lisämaksusta saadaan mainos soimaan esimerkiksi tasatunnin aikaan tai uutislähetyksen ja säÃ
244¤tiedotuksen väliin. Määräpaikan ostamalla mainos voidaan esittää mainoskatkon alussa tai lopussa.</p>
245
246
247
248<h3 class="wp-block-heading">Kohderyhmä- ja spottikauppa</h3>
249
250
251
252<p class="wp-block-paragraph">Valtakunnallisilta radioyhtiöiltä on mahdollista ostaa kohderyhmäkampanjoita radioyhtiön määrittelemistä kohderyhmistä. Kohderyhmäkaupassa radioyhtiö vastaa radiospottien sijoittelusta mainoskatkoilla. Kampanjassa ostetaan haluttu määrä kohderyhmäkontakteja kampanjan aikajaksolle. Tällöin maksetaan kyseisen kohderyhmän kontakteista.</p>
253
254
255
256<p class="wp-block-paragraph">Valtakunnallisissa sekä paikallisissa radioyhtiöissä myydään myös spottikampanjoita. Mainosspotin hinta määräytyy spotin pituuden, blokkikohtaisen sijoittelun ja toistomäärien mukaan. Blokkikohtaiseen hintaan vaikuttavat kyseisen blokin kuuntelijamäärä sekä kapasiteetti.</p>
257
258
259
260<p class="wp-block-paragraph">Yhtiöt määrittelevät bruttohinnat 30 sekunnin pituiselle mainokselle.  Eripituisille mainoksille saa hinnan kertomalla 30 sekunnin hinnan pituuskertoimilla, jotka ohessa <a href="https://radiomedia.fi/wp-content/uploads/2023/12/Spottikerroin.xlsx" data-type="link" data-id="https://radiomedia.fi/wp-content/uploads/2023/12/Spottikerroin.xlsx">spottikerrointaulukko (xls)</a>. Kanavapakettihinnastot sekä kaikki kertoimet löytyvät myös Telmar Audio Planner -radiosuunnitteluohjelmistosta.</p>
261
262
263
264<h3 class="wp-block-heading">Sisältömarkkinointiyhteistyö</h3>
265
266
267
268<p class="wp-block-paragraph">Radiotalot tarjoavat brändin kasvattamiseen ja kuluttajien aktivoimiseen ohjelmayhteistyötä, promootioita tai muita erikoisratkaisuja. Kysy näistä ratkaisuista suoraan radioyhtiöltä.</p>
269
270
271
272<section class="text-and-media-block black">
273	<div class="theme">
274		<div class="grid reverse has-image">
275			<div class="box col-12 col-md-auto col-bleed">
276				<div class="content">
277					<div class="acf-innerblocks-container">
278
279<h2 class="wp-block-heading"><span style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-purple-color">Radiokanavat</span></h2>
280
281
282
283<p class="wp-block-paragraph"><span style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-white-color">Katso tästä radiokanavien mediakortit sekä eri kanavien mediamyyntien yhteystiedot.</span></p>
284
285
286
287<div class="text- acf-button-block">
288	<a class="btn-standard btn-block purple " href="https://www.radiomedia.fi/radiokanavat" title="Radiokanavat" target="_self"
289		>
290		Radiokanavat			</a>
291</div>
292
293</div>				</div>
294			</div>
295							<div class="image col-12 col-md-auto col-bleed">
296					<div class="image-wrapper">
297						<img decoding="async" width="1250" height="650" src="https://radiomedia.fi/wp-content/uploads/2021/09/kuvituskuva-kuulokkeet6-1250x650.jpg" class="attachment-hero size-hero" alt="" srcset="https://radiomedia.fi/wp-content/uploads/2021/09/kuvituskuva-kuulokkeet6-1250x650.jpg 1250w, https://radiomedia.fi/wp-content/uploads/2021/09/kuvituskuva-kuulokkeet6-625x325.jpg 625w" sizes="(max-width: 1250px) 100vw, 1250px" />					</div>
298				</div>
299					</div>
300	</div>
301</section>
302			</div>
303		</div>
304	</main><!-- #main -->
305
306<footer class="site-footer">
307	<div class="site-footer__top">
308		<div class="container">
309			<div class="grid">
310				<div class="col-md-6 col-12 left-side">
311																<h3>Onko sinulla lisää kysymyksiä?</h3>
312																<a class="btn-plain" href="https://radiomedia.fi/yhteystiedot/" title="Ota meihin yhteyttä" target="_self">
313							Ota meihin yhteyttä							<i class="animated-arrow"></i>
314						</a>
315									</div>
316				<div class="col-md-6 col-12 right-side">
317					<div class="somelist">
318													<h3>Seuraa meitä</h3>
319																			<ul class="radiomedia-some">
320																	<li>
321										<a class="icon-twitter" href="https://twitter.com/RadioMediaFI" target="_self"  title="twitter">
322											<span class="screen-reader-text">twitter</span>
323										</a>
324									</li>
325																		<li>
326										<a class="icon-facebook" href="https://www.facebook.com/RadioMediaFI" target="_self"  title="facebook">
327											<span class="screen-reader-text">facebook</span>
328										</a>
329									</li>
330																		<li>
331										<a class="icon-instagram" href="https://www.instagram.com/radiomediafi/?hl=fi" target="_self"  title="instagram">
332											<span class="screen-reader-text">instagram</span>
333										</a>
334									</li>
335																</ul>
336												</div>
337				</div>
338			</div>
339		</div>
340	</div>
341	<div class="site-footer__mid">
342		<div class="container">
343			<a class="logo" href="https://radiomedia.fi">
344				<img class="lazyloaded" src="https://radiomedia.fi/content/themes/radiomedia/assets/img/radiomedia-logo-white.svg" alt="radiomedia white logo">
345			</a>
346
347			<ul id="menu-footer-suomi" class="menu-footer"><li id="menu-item-2603" class="menu-item menu-item-type-post_type menu-item-object-page current-page-ancestor current-menu-ancestor current-menu-parent current-page-parent current_page_parent current_page_ancestor menu-item-has-children menu-item-2603"><a href="https://radiomedia.fi/radiomainonta/">Radiomainonta</a>
348<ul class="sub-menu">
349	<li id="menu-item-2613" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2613"><a href="https://radiomedia.fi/radiomainonta/miksi-valita-radio/">Miksi valita radio</a></li>
350	<li id="menu-item-2960" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-798 current_page_item menu-item-2960"><a href="https://radiomedia.fi/radiomainonta/radiomainonnan-ostaminen/" aria-current="page">Mainonnan ostaminen</a></li>
351	<li id="menu-item-2921" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2921"><a href="https://radiomedia.fi/radiomainonta/radiomainonnan-saannot/">Mainonnan säännöt</a></li>
352</ul>
353</li>
354<li id="menu-item-2612" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-2612"><a href="https://radiomedia.fi/radiotoimiala/">Radiotoimiala</a>
355<ul class="sub-menu">
356	<li id="menu-item-2609" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2609"><a href="https://www.radiomedia.fi/radiokanavat/">Radiokanavat</a></li>
357	<li id="menu-item-2607" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2607"><a href="https://radiomedia.fi/radiotoimiala/tutkimustietoa-radiosta/">Tutkimustietoa radiosta</a></li>
358	<li id="menu-item-2922" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2922"><a href="https://radiomedia.fi/radiotoimiala/faktaa-radiotoimialasta/">Faktaa toimialasta</a></li>
359</ul>
360</li>
361<li id="menu-item-2925" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-2925"><a href="https://radiomedia.fi/palvelut/">Palvelut</a>
362<ul class="sub-menu">
363	<li id="menu-item-2926" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2926"><a href="https://radiomedia.fi/palvelut/edunvalvonta/">Radioalan edunvalvonta</a></li>
364	<li id="menu-item-2927" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2927"><a href="https://radiomedia.fi/myyntipalvelut/">Myyntipalvelut</a></li>
365	<li id="menu-item-2928" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2928"><a href="https://radiomedia.fi/palvelut/tapahtumat/">Tapahtumat</a></li>
366</ul>
367</li>
368<li id="menu-item-2611" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-2611"><a href="https://radiomedia.fi/tietoa-radiomediasta/">RadioMedia</a>
369<ul class="sub-menu">
370	<li id="menu-item-2924" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2924"><a href="https://www.radiomedia.fi/ajankohtaista/">Ajankohtaista</a></li>
371	<li id="menu-item-2608" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2608"><a href="https://radiomedia.fi/yhteystiedot/">Yhteystiedot</a></li>
372	<li id="menu-item-3629" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3629"><a href="https://radiomedia.fi/radiomedia-in-english/">In English</a></li>
373</ul>
374</li>
375</ul>		</div>
376	</div>
377	<div class="site-footer__bottom">
378		<div class="container">
379			<div class="grid">
380				<div class="site-footer__mandatory-links bottom-left col-12 col-md-6">
381											<ul class="mandatory-links left">
382															<li>
383									<a href="https://radiomedia.fi/tietosuojalauseke/" target="_self"  title="Tietosuojalauseke">Tietosuojalauseke</a>
384								</li>
385														</ul>
386									</div>
387				<div class="site-footer__mandatory-links bottom-right col-12 col-md-6">
388											<ul class="mandatory-links right">
389															<li>
390									<a href="https://www.radioplayer.fi/" target="_self"  title="Radioplayer.fi">Radioplayer.fi</a>
391								</li>
392																<li>
393									<a href="https://www.radiogaala.fi" target="_self"  title="RadioGaala">RadioGaala</a>
394								</li>
395																<li>
396									<a href="https://www.kaikukilpailu.fi" target="_self"  title="Kaiku">Kaiku</a>
397								</li>
398														</ul>
399									</div>
400			</div>
401		</div>
402	</div>
403</footer>
404
405<script type="speculationrules">
406{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp/wp-*.php","/wp/wp-admin/*","/wp-content/uploads/*","/content/*","/content/plugins/*","/content/themes/radiomedia/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
407</script>
vendor: 1 bytes, line 407
407
408<script>
409	var relevanssi_rt_regex = /(&|\?)_(rt|rt_nonce)=(\w+)/g
410	var newUrl = window.location.search.replace(relevanssi_rt_regex, '')
411	if (newUrl.substr(0, 1) == '&') {
412		newUrl = '?' + newUrl.substr(1)
413	}
414	history.replaceState(null, null, window.location.pathname + newUrl + window.location.hash)
415</script>
vendor: 1 bytes, line 415
415
416<script id="cntrst-scripts-js" src="https://radiomedia.fi/content/themes/radiomedia/assets/dist/frontend.js?ver=1734528926"></script>
vendor: 1 bytes, line 416
416
417<script id="instantpage-js" src="https://radiomedia.fi/content/plugins/air-helper/assets/js/instantpage.min.js?ver=5.2.0"></script>
vendor: 1 bytes, line 417
417
418<script id="seoaiwp-form-tracking-js-extra">
419var SeoaiwpConversionConfig = {"enabled":"","tagId":"","label":""};
420//# sourceURL=seoaiwp-form-tracking-js-extra
421</script>
vendor: 1 bytes, line 421
421
422<script id="seoaiwp-form-tracking-js-after">
423/**
424 * WordPress & HubSpot Form Events → GTM dataLayer + GA4 gtag
425 *
426 * Listens for successful form submissions from popular WordPress form
427 * plugins and HubSpot forms, then pushes events to both window.dataLayer
428 * (GTM) and gtag (GA4 direct).
429 *
430 * Also tracks clicks on tel: and mailto: links.
431 *
432 * Supported: CF7, Gravity Forms, WPForms, Forminator, Formidable,
433 * Ninja Forms, Fluent Forms, WS Form, Elementor Forms, Enfold (Avia),
434 * HubSpot Forms v3, HubSpot Forms v4, Pipedrive LeadBooster, Leadoo
435 */
436
437// ── IE11 closest() polyfill ───────────────────────────────────────
438
439if (!Element.prototype.closest) {
440    Element.prototype.closest = function (s) {
441        var el = this;
442        do {
443            if (el.matches(s)) return el;
444            el = el.parentElement || el.parentNode;
445        } while (el !== null && el.nodeType === 1);
446        return null;
447    };
448}
449
450(function () {
451    'use strict';
452
453    window.dataLayer = window.dataLayer || [];
454
455    // ── helpers ──────────────────────────────────────────────────
456
457    // Fires a Google Ads conversion event using values from SeoaiwpConversionConfig
458    // (injected via wp_localize_script from WPSEOAI → Settings → SEA).
459    function fireGoogleAdsConversion() {
460        var cfg = window.SeoaiwpConversionConfig;
461        if (!cfg || !cfg.enabled || !cfg.tagId || !cfg.label) return;
462        if (typeof gtag !== 'function') return;
463
464        gtag('event', 'conversion', {
465            send_to: 'AW-' + cfg.tagId + '/' + cfg.label
466        });
467    }
468
469    function pushEvent(formPlugin, formId, formElement, extraData) {
470        var submitBtn = formElement
471            ? formElement.querySelector('[type="submit"]')
472            : null;
473
474        var submitText = '';
475        if (submitBtn) {
476            submitText = submitBtn.tagName === 'INPUT'
477                ? submitBtn.value
478                : submitBtn.textContent.trim();
479        }
480
481        var basePayload = {
482            event:      'wpseoai_form_submission',
483            formPlugin: formPlugin,
484            formId:     formId || '',
485            formClass:  formElement ? (formElement.className || '') : '',
486            submitText: submitText,
487            pageUrl:    window.location.href,
488            pageTitle:  document.title
489        };
490
491        if (extraData) {
492            Object.keys(extraData).forEach(function (key) {
493                basePayload[key] = extraData[key];
494            });
495        }
496
497        // ── GTM dataLayer push ───────────────────────────────────
498
499        window.dataLayer.push(basePayload);
500
501        // ── GA4 gtag direct ──────────────────────────────────────
502
503        if (typeof gtag === 'function') {
504            var gtagPayload = {};
505            Object.keys(basePayload).forEach(function (key) {
506                if (key !== 'event') gtagPayload[key] = basePayload[key];
507            });
508            gtag('event', 'wpseoai_form_submission', gtagPayload);
509        }
510
511        // ── Google Ads conversion ────────────────────────────────
512
513        fireGoogleAdsConversion();
514    }
515
516    function pushLinkClick(eventName, linkType, href, linkText) {
517        var payload = {
518            event:     eventName,
519            linkType:  linkType,
520            linkHref:  href,
521            linkText:  linkText,
522            pageUrl:   window.location.href,
523            pageTitle: document.title
524        };
525
526        window.dataLayer.push(payload);
527
528        if (typeof gtag === 'function') {
529            gtag('event', eventName, {
530                link_type:  linkType,
531                link_href:  href,
532                link_text:  linkText,
533                page_url:   window.location.href,
534                page_title: document.title
535            });
536        }
537
538        // ── Google Ads conversion ────────────────────────────────
539
540        fireGoogleAdsConversion();
541    }
542
543    // ── 1. Contact Form 7 ───────────────────────────────────────
544
545    document.addEventListener('wpcf7mailsent', function (event) {
546        var formId = event.detail.contactFormId;
547        pushEvent('cf7', formId, event.target);
548    }, false);
549
550    // ── 2. Gravity Forms ────────────────────────────────────────
551    //
552    // Three confirmation types need separate handling:
553    //   a) AJAX text confirmation  → 'gform_confirmation_loaded' fires
554    //   b) Non-AJAX page reload    → '.gform_confirmation_message' present on load
555    //   c) Page redirect           → track before redirect via 'gform_pre_submission'
556
557    var gfTrackedForms = {};
558
559    jQuery(function ($) {
560
561        // (a) AJAX text/message confirmation
562        $(document).on('gform_confirmation_loaded', function (event, formId) {
563            if (gfTrackedForms['conf_' + formId]) return;
564            gfTrackedForms['conf_' + formId] = true;
565
566            var formEl = document.getElementById('gform_' + formId) ||
567                document.querySelector('#gform_wrapper_' + formId + ' form');
568            pushEvent('gravity_forms', formId, formEl);
569        });
570
571        // (b) Non-AJAX page reload — confirmation message rendered server-side
572        $('.gform_confirmation_message').each(function () {
573            var wrapper = $(this).closest('.gform_wrapper');
574            var formId = (wrapper.attr('id') || '').replace('gform_wrapper_', '');
575            if (formId && !gfTrackedForms['conf_' + formId]) {
576                gfTrackedForms['conf_' + formId] = true;
577                pushEvent('gravity_forms', formId, null);
578            }
579        });
580
581        // (c) Redirect confirmation — capture before the browser navigates away
582        if (typeof gform !== 'undefined' && typeof gform.addAction === 'function') {
583            gform.addAction('gform_pre_submission', function (formEl) {
584                var formId = formEl ? formEl.getAttribute('id') : '';
585                formId = formId.replace('gform_', '');
586                if (formId) {
587                    pushEvent('gravity_forms', formId, formEl);
588                    gfTrackedForms['conf_' + formId] = true;
589                }
590            });
591        }
592
593        // ── 3. WPForms ─────────────────────────────────────────
594
595        $(document).on('wpformsAjaxSubmitSuccess', 'form.wpforms-form', function (event) {
596            var formId = $(event.target).attr('data-formid');
597            pushEvent('wpforms', formId, event.target);
598        });
599
600        // ── 4. Forminator ──────────────────────────────────────
601
602        $(document).on('forminator:form:submit:success', function (event) {
603            var formId = $(event.target).find('input[name="form_id"]').val();
604            pushEvent('forminator', formId, event.target);
605        });
606
607        // ── 5. Formidable Forms ────────────────────────────────
608        //   a) AJAX → frmFormComplete fires
609        //   b) Non-AJAX page reload → .frm_message present on load
610
611        var frmTrackedForms = {};
612
613        $(document).on('frmFormComplete', function (event, form) {
614            var formId = $(form).find('input[name="form_id"]').val();
615            if (formId) frmTrackedForms['frm_' + formId] = true;
616            pushEvent('formidable', formId, form);
617        });
618
619        // Non-AJAX: detect success message rendered after page reload
620        $('.frm_message').each(function () {
621            var wrapper = $(this).closest('.frm_forms');
622            var formId = wrapper.find('input[name="form_id"]').val() ||
623                (wrapper.attr('id') || '').replace('frm_form_', '').replace('_container', '');
624            if (formId && !frmTrackedForms['frm_' + formId]) {
625                frmTrackedForms['frm_' + formId] = true;
626                pushEvent('formidable', formId, wrapper.find('form')[0] || null);
627            }
628        });
629
630        // ── 6. Ninja Forms ─────────────────────────────────────
631
632        if ($.fn.onFirst) {
633            $(document).onFirst('nfFormSubmitResponse', function (event, data) {
634                var formId = data.response.data.form_id;
635                pushEvent('ninja_forms', formId, event.target);
636            });
637        } else {
638            $(document).on('nfFormSubmitResponse', function (event, data) {
639                var formId = data.response.data.form_id;
640                pushEvent('ninja_forms', formId, event.target);
641            });
642        }
643
644        // ── 7. Fluent Forms ────────────────────────────────────
645
646        $(document).on('fluentform_submission_success', function (event, data) {
647            if (!data || !data.form) return;
648            var formId = data.config.id;
649            pushEvent('fluent_forms', formId, data.form[0] || event.target);
650        });
651
652        // ── 8. WS Form ────────────────────────────────────────
653
654        $(document).on('wsf-submit-complete', function (event, formObject, formId) {
655            pushEvent('ws_form', formId, event.target);
656        });
657
658        // ── 9. Elementor Forms ─────────────────────────────────
659
660        function observeElementorForm(form) {
661            var observer = new MutationObserver(function (mutations) {
662                for (var i = 0; i < mutations.length; i++) {
663                    if (form.querySelector('.elementor-message-success')) {
664                        var formId = form.getAttribute('id') ||
665                            (form.querySelector('input[name="form_id"]') || {}).value || '';
666                        pushEvent('elementor_form', formId, form);
667                        observer.disconnect();
668                        return;
669                    }
670                }
671            });
672
673            observer.observe(form, {
674                attributes: true,
675                childList:  true,
676                subtree:    true
677            });
678        }
679
680        // existing forms on page
681        document.querySelectorAll('.elementor-form').forEach(function (form) {
682            observeElementorForm(form);
683        });
684
685        // forms inside Elementor popups (loaded dynamically)
686        var popupObserver = new MutationObserver(function (mutationsList) {
687            for (var i = 0; i < mutationsList.length; i++) {
688                var popupForm = document.querySelector('[class*="elementor-popup"] form');
689                if (popupForm) {
690                    observeElementorForm(popupForm);
691                    popupObserver.disconnect();
692                    break;
693                }
694            }
695        });
696        popupObserver.observe(document.body, { childList: true, subtree: true });
697
698        // ── 10. Enfold (Avia) Contact Forms ───────────────────────
699        //
700        // Enfold forms submit via AJAX and do not fire custom JS events.
701        // On success the form slides up and the response container
702        // (#ajaxresponse_{id}) becomes visible with an .avia-form-success heading.
703        // We use a MutationObserver to detect this DOM change.
704
705        var enfoldTracked = {};
706
707        function observeEnfoldResponse(responseEl) {
708            var observer = new MutationObserver(function () {
709                if (responseEl.classList.contains('hidden') ||
710                    responseEl.style.display === 'none') {
711                    return;
712                }
713
714                if (!responseEl.querySelector('.avia-form-success')) {
715                    return;
716                }
717
718                var formId = (responseEl.id || '').replace('ajaxresponse_', '');
719                if (enfoldTracked[formId]) return;
720                enfoldTracked[formId] = true;
721
722                var formEl = responseEl.parentElement
723                    ? responseEl.parentElement.querySelector('form.avia_ajax_form') ||
724                    responseEl.parentElement.querySelector('form.ajax_form')
725                    : null;
726
727                pushEvent('enfold', formId, formEl);
728                observer.disconnect();
729            });
730
731            observer.observe(responseEl, {
732                attributes:      true,
733                attributeFilter: ['class', 'style'],
734                childList:       true,
735                subtree:         true
736            });
737        }
738
739        document.querySelectorAll('.ajaxresponse').forEach(function (el) {
740            observeEnfoldResponse(el);
741        });
742
743    });
744
745    // ── 11. HubSpot Forms v3 ───────────────────────────────────
746    //
747    // v3 forms communicate via window.postMessage. On success the
748    // message payload carries the form ID, conversion ID, and field values.
749
750    window.addEventListener('message', function (event) {
751        if (event.data.type === 'hsFormCallback' &&
752            event.data.eventName === 'onFormSubmitted') {
753
754            pushEvent(
755                'hubspot_v3',
756                event.data.id,
757                null,
758                {
759                    conversion_id: event.data.data.conversionId
760                }
761            );
762        }
763    });
764
765    // ── 12. HubSpot Forms v4 ───────────────────────────────────
766    //
767    // v4 forms fire a custom DOM event. Field values are fetched
768    // asynchronously via the HubspotFormsV4 API.
769
770    window.addEventListener('hs-form-event:on-submission:success', function (event) {
771        if (typeof HubspotFormsV4 === 'undefined') return;
772
773        var hsForm = HubspotFormsV4.getFormFromEvent(event);
774        if (!hsForm) return;
775
776        pushEvent(
777            'hubspot_v4',
778            hsForm.getFormId(),
779            null,
780            {
781                conversion_id: hsForm.getConversionId()
782            }
783        );
784    });
785
786    // ── 13. Lead form submissions ─────────────────────────────
787    //
788    // Lead forms dispatch a custom 'wpseoai:lead_form_submit' event on
789    // successful submission. The event detail may carry formId and any
790    // additional metadata the form wishes to surface.
791
792    document.addEventListener('wpseoai:lead_form_submit', function (event) {
793        pushEvent('wpseoai_lead_form', '', null);
794    }, false);
795
796    // ── 14. Pipedrive LeadBooster Forms ──────────────────────────
797    //
798    // Pipedrive forms are embedded as iframes and post a message to the
799    // parent window on submission. The payload includes formUUID which
800    // serves as the form identifier.
801
802    window.addEventListener('message', function (event) {
803        var data = event.data;
804        if (!data || data.event !== 'pipedrive_form_submit') return;
805
806        pushEvent('pipedrive', data.formUUID || '', null, null);
807    });
808
809    // ── 15. Leadoo ────────────────────────────────────────────────
810    //
811    // Leadoo pushes a { event: 'LEAD' } object to window.dataLayer on
812    // form submission. We wrap dataLayer.push to intercept it.
813    // The _busy guard prevents re-entrancy from our own pushEvent calls.
814
815    (function () {
816        var dl = window.dataLayer;
817        if (!dl || typeof dl.push !== 'function') return;
818
819        var _orig = dl.push.bind(dl);
820        var _busy = false;
821
822        dl.push = function () {
823            if (!_busy) {
824                for (var i = 0; i < arguments.length; i++) {
825                    var item = arguments[i];
826                    if (item && typeof item === 'object' && item.event === 'LEAD') {
827                        _busy = true;
828                        try {
829                            pushEvent('leadoo', '', null, null);
830                        } finally {
831                            _busy = false;
832                        }
833                    }
834                }
835            }
836            return _orig.apply(null, arguments);
837        };
838    }());
839
840    // ── 16. tel: and mailto: link clicks ──────────────────────
841    //
842    // Uses event delegation on document so dynamically injected links
843    // (popups, live chat widgets, etc.) are captured without re-binding.
844    // closest() walks up the DOM in case the click lands on a child
845    // element inside the anchor (e.g. an icon or span).
846    // hrefLower handles uppercase protocol variants (e.g. TEL:, MAILTO:).
847
848    document.addEventListener('click', function (event) {
849        var anchor = event.target.closest('a[href]');
850        if (!anchor) return;
851
852        var href = anchor.getAttribute('href') || '';
853        var hrefLower = href.toLowerCase();
854        var linkText = anchor.textContent.trim();
855
856        if (hrefLower.indexOf('tel:') === 0) {
857            pushLinkClick('wpseoai_tel_click', 'tel', href.slice(4), linkText);
858        } else if (hrefLower.indexOf('mailto:') === 0) {
859            pushLinkClick('wpseoai_mail_click', 'mailto', href.slice(7), linkText);
860        }
861    }, false);
862
863})();
864
865//# sourceURL=seoaiwp-form-tracking-js-after
866</script>
866
867
868</div>
869
870</body>
871</html>
872
873<!--Cached using Nginx-Helper on 2026-10-02 13:29:52. It took 8 queries executed in 0,552 seconds.-->
874<!--Visit http://wordpress.org/extend/plugins/nginx-helper/faq/ for more details-->
875<!-- plugin=object-cache-pro client=phpredis metric#hits=2800 metric#misses=9 metric#hit-ratio=99.7 metric#bytes=1219069 metric#prefetches=0 metric#store-reads=91 metric#store-writes=7 metric#store-hits=218 metric#store-misses=3 metric#sql-queries=8 metric#ms-total=561.68 metric#ms-cache=9.95 metric#ms-cache-avg=0.1026 metric#ms-cache-ratio=1.8 sample#redis-hits=1515355137 sample#redis-misses=94430099 sample#redis-hit-ratio=94.1 sample#redis-ops-per-sec=949 sample#redis-evicted-keys=0 sample#redis-used-memory=357620704 sample#redis-used-memory-rss=401256448 sample#redis-memory-fragmentation-ratio=1.1 sample#redis-connected-clients=5 sample#redis-tracking-clients=0 sample#redis-rejected-connections=0 sample#redis-keys=8974 -->

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.