Adtech and Martech Development

    Adtech and martech software development

    Ad tech has to answer a bid request in milliseconds and count every impression the same way your partners do, while martech has to keep customer data and consent in step across a dozen tools. Agnotic Technologies builds bidders, ad servers, publisher monetization code and marketing integrations to the published specifications.

    OpenRTB 2.6ads.txt and sellers.jsonMarketing automationConsent and opt-outs

    Trusted by global innovators

    Benchmark
    Chibasco
    Fundency
    Lantimer
    Lauren
    Lera
    One Minute
    Pento Pix
    TAP
    Xtrium
    Healthevolve
    Benchmark
    Chibasco
    Fundency
    Lantimer
    Lauren
    Lera
    One Minute
    Pento Pix
    TAP
    Xtrium
    Healthevolve
    Benchmark
    Chibasco
    Fundency
    Lantimer
    Lauren
    Lera
    One Minute
    Pento Pix
    TAP
    Xtrium
    Healthevolve
    Benchmark
    Chibasco
    Fundency
    Lantimer
    Lauren
    Lera
    One Minute
    Pento Pix
    TAP
    Xtrium
    Healthevolve

    Ad tech and martech

    What is adtech and martech software development?

    Adtech and martech software development is building the systems that buy, sell and serve digital ads, and the systems that run marketing campaigns and customer data, to the industry's published specifications. Agnotic Technologies builds bidders, ad servers, publisher monetization code, campaign tools and marketing automation integrations for ad tech companies, publishers and marketing teams.

    Ad tech and martech share data but solve different problems. Ad tech is about speed and agreement: answering auctions within the exchange's time limit and counting impressions the way partners will bill them. Martech is about consistency: one customer, one consent status and one set of numbers across many tools.

    Audience and viewing analytics for media companies are covered on our media and entertainment analytics page. This page is about the systems that run the auction, the ad and the campaign.

    Decision table

    Which ad tech or martech product are you building?

    The product type decides the standards, the latency budget and the hardest engineering problem. Pick the row that matches your product before anything else.

    Product typeWho runs itWhat it doesInterfaces it must speakHardest engineering problem
    DSP or bidderAgencies, advertisers and buying platformsEvaluates bid requests and bids on impressions for campaignsOpenRTB bid request and response, win and billing noticesAnswering within tmax while pacing budgets across many servers
    SSP or ad exchangePublishers, app developers and sell-side platformsRuns the auction and sends bid requests to many buyersOpenRTB, SupplyChain object, sellers.jsonFan-out to buyers, timeouts and fair, auditable auctions
    Ad serverPublishers and advertisersDecides which ad shows in a slot and records deliveryTags, VAST for video, impression and click trackingDelivery counts that match partners' numbers
    Publisher monetization stackPublishers and app developersHeader bidding wrapper, ad slots, floors and consent handling on the page or in the appads.txt, app-ads.txt, OpenRTB, consent signalsRevenue without slowing the page or app
    Marketing automation integrationMarketing and revenue operations teamsMoves leads, events and consent between CRM, email, ads and the data warehouseVendor REST APIs, webhooks, bulk exportsDuplicates, sync loops and opt-outs that must reach every tool
    Campaign and creative managementAgencies and in-house marketing teamsPlans campaigns, routes creative for approval and pushes it to ad platformsAd platform APIs, asset storage, approval workflowsKeeping versions, approvals and live ads in step

    Many products combine two rows, such as a publisher stack with its own ad server. We scope each row separately so each one has its own tests.

    The auction

    What happens in one OpenRTB auction?

    Every bidder and exchange we build is tested against this sequence, including the paths where nothing wins.

    1. The exchange builds the bid request

      A request ID, one or more impressions, the site or app, device and user objects, the supply chain and the privacy signals, sent with a tmax.

    2. The bidder decides within tmax

      Targeting, budget, pacing and frequency checks run against data already in memory, because a database call at this point costs the auction.

    3. Bid or no bid

      The bidder returns a bid response with a price and markup or win notice, or an empty response with HTTP 204.

    4. The exchange picks a winner

      The winning bidder's nurl is called. A win is not yet a delivered or billable ad.

    5. The ad renders and becomes billable

      When the exchange's billing rule is met, the burl billing notice is called. This is the event finance should count.

    6. Logs are reconciled

      Bids, wins, billing notices and impressions are joined by request and bid ID, so every gap with a partner's report can be traced.

    Bidder architecture

    How is a bidder built to answer in time?

    Four layers, each with its own latency budget and its own tests.

    01

    Edge

    • Persistent HTTP connections to each exchange
    • Fast request parsing and validation
    • Timeouts set below the exchange's tmax
    • Load shedding when traffic spikes
    02

    Decision

    • Campaign and line item index held in memory
    • Targeting, floors and deal checks
    • Budget pacing and frequency caps
    • Bid price from rules or a model
    03

    Data

    • Audience segments in a low-latency store
    • Consent status checked before any user data is used
    • Campaign changes pushed to every server
    • Supply path rules from ads.txt and sellers.json
    04

    Logging and reporting

    • Every request, bid, win and billing notice streamed
    • Joins on request ID and bid ID
    • Spend and delivery reports per campaign
    • Discrepancy reports against partner statements

    Failure points

    Where do ad tech and martech builds fail?

    The problems we design against from the first sprint.

    Challenge

    The bidder answers after the exchange's tmax, so bids are silently dropped.

    Agnotic approach

    Latency is measured at the edge per exchange, with an internal timeout set below tmax and load tests at peak traffic.

    Challenge

    A campaign overspends because budget updates reach servers late.

    Agnotic approach

    Pacing runs on short intervals with a spend buffer, and every server reads the same budget state.

    Challenge

    Wins are counted as revenue, so reports never match invoices.

    Agnotic approach

    Reports count billing notices, not win notices, and keep both so the difference is visible.

    Challenge

    Inventory is bought through sellers the publisher never authorized.

    Agnotic approach

    Supply paths are checked against ads.txt, app-ads.txt and sellers.json files that are refreshed on a schedule.

    Challenge

    A contact opts out of email in one tool but keeps receiving campaigns from another.

    Agnotic approach

    Opt-outs are written to one consent record and pushed to every connected tool, with a check that each one applied it.

    Challenge

    Two marketing tools update each other in a loop and create duplicates.

    Agnotic approach

    Each field has one owning system, sync jobs carry a source marker, and records match on a stable key.

    Martech connections

    Which systems does a martech integration connect?

    The systems we connect most often. Each field has one owning system, agreed before any sync is built.

    Customer records

    • CRM accounts, contacts and leads
    • Customer data platform profiles
    • Ecommerce customers and orders

    Campaigns

    • Marketing automation and email platforms
    • Ad platforms and audience uploads
    • Landing pages and forms

    Consent

    • Consent management platforms
    • Email opt-out and preference centres
    • Privacy request handling

    Measurement

    • Web and app analytics
    • Data warehouse and BI tools
    • Attribution and conversion APIs

    Privacy and consent

    Which privacy rules shape the build?

    Your legal team decides how each rule applies. We build the signals and controls into the data flow.

    01

    Privacy signals in bid requests

    Example: A request carries consent strings or a regulation flag in its privacy objects

    Approach: The bidder reads the signal before using any user data and logs which signal each decision used.

    02

    Email opt-outs

    Example: A contact unsubscribes from marketing email

    Approach: The opt-out link works with nothing more than the email address and preferences, and the opt-out reaches every sending tool.

    03

    Children's audiences

    Example: An app or site directed to children under 13

    Approach: Requests flagged for children are excluded from audience targeting and third-party data by default.

    04

    Partner data terms

    Example: A contract limits how an audience segment may be used or how long it is kept

    Approach: Contract terms become rules in the data model: which campaigns may use a segment and when it expires.

    Components we build for ad tech and martech teams

    Components we design and build, from a single integration to a full product.

    Bidders and DSP components

    OpenRTB bidders, campaign and line item management, budget pacing and frequency capping.

    Exchange and SSP components

    Auction logic, buyer connections, floors and SupplyChain handling for sell-side platforms.

    Ad servers and decisioning

    Ad selection, delivery tracking and reporting for publishers and advertisers.

    Supply path checks

    Crawlers and validators for ads.txt, app-ads.txt and sellers.json files.

    Marketing automation integrations

    Two-way sync of leads, events and consent between CRM, email, ad platforms and your warehouse.

    Campaign and creative tools

    Campaign planning, creative approval workflows and publishing to ad platforms through their APIs.

    Who it is for

    Teams we build ad tech and martech for

    Teams that need the engineering behind their ads and campaigns, not another subscription.

    Ad tech companies

    Bidders, exchanges and ad servers that need more engineering capacity or a performance rebuild.

    Publishers and app developers

    Monetization code, header bidding and supply path files kept current.

    Retailers with their own ad network

    Sponsored product and on-site ad placements served from the retailer's own data.

    Marketing and revenue operations teams

    Integrations that keep CRM, email, ad platforms and the warehouse in step.

    Adtech and martech startups

    First releases built to the published specifications, so partner integrations do not need rework later.

    Scope and cost

    What drives the cost of adtech and martech development?

    We do not publish prices. These factors set the scope, which we confirm on the scoping call.

    Product type

    Which rows of the decision table you are building, and whether they share code.

    Traffic and latency

    Requests per second at peak and the time each exchange allows for a response.

    Partners

    How many exchanges, ad platforms or marketing tools must be connected and certified.

    Reporting

    Which reports must reconcile with partners and finance, and how quickly.

    Consent and privacy

    Which signals must be read, stored and passed on, and to which tools.

    Existing code

    Whether we build new, extend your platform or replace a component in place.

    Engagement

    From one partner connection to scale

    From the product type to a component running against real partners.

    1.

    Scoping call

    We agree the product type, the partners and the numbers that must match.

    Scope
    2.

    Specification review

    We map your partners' versions of OpenRTB, VAST or each marketing API, including their extensions.

    Specs
    3.

    Fixed-scope first release

    One partner connection end to end, load tested and reconciled against their reports.

    Build
    4.

    Scale and support

    More partners, more traffic and on-call support, or a hand-over to your engineers.

    Scale

    Specifications

    Specifications we build to

    The public specifications and rules behind auctions, supply paths and email consent.

    OpenRTB 2.6ads.txtsellers.jsonIAB VAST16 CFR 316
    Facts and sources

    Which specifications shape ad tech and martech builds?

    Short facts the work is designed around, each linked to its primary source.

    • In OpenRTB 2.6, tmax is the maximum time in milliseconds the exchange allows for bids to be received, including internet latency, and a valid call that returns no content, such as an empty bid response that signals no bid, should return HTTP 204.

      Source: IAB Tech Lab, OpenRTB 2.6 specification, sections 2.1 and 3.2.1
    • OpenRTB 2.6 defines nurl as the win notice URL the exchange calls if a bid wins, which is not necessarily a delivered, viewed or billable ad, and burl as the billing notice URL called when a winning bid becomes billable under the exchange's business policy.

      Source: IAB Tech Lab, OpenRTB 2.6 specification, section 4.2.3
    • ads.txt stands for Authorized Digital Sellers: a method publishers and distributors use to publicly declare the companies they authorize to sell their digital inventory. app-ads.txt extends it to apps distributed through mobile and connected TV app stores.

      Source: IAB Tech Lab, ads.txt and app-ads.txt
    • sellers.json lets buyers discover the entities that are direct sellers of, or intermediaries in, the selling of digital advertising, and the OpenRTB SupplyChain object lets buyers see all parties who are selling or reselling a given bid request.

      Source: IAB Tech Lab, sellers.json
    • Under the CAN-SPAM Rule, a sender may not require a recipient to pay a fee, give any information other than an email address and opt-out preferences, or take any step other than replying to an email or visiting a single web page in order to opt out.

      Source: 16 CFR 316.5 (eCFR)

    Frequently Asked Questions

    We do not publish a price. Cost follows the product type, peak traffic and latency, the number of partners, the reports that must reconcile, the consent signals involved and whether we build new or extend your platform. You get a written proposal after the scoping call.