Bradford's outdoor advertising puts your brand in front of thousands each day in a city proud of its cultural diversity and industrial heritage. With City Park's Mirror Pool, the Alhambra Theatre and the National Science and Media Museum attracting large audiences, let us help you tell your story and showcase your brand in a high-visibility setting that reflects West Yorkshire.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
The Spaces That Get You Seen
Thanks, we've got your enquiry. One of the team will be in touch shortly about your selected sites.
Oops! Something went wrong while submitting the form.
Gateway Positions With Local Standing
Welcome signs give your brand a presence on the verges of the main routes into Bradford, reaching drivers at the moment they arrive. Gateway positions carry a sense of local standing that few formats can offer.
Big Format, Always On The Move
Bus advertising puts your brand on the move across Bradford, travelling main arterial roads, retail streets and residential areas throughout the day. It is large-format visibility that follows the audience rather than waiting for them to pass by.
1,757,148
Annual Passenger Journeys
12
Buses
No items found.
window.Webflow = window.Webflow || [];
window.Webflow.push(() => {
const components = document.querySelectorAll('[swiper="1"]');
// Over this many testimonials the dots become a fixed window of
// MAX_DOTS that slides with the active slide, so a long list never
// runs past the card. Sizes match the bullet CSS: 10px + 2 x 4px.
const MAX_DOTS = 5;
const DOT_STEP = 18;
components.forEach((root, i) => {
const container = root.querySelector('[swiper="slider"]');
if (!container) return;
const nextEl = root.querySelector('[swiper="next-button"]');
const prevEl = root.querySelector('[swiper="prev-button"]');
const paginationEl = root.querySelector('[swiper="pagination"]');
// A single testimonial gets no looping or dragging; the arrows
// and dots are hidden for it in the Component Styles embed.
const count = container.querySelectorAll('.swiper-slide').length;
const multiple = count > 1;
const windowed = count > MAX_DOTS;
if (paginationEl && windowed) paginationEl.setAttribute('data-dots', 'window');
// Give unique IDs if multiple sliders exist
if (paginationEl) paginationEl.id = paginationEl.id || `swiper-pagination-${i}`;
if (nextEl) nextEl.id = nextEl.id || `swiper-next-${i}`;
if (prevEl) prevEl.id = prevEl.id || `swiper-prev-${i}`;
// Keep the active dot inside the window: centred where possible,
// pinned at either end of the list.
const slideDots = (s) => {
if (!paginationEl || !windowed) return;
const first = Math.min(Math.max(s.realIndex - Math.floor(MAX_DOTS / 2), 0), count - MAX_DOTS);
paginationEl.querySelectorAll('.swiper-pagination-bullet').forEach((b) => {
b.style.translate = `${-first * DOT_STEP}px 0`;
});
};
const swiper = new Swiper(container, {
slidesPerView: 1,
loop: multiple,
allowTouchMove: multiple,
spaceBetween: 24,
autoHeight: true,
speed: 500,
grabCursor: multiple,
watchOverflow: true,
centeredSlides: false,
keyboard: { enabled: multiple },
pagination: {
el: paginationEl ? `#${paginationEl.id}` : null,
clickable: true,
type: "bullets"
},
navigation: {
nextEl: nextEl ? `#${nextEl.id}` : null,
prevEl: prevEl ? `#${prevEl.id}` : null
},
a11y: { enabled: true },
observer: true,
observeParents: true,
breakpoints: {
992: { spaceBetween: 32 },
1280: { spaceBetween: 40 }
},
on: {
afterInit: slideDots,
paginationRender: slideDots,
slideChange: slideDots
}
});
// Update height and layout on resize
const relayout = () => swiper.updateAutoHeight(300);
window.addEventListener('resize', relayout);
window.addEventListener('orientationchange', relayout);
// Handle Webflow tabs/dropdowns reveal
document.addEventListener('click', (e) => {
if (
e.target.closest('.w-tab-link') ||
e.target.closest('.w-dropdown-toggle') ||
e.target.closest('[data-wf-dropdown]')
) {
setTimeout(() => {
swiper.update();
swiper.updateAutoHeight(300);
}, 150);
}
});
});
});
Frequently Asked Questions
Still have some questions? Contact us, or find quick answers below to our most common queries.
Are full vehicle wraps possible on trams and buses?
Full wraps are common and create unmissable, mobile billboards across cities and towns. Check out our Outdo case studies to see examples.
What does bus advertising cost?
Costs can vary by city, coverage, and format. As a guide, weekly rates can range from ~£20 to £90 per panel, depending on placement and type (Illustrative example only; confirm details with the Account Director for your area).
What kind of reach can outdo transport media deliver?
Transport OOH is one of the most impactful OOH channels; Outdo highlights strong weekday and weekend commuter reach for bus media. Use local audience data for precise planning.
What bus advertising formats are available with Outdo?
Outdo offers a comprehensive range including Streetliner, Superside, Super Rear, Mega Rear (single/double deck), T-Side, full Wraps, plus interiors (headliners, bulkheads)
What kind of reach can outdo transport media deliver?
Transport OOH is one of the most impactful OOH channels; Outdo highlights strong weekday and weekend commuter reach for bus media. Use local audience data for precise planning.
Bus
Are full vehicle wraps possible on trams and buses?
Full wraps are common and create unmissable, mobile billboards across cities and towns. Check out our Outdo case studies to see examples.
Where do tram ads reach?
Trams often cut through city centres and airport corridors delivering high visibility along busy routes.
Does Outdo cover trams as well?
UK tram options include full wraps, Mega Side, T-Side, Superside, Super Square, interior panels, and 6-sheet posters at stops.
Bus
What does bus advertising cost?
Costs can vary by city, coverage, and format. As a guide, weekly rates can range from ~£20 to £90 per panel, depending on placement and type (Illustrative example only; confirm details with the Account Director for your area).