PageSourceSearch

https://www.zalster.com/work

html zalster.com collected 2026-10-04 11:33:40 UTC 19,372 bytes, 1 lines download raw bytes

1<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/assets/zalster-logo-CvHinKYe.png"/><link rel="preload" as="image" href="/assets/zalster-connected-frI0jG4I.jpg"/><link rel="stylesheet" href="/assets/styles-BoL7_omk.css" data-precedence="default"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&amp;family=Space+Grotesk:wght@500;600;700&amp;display=swap" data-precedence="default"/><title>Performance Marketing Work — Zalster</title><meta name="author" content="Zalster"/><meta property="og:site_name" content="Zalster"/><meta name="description" content="See how Zalster connects strategy, media, creative, measurement, and optimisation into one performance programme."/><meta property="og:title" content="Performance Marketing Work — Zalster"/><meta property="og:description" content="Representative full-service performance engagements from Zalster."/><meta property="og:type" content="website"/><meta property="og:url" content="/work"/><meta name="twitter:card" content="summary_large_image"/><link rel="modulepreload" href="/assets/index-DpB4Ff8_.js"/><link rel="modulepreload" href="/assets/createLucideIcon-20ulNKk6.js"/><link rel="modulepreload" href="/assets/sparkles-C-COfwaw.js"/><link rel="modulepreload" href="/assets/chart-column-DAKzgT3N.js"/><link rel="modulepreload" href="/assets/search-B2FnUcRo.js"/><link rel="modulepreload" href="/assets/target-B8-e6LVs.js"/><link rel="modulepreload" href="/assets/work-Cvviu5RQ.js"/><link rel="modulepreload" href="/assets/site-shell-tGZa6T94.js"/><link rel="modulepreload" href="/assets/layers-CeGKf28f.js"/><link rel="modulepreload" href="/assets/zalster-connected-C1ahTu9R.js"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="icon" href="/favicon.png" type="image/png"/><link rel="canonical" href="/work"/><link rel="alternate" hrefLang="en" href="/work"/><link rel="alternate" hrefLang="sv" href="/se/work"/>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"Organization","name":"Zalster","url":"https://www.zalster.com","foundingDate":"2015","address":{"@type":"PostalAddress","addressLocality":"Gothenburg","addressCountry":"SE"},"knowsAbout":["Performance marketing","Paid media","Marketing analytics","MarTech","Search engine optimization","AI search visibility","Creative production"]}</script>
1</head><body><!--$--><div class="min-h-screen overflow-x-hidden bg-background text-foreground"><header class="sticky top-0 z-50 border-b border-border bg-background/95 backdrop-blur-md"><div class="mx-auto grid h-20 max-w-[1440px] grid-cols-[minmax(0,1fr)_auto] items-center gap-5 px-5 lg:px-10"><div class="flex min-w-0 items-center gap-4"><a aria-label="Zalster home" href="/" class="block min-w-0"><img src="/assets/zalster-logo-CvHinKYe.png" alt="Zalster" width="600" height="155" class="h-auto w-36 sm:w-40"/></a><span class="hidden border-l border-border pl-4 text-[10px] font-semibold uppercase leading-relaxed tracking-[0.16em] text-muted-foreground xl:block">Gothenburg<br/>Est. 2015</span></div><nav class="hidden items-center gap-6 text-[13px] font-semibold lg:flex" aria-label="Main navigation"><a href="/#services" class="transition-colors hover:text-primary">Expertise</a><a class="transition-colors hover:text-primary text-primary" href="/work" data-status="active" aria-current="page">Work</a><a href="/about" class="transition-colors hover:text-primary">Studio</a><a href="/team" class="transition-colors hover:text-primary">People</a><a href="/insights" class="transition-colors hover:text-primary">Journal</a><div class="flex items-center gap-2" aria-label="Choose language"><span class="inline-flex min-h-8 items-center border-b-2 border-transparent px-1 text-[11px] font-semibold uppercase tracking-[0.16em] text-muted-foreground transition-colors hover:text-primary border-primary text-foreground" aria-current="true">EN</span><span class="text-border">/</span><a aria-label="Byt till svenska" href="/se/work" class="inline-flex min-h-8 items-center border-b-2 border-transparent px-1 text-[11px] font-semibold uppercase tracking-[0.16em] text-muted-foreground transition-colors hover:text-primary">SV</a></div><a href="/growth-review" class="inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm cursor-pointer transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 py-2 group h-10 rounded-none px-1 font-semibold hover:bg-transparent hover:text-primary"><span class="h-2 w-2 rounded-full bg-primary"></span>Start a project<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right transition-transform group-hover:translate-x-1" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></nav><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium cursor-pointer transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 hover:bg-accent hover:text-accent-foreground h-9 w-9 lg:hidden" aria-label="Open menu"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-menu" aria-hidden="true"><path d="M4 5h16"></path><path d="M4 12h16"></path><path d="M4 19h16"></path></svg></button></div></header><main><section class="mx-auto max-w-[1440px] px-5 py-12 lg:px-10 lg:py-20"><div class="grid gap-5 lg:grid-cols-12"><div class="flex min-h-[520px] flex-col justify-between rounded-lg bg-foreground p-7 text-background lg:col-span-7 lg:p-14"><p class="text-sm font-semibold uppercase tracking-[0.14em] text-primary">Work</p><div><h1 class="font-display text-5xl font-semibold leading-[0.95] sm:text-7xl">Improve performance across the whole programme.</h1><p class="mt-7 max-w-xl text-lg text-background/70">Since 2015, our strongest engagements have connected disciplines around a commercial question rather than optimising each channel in isolation.</p></div></div><div class="relative min-h-[400px] overflow-hidden rounded-lg lg:col-span-5"><img src="/assets/zalster-connected-frI0jG4I.jpg" alt="Abstract connected marketing system" class="absolute inset-0 h-full w-full object-cover"/>
1</div></div></section><section class="border-y border-border py-24 lg:py-32"><div class="mx-auto max-w-[1440px] px-5 lg:px-10"><div class="grid gap-7 lg:grid-cols-12"><p class="text-sm font-semibold uppercase tracking-[0.14em] text-muted-foreground lg:col-span-3">Representative engagements</p><h2 class="font-display text-4xl font-semibold sm:text-6xl lg:col-span-9">Three types of engagement.</h2></div><div class="mt-14 grid gap-4 lg:grid-cols-3"><article class="bg-primary text-primary-foreground flex min-h-[340px] flex-col justify-between rounded-lg p-8"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers h-8 w-8" aria-hidden="true"><path d="M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z"></path><path d="M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12"></path><path d="M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17"></path></svg><div><h3 class="font-display text-3xl font-semibold">Multi-market commerce</h3><p class="mt-4 leading-relaxed opacity-70">Unite acquisition, measurement, and creative learning across markets with one shared operating view.</p></div></article><article class="bg-secondary text-secondary-foreground flex min-h-[340px] flex-col justify-between rounded-lg p-8"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-braces h-8 w-8" aria-hidden="true"><path d="M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1"></path><path d="M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1"></path></svg><div><h3 class="font-display text-3xl font-semibold">Measurement rebuild</h3><p class="mt-4 leading-relaxed opacity-70">Audit event flows, consent, platform signals, and reporting before rebuilding a more dependable measurement layer.</p></div></article><article class="bg-card flex min-h-[340px] flex-col justify-between rounded-lg p-8"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right h-8 w-8" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg><div><h3 class="font-display text-3xl font-semibold">Performance review</h3><p class="mt-4 leading-relaxed opacity-70">Reframe an underperforming mix around commercial economics, a sharper testing plan, and clear channel roles.</p></div></article></div><p class="mt-6 max-w-3xl text-sm leading-relaxed text-muted-foreground">Each engagement starts with the commercial question and the data already available. We then agree the scope, owners, working rhythm, and measures of progress before delivery begins.</p></div></section><section class="bg-foreground py-24 text-background lg:py-32"><div class="mx-auto grid max-w-[1440px] gap-12 px-5 lg:grid-cols-2 lg:px-10"><div><p class="text-sm font-semibold uppercase tracking-[0.14em] text-primary">Full-service delivery</p><h2 class="mt-5 font-display text-4xl font-semibold sm:text-6xl">One team from strategy through delivery.</h2><p class="mt-6 max-w-xl text-lg text-background/65">We combine planning, channel execution, creative testing, measurement, and continuous optimisation in one accountable performance programme.</p></div><div class="grid gap-3"><div class="flex items-center justify-between gap-3 border-b border-background/20 py-5"><span class="flex min-w-0 items-center gap-3 font-display text-lg font-semibold sm:text-xl"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-target h-5 w-5 shrink-0 text-primary" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><circle cx="12" cy="12" r="6"></circle><circle cx="12" cy="12" r="2"></circle></svg>Commercial strategy</span><span class="shrink-0 text-sm text-primary">0<!-- -->1</span></div><div class="flex items-center justify-between gap-3 border-b border-background/20 py-5"><span class="flex min-w-0 items-center gap-3 font-display text-lg font-semibold sm:text-xl"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers h-5 w-5 shrink-0 text-primary" aria-hidden="true"><path d="M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z"></path><path d="M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12"></path><path d="M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17"></path></svg>Cross-channel activation</span><span class="shrink-0 text-sm text-primary">0<!-- -->2</span></div><div class="flex items-center justify-between gap-3 border-b border-background/20 py-5"><span class="flex min-w-0 items-center gap-3 font-display text-lg font-semibold sm:text-xl"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chart-column h-5 w-5 shrink-0 text-primary" aria-hidden="true"><path d="M3 3v16a2 2 0 0 0 2 2h16"></path><path d="M18 17V9"></path><path d="M13 17V5"></path><path d="M8 17v-3"></path></svg>Measurement &amp; insight</span><span class="shrink-0 text-sm text-primary">0<!-- -->3</span></div><div class="flex items-center justify-between gap-3 border-b border-background/20 py-5"><span class="flex min-w-0 items-center gap-3 font-display text-lg font-semibold sm:text-xl"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right h-5 w-5 shrink-0 text-primary" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg>Testing &amp; optimisation</span><span class="shrink-0 text-sm text-primary">0<!-- -->4</span></div></div></div></section><section class="bg-primary py-24 text-primary-foreground lg:py-32"><div class="mx-auto grid max-w-[1440px] gap-10 px-5 lg:grid-cols-[1fr_auto] lg:items-end lg:px-10"><div><p class="text-sm font-semibold uppercase tracking-[0.14em]">An initial conversation</p><h2 class="mt-5 max-w-5xl font-display text-5xl font-semibold leading-[0.95] sm:text-7xl">
1Let’s discuss your next growth priority.</h2><p class="mt-6 max-w-2xl text-lg text-primary-foreground/75">Tell us what you are working on. We’ll look at the evidence, discuss the assumptions, and suggest a practical next step.</p></div><a href="/growth-review" class="inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium cursor-pointer transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80 py-2 h-16 w-fit rounded-full px-8 text-base">Start a conversation<!-- --> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></div></section></main><section class="border-y border-border bg-background py-20 lg:py-28"><div class="mx-auto max-w-[1440px] px-5 lg:px-10"><div class="grid gap-8 lg:grid-cols-12"><div class="lg:col-span-4"><p class="text-sm font-semibold uppercase tracking-[0.14em] text-primary">Independent Gothenburg agency · Since 2015</p><h2 class="mt-5 font-display text-4xl font-semibold leading-tight sm:text-5xl">More than ten years of change has made us less interested in shortcuts.</h2><p class="mt-6 max-w-xl leading-relaxed text-muted-foreground">Zalster was founded in 2015. The tools have changed quickly since then, while the need for clear priorities, dependable measurement, and well-executed work has remained.</p></div><div class="grid gap-4 sm:grid-cols-3 lg:col-span-8"><article class="rounded-lg bg-card p-7"><span class="text-sm font-semibold text-primary">0<!-- -->1</span><h3 class="mt-12 font-display text-2xl font-semibold">Platforms will change</h3><p class="mt-4 leading-relaxed text-muted-foreground">We have seen channels, formats, and algorithms come and go. The strategy still needs to work after the next product update.</p></article><article class="rounded-lg bg-card p-7"><span class="text-sm font-semibold text-primary">0<!-- -->2</span><h3 class="mt-12 font-display text-2xl font-semibold">The business is the reference point</h3><p class="mt-4 leading-relaxed text-muted-foreground">Platform data is useful, but margin, customer quality, and realised sales decide whether the work creates value.</p></article><article class="rounded-lg bg-card p-7"><span class="text-sm font-semibold text-primary">0<!-- -->3</span><h3 class="mt-12 font-display text-2xl font-semibold">Experience should stay close to delivery</h3><p class="mt-4 leading-relaxed text-muted-foreground">Senior specialists remain involved in analysis, implementation, and ongoing decisions—not only the first meeting.</p></article></div></div></div></section><footer class="bg-foreground py-12 text-background"><div class="mx-auto grid max-w-[1440px] gap-10 px-5 md:grid-cols-[1fr_auto] md:items-end lg:px-10"><div><img src="/assets/zalster-logo-CvHinKYe.png" alt="Zalster" width="600" height="155" class="h-auto w-36 brightness-0 invert"/><p class="mt-5 max-w-sm text-sm text-background/50">Independent since 2015. Senior expertise in marketing, analytics, and technology, based in Gothenburg.</p></div><div class="flex flex-wrap gap-x-6 gap-y-3 text-sm text-background/65"><a class="hover:text-primary active" href="/work" data-status="active" aria-current="page">How we work</a><a href="/about" class="hover:text-primary">About</a><a href="/team" class="hover:text-primary">Team</a><a href="/insights" class="hover:text-primary">Newsroom</a><a href="/growth-review" class="hover:text-primary">Contact</a></div></div></footer></div>
1<script>(function(a,f){let l;try{l=JSON.parse(sessionStorage.getItem(a)||"{}")}catch{return}const n=l?.[f||history.state?.__TSR_key];let c=!1;for(const t in n){const e=n[t],o=e?.scrollX,s=e?.scrollY;if(Number.isFinite(o)&&Number.isFinite(s)){if(t==="window")scrollTo(o,s),c=!0;else if(t)try{const r=document.querySelector(t);r&&(r.scrollLeft=o,r.scrollTop=s)}catch{}}}if(c)return;const i=location.hash.slice(1);if(i){const t=history.state?.__hashScrollIntoViewOptions??!0;if(t){const e=document.getElementById(i);e&&e.scrollIntoView(t)}return}scrollTo(0,0)})("tsr-scroll-restoration-v1_3");document.currentScript.remove()</script>
1<!--/$-->
1<script class="$tsr" id="$tsr-stream-barrier">(self.$R=self.$R||{})["tsr"]=[];self.$_TSR={h(){this.hydrated=!0,this.c()},e(){this.streamEnded=!0,this.c()},c(){this.hydrated&&this.streamEnded&&(delete self.$_TSR,delete self.$R.tsr)},p(e){this.initialized?e():this.buffer.push(e)},buffer:[]};$_TSR.router=($R=>$R[0]={manifest:$R[1]={routes:$R[2]={__root__:$R[3]={preloads:$R[4]=["/assets/index-DpB4Ff8_.js","/assets/createLucideIcon-20ulNKk6.js","/assets/sparkles-C-COfwaw.js","/assets/chart-column-DAKzgT3N.js","/assets/search-B2FnUcRo.js","/assets/target-B8-e6LVs.js"],scripts:$R[5]=[$R[6]={attrs:$R[7]={type:"module",async:!0,src:"/assets/index-DpB4Ff8_.js"}}]},"/work":$R[8]={preloads:$R[9]=["/assets/work-Cvviu5RQ.js","/assets/site-shell-tGZa6T94.js","/assets/layers-CeGKf28f.js","/assets/zalster-connected-C1ahTu9R.js"]}}},matches:$R[10]=[$R[11]={i:"__root__�",u:1791113620061,s:"success",ssr:!0},$R[12]={i:"�work�work",u:1791113620063,s:"success",ssr:!0}],lastMatchId:"�work�work"})($R["tsr"]);$_TSR.e();document.currentScript.remove()</script>
1<script type="module" async="" src="/assets/index-DpB4Ff8_.js"></script>
1</body></html>

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.