Browse the help center

Release 155

Pay publishers and charge advertisers per viewable impression with vCPM, and read Viewable impressions, Viewable CTR and vCPM in reports; pin any action as a row of the Limits card and set the share of a cap at which delivery stops; leave notes a user reads on a Notes tab; DSP partners and header bidding in any currency, priced at the day's reference rate; a custom parameter registry with list values and "has all of"; any of / all of on multi-valued targeting; a cap on one conversion action; a Traffic Quality status that says what to do; sealed click IDs you can decode over the API; and the General report's conversions no longer counting playback and viewability events.

Reference network manager admin publisher advertiser

Release 155 is the viewability release. A campaign or a placement can be priced on vCPM — the advertiser pays, and the publisher earns, only for impressions that were actually seen — and the General report and the dashboards show Viewable impressions, Viewable CTR and vCPM beside the columns you have. Any action, the viewable impression included, can be pinned as a row of the Limits card, and the network sets the share of a cap at which delivery stops.

Alongside it: an operator can leave Notes a user reads on their own tab; a DSP partner or a header-bidding bid can be in any currency, priced at the day’s reference rate; custom parameters that carry a list of values are registered once and targeted item by item, with a new has all of; every multi-valued targeting list can be any of or all of; an action cap can name one conversion action; the Traffic Quality page leads with one invalid-traffic share and a status that says what to do; click IDs are sealed against tampering and can be decoded over the API; and the General report’s conversions no longer count video playback and viewability events, which changes the figures on networks that have them.

Things to act on.

Conversions fall on networks with video or viewability. The General report counted every action-log row as a conversion, including the playback and viewability events a video or vCPM impression fires — up to twenty per impression. Those system events now count as zero in Conversions, I2C, CCR and Conv. fraud, as the Advanced report already did. An action you pick by name is counted whatever it is, grouping by action keeps each row’s own count, and no money changes. Days before release 149 keep counting them. See Metrics.

vCPM is available to every role that may price on CPM; everything else new is off until you grant it. The viewable report columns, the Notes tab and the pinned rows of the Limits card are each behind a permission that no role has on upgrade — grant them in Admin → Users & access → User roles & permissions. Limit stop shares are 100 and nothing is pinned, so no cap stops earlier than it did until you set one. See Users and roles and Limits.

A DSP partner that bids in another currency needs its currency set. Until now a bid’s currency was ignored and the amount read as dollars — a partner answering 300 in yen won as a $300 CPM. Now a bid in the partner’s currency is converted at the day’s rate, a bid in another currency with a known rate is converted too, and a bid in a currency with no usable rate is refused rather than booked as dollars. Set Currency on the partner’s card. See DSP partners.

Traffic Quality statuses move. The invalid share is now counted exactly, impression by impression, and the routine-bot and data-centre categories that had silently never matched now do: on a test network about 5 % of impressions moved from suspicious to routine bots, and days too small to judge no longer set the network’s median. Every AI feature — the Traffic Quality notes among them — now counts against the requesting user’s monthly AI limit. See Invalid traffic and risk scoring.

Three things leave the console. A user’s, site’s or advertiser’s own ad-serving domain, the site’s invocation-code domain and domain categories are gone, with the Ad-Serving domains and Domain categories admin pages: ad tags have been built on the placement’s domain for several releases and nothing read those fields. A placement that stored another host serves from the default domain; tags already pasted keep working. See Networks and domains.

Screen width targeting is read in CSS pixels now. A request without a size from the tag used to be sized in physical pixels from the device data, so an iPhone read 1 170 px wide and fell into laptop-width rules. Such a phone now counts as a typical current phone, tablets and TVs without a size stay unsized, and the Screen size report rows change to match. See Targeting dimensions.

Pay and earn per viewable impression

A campaign, a banner, a site or a placement can be priced on vCPM beside CPM, CPC, CPA and the flat fees. The side on vCPM books the price per thousand on every measured viewable impression and nothing on impressions, clicks or conversions, so a vCPM publisher can run a CPM advertiser — still charged per impression — and the other way round, and a vCPM price on a site or a campaign covers the placements and banners below it. Country prices, the CSV upload, the minimum margin, price-adjustment rules and the REST API all take it (pricingType=VCPM), and a vCPM creative always carries the viewability beacon. A viewable that books money has to prove itself: the beacon carries a token signed when the ad was rendered, and an altered, replayed or day-old one is refused — viewable counts on networks that do not price on vCPM are untouched.

What vCPM does not cover: tags without the beacon (iframe and direct /ads tags, the XML ad API, native, header bidding, always-redirect creatives), video players with neither OM SDK nor VAST 4 ViewableImpression, and OpenRTB DSP demand on either side — those book nothing. The new vCPM Pricing Type permission is granted on upgrade to every role that already has CPM Pricing Type, so the same people see it; switch it off per role if you do not want it offered. See Pricing and Viewability and Open Measurement.

Viewable impressions, Viewable CTR and vCPM in the General report and on the dashboards. Three new columns in the basic, publisher and advertiser families, in every grouping, on the dashboards and in the tree’s hover card. Viewable CTR and vCPM are computed only on the traffic that has viewable impressions on the same day, creative, placement and country, so a creative nothing measures does not drag them down. They sit behind the new Analytics Report Column Viewable Impressions permission, off on every role: a role with it and Impressions reads both sets; a role with it and without Impressions reads Viewable CTR and vCPM in place of CTR and eCPM and keeps Requests and the real Fill rate. A role without it sees exactly what it saw before. The columns are not offered where the action log cannot answer — reports by action or attribution type, custom-parameter splits, the Advanced report. See Metrics and Run a report.

Pin any action to the Limits card, and choose where delivery stops

Two new cards under Admin → Ad serving → System preferences. Pinned actions: pin any action the per-action limits offer — Ad Viewable Impression, Skip, Complete, or one of your own conversion actions — and it becomes a Daily / Total row of the Limits card on advertisers, campaigns, banners, sites and placements, after the fixed rows. The row reads and saves the per-action limit on that action, so nothing about counting or serving changes. Limits: one whole percent per limit type — budget, requests, opportunities, impressions, clicks, conversions, per-action limits on actions you did not pin — plus a percent per pin. Below 100, every limit of that type stops delivery at that share of its cap, rounded up: a 1 000 viewable cap pinned at 98 stops at 980, a cap of 1 stays 1. The limits cards say so with an amber note, Delivery stops at 98 % of this limit (network setting).

Nothing is pinned and every share is 100 on upgrade. The pinned rows are shown to roles with the new Pinned Action Limits (advertisers, campaigns, banners) or Inventory Pinned Action Limits (sites, placements) permission — both off until granted — and a role with only that permission edits the pinned rows and nothing else; a cap is cleared by setting it to 0. See Limits.

Notes a user reads on their own Notes tab

An operator who may edit a user gets a Notes for the user panel on the user’s edit page: notes with an optional title and up to 5 000 characters of text, each with its own Add / Save, Edit and Delete, who wrote and last changed it, and whether — and when — the user read it. The user reads them on a new Notes tab between Analytics and Preferences, newest first, in their language and time zone, without the author’s name. A new note, or one whose title or text changes, is unread: the tab carries the count, an unread note has a dot and a bolder title, a check beside the date marks it read, and Mark all as read sits above the list. Opening the tab marks nothing. An operator switched into the user sees what is unread but cannot mark it.

The tab is shown to roles with the new Notes Tab Visible permission, off on upgrade, and only once the user has at least one note. The old internal Comments field on the user is now called Internal notes — only operators see it, as before. See Users and roles and Account users.

DSP partners and header bidding in any currency

A DSP partner’s card gets a Currency section: the currency it is quoted and bids in, the rate it is priced at today, and an optional contractual rate. The ad server fetches the day’s reference rates itself — the European Central Bank’s for the currencies it publishes, Frankfurter’s for the rest — and holds one rate per day, so every server prices the same way; a rate older than four days raises a warning, and one older than a week is not used. A bid’s currency is finally read: dollars are dollars, the partner’s currency is converted at its rate, another currency with a known rate is converted too, and a currency with no usable rate is refused. Win and loss notices settle in the bid’s currency, and a loser in another currency gets the clearing price in its own.

Header bidding follows: a publisher’s bid floor in another currency is converted instead of compared as dollars — a 150-yen floor no longer shuts out every bid — and a fill is booked at its converted value. The creative-level DSP Custom Currency parameters are gone, and a campaign’s exchange rate takes ten decimals so rates for rupiah or yen can be typed. See DSP partners, Header bidding settings and Programmatic DSP demand.

Custom parameters are registered, and a list is targeted item by item

A tag that packs several values into one parameter — cp.genre=rock,pop, a stitcher’s contentGenre=Comedy,Drama — could only be targeted with an expression; genre is one of pop compared the whole string and never matched. Admin → Targeting presets → Custom parameters now holds your parameters: the name, a label and a description, whether it arrives as a list and with which separator, an optional value list (closed, or open to other values), whether to record it in analytics, a live split preview and a Used by list of the rules that read it. A One of rule on a list parameter then matches item by item, and the new has all of requires every listed item. The targeting editor picks the parameter and its values from the registry, explains separators and escaping behind a ⓘ next to each field, previews a match and warns about a value that can never match. Unregistered parameters and every other rule behave as before.

Analytics recording is now per parameter, with a network policy for unregistered ones; a closed list records an unlisted value as Other (not in list), and the Advanced report’s filter on a list parameter finds a request holding the value among others. Nothing changes on upgrade: the policy starts as Legacy, under which the old Analytics-configuration include / exclude list keeps deciding, and the page offers Move it here when you are ready. The registry is behind a new admin permission, Custom Parameters, granted to everyone who holds Analytics Configuration. See Custom parameters and Custom Parameter targeting.

Any of, or all of, on every multi-valued targeting list

A retargeting rule such as visited pricing and booked a demo and started sign-up — one cookie per step — could not be written: several rules of one type always meant any of them. Each Include and each Exclude list of Cookie Value, Custom Parameter, DMP and API JSON Field targeting now has an or / and switch in its header. Values of one key a visitor holds once (one cookie name, one parameter) stay alternatives inside their group, every other rule is its own group, and the switch joins the groups: tier=gold, tier=silver, region=eu under and means (gold or silver) and eu. Every existing list stays on or. The classic interface shows the mode read-only, reading the list out in its heading: a long list shows its first three values and +N more, and the whole expression appears when you hover the heading. See Add targeting and Retargeting and audiences.

A cap on one conversion action

An Action Capping row can name the conversion action it counts, or keep Any action: stop after one Purchase no longer caps a visitor on every Lead too. Each such row has its own counter, and Flat is not available with a named action. Underneath, a bigger fix: a conversion reported server-to-server never reaches the visitor’s cookie, and a private window keeps the conversion and the next ad request apart, so cookie-based conversion caps simply missed them. On a network with server-side capping storage, every action cap on a cookie-based subject now also counts each conversion server-side, so a cap on server-to-server conversions holds; without server-side storage nothing changes. See Frequency capping.

Traffic Quality: one share, a status, and what to do

Every Traffic Quality surface — the page, the PDF, the API, the AI notes — leads with the same verdict: the exact share of a placement-day’s impressions that carry a strong invalid-traffic signal or repeat a view already received, what was paid for them, how many were refused before counting (never billed), and a status: Act, decided on the day; OK or Watch, judged on the placement’s previous seven days so one noisy day does not flip it; Not enough data for a thin day without a week behind it. The invalid share is split into routine bots, suspicious and counted twice, the page opens at the verdict with Act and Watch rows first, each row shows a share meter against the format’s lines, and the details say why and what to try first. The AI explains the verdict in your language and never re-scores it. Days scored before this release read their old level as a status. The status is evidence for a conversation with the publisher, not enforcement — ad serving reads none of it. See Invalid traffic and risk scoring and Moderation and quality.

Today’s click ID is plain base64 anyone can read and edit. The ad server now mints a sealed, compact version — about half the length — that refuses an altered, truncated or foreign token the way it refuses any malformed click id. Sealed click IDs start once the whole platform runs release 155: ops switches them on in one step after the rollout. Click IDs minted before keep working; the landing-page helper takes the sealed ones only from a snippet copied after the switch, so re-copy it then. With sealed IDs comes a decoder: POST /rest-api/tracking-decode.do and the assistant’s tracking_decode take click IDs, tracking URLs, postback URLs or a whole VAST and answer what each one carries and which of your entities it refers to — only for entities you may view, with the visitor’s IP, device ids and consent string always hidden. It needs the Action Tracking: Server-to-Server permission. The decoder and the assistant’s tool also take a click ID copied from the visitor’s ubvc (click) or ubv (view) cookie, where a sealed ID is spelled with . and ~, or the cookie’s whole value, read entry by entry. See Postback troubleshooting.

An action can also ask the ad server to judge its server-to-server conversions by the click’s visitor IP instead of the advertiser’s server address, so geo, the duplicate-conversion window and IP capping see the real visitor — a per-action checkbox for roles with the server-to-server permission, off by default. It works as soon as sealed click IDs start, on any action whose box is ticked while User IP in click IDs is Included under Validation settings. See Conversion actions.

Analytics

Group and filter the Advanced report by banner template, and group both reports by placement type, on the console, over the API and in the assistant; the placement-type names come in your language. A template that covers more creatives than the report can read at once is refused with a message that says how to narrow it, not with a truncated result.

Label filters narrow the Advanced report as they do the General one — they used to be dropped there silently. A role without the labels permission is refused the filter the way it is refused the grouping, with the permission named, and a saved report loads without a filter the role may not use. The Filter all labels checkbox is now a Match Any / Match All choice inside each label filter. A report never runs with no columns: an empty saved column set selects every column, and a tab whose report has no metric says so instead of drawing an empty table.

Query details lists every filter the report ran with — template, label, placement type, custom parameter, risk level, country — and the hours of the day next to the dates; a KPI tile shows metrics only.

Country and world-region names come in your console language: Deutschland for a German console, ドイツ for a Japanese one, in pickers, targeting chips, grids, reports and exports. Pickers still find a place typed in English, and the API keeps answering in English.

Fixed: a comma inside a filter value — a label named Coastal, Outdoor — is one value again; a backslash in a filter value, a risk name or a word where an id is expected answer a 400 that names the accepted values instead of a 500; Advanced dashboard widgets, which had been empty since release 117, show data; splitting columns by VAST quartiles returns the quartile columns; turning a split off gives back the action filter and the columns it took; a label-grouped report no longer fans a placement into every label it carries, and its totals count each log once; an Advanced report run right after a restart no longer caches an empty result; the hour window of the Advanced report and the raw logs, and the trend lines on every chart, which could dip below zero beside a spike, stay inside their data. See Run a report and Dashboards.

Screen width targeting

The Resolution rule is now a Screen width rule: quick-pick bands Phone, Tablet, Laptop and Desktop, or a custom From / To width, with a height range behind More: limit height. A request with no known size never matches an Include and always passes an Exclude. Existing rules match as before. See Targeting dimensions and Add targeting.

Also in this release

  • Statistics land in the hour they happened. During a stalled flush, five hours of traffic could be written into one hour; each record is now tagged with its hour as it is logged, so during a stall figures arrive late but never in the wrong hour, and held hours keep counting against limits. See Analytics pipelines explained.
  • A confirmed day is never silently lowered. When late figures reach a day marked Confirmed or Finalized, the figures are still written and the advertiser’s Status cell shows Changed after confirmation with the date; re-confirming the day clears it. See Finances and billing.
  • Cookie values with ”+” or ”%” are read as written. Since release 150 a value such as a+b was read as a b and %41 as A, so a Cookie Value rule on it never matched and $$COOKIE()$$ printed the changed value. Such rules now match — an Include rule on one serves more, an Exclude rule serves less. See Retargeting and audiences.
  • Frequency caps longer than 127 days no longer make the viewer’s other cap updates fail — about half of one network’s cap writes had been lost to one two-year cap.
  • Per-action conversion limits are judged on the right counters: a daily cap was compared against lifetime conversions and could stop a campaign for the day as soon as the root tracked it, a lifetime cap could run an hour past, and deleting one action’s limit reset every counter on the entity. Campaigns stopped that way start delivering. See Action limits.
  • A limit counts in the figures of the side that owns it, so a limit on an advertiser follows what the advertiser is reported, and one on a placement what the publisher is reported; without a scaling rule nothing changes.
  • Daisy chaining: a placement whose stored chain count was out of range can be saved again, and a creative linked from its own side — over the API, by the assistant, or by undo — now joins the placement’s chain instead of silently never serving there. With Apply priorities on, each tier’s country picker in the new interface shows its saved countries again — it had come up empty since release 154. See Daisy chaining and passback.
  • Listing a creative’s placements over the API no longer deletes its links to placements that had been deleted.
  • A user whose session expired is sent to log in again instead of seeing Missing or invalid CSRF token, and returns to the page afterwards; unsaved edits prompt Leave site? first.
  • Account pages stay inside a phone screen and keep the tab bar at the bottom.
  • The DSP partner grid selects one partner at a time; Edit, Delete and Force sync each act on one.
  • DSP analytics sync writes nothing for a day cut short by a restart and refuses a negative bucket instead of silently erasing the amount. See DSP partners.
  • $$REMOTE_COUNTRY$$ and $$COUNTRY$$ are documented as the two-letter code they return, with Britain as UK. See Macros.
  • The IP list’s Info column no longer reads null for an address with no known location, in the grid or in the CSV export — such a row is now empty. The Ban & white-listed IPs, Click fraud banned IPs and Invalid traffic banned IPs tabs and the troubleshooting-log filter hints (comma separated values) are spelled right. See Validation settings.
  • The Actions Log no longer stores a DSP partner’s analytics-sync credentials, CSRF tokens or URL secrets, older rows come back masked, and an undo built from a masked value is refused rather than writing *** back.
  • Text your customers read names no third-party services. Fraud scoring reads IP screening, the location database the IP data provider, device detection the device data provider, and the creative scanner the creative-scan provider — on the console, in the API descriptions and throughout this help centre.
  • The new interface fetches shared lists once and cancels requests for a page you have left, and the advertiser, campaign and creative edit pages load 20–50 % fewer statements.

For API and assistant users

  • Pricing: pricingType=VCPM on every pricing endpoint and in the assistant’s pricing tools. See Pricing over the API.
  • Notes: GET /rest-api/user-preference/notes, POST …/notes/{noteId}/read, POST …/notes/read-all and GET …/notes/unread-count for your own notes; GET / POST /rest-api/system-users/{userId}/notes and POST / DELETE …/notes/{noteId} for operators. user-preference/get carries notes with readAt; the assistant’s profile reports may.notesTab.
  • Targeting match mode: POST /rest-api/{entity}/{id}/targeting/match-mode with type, rule and matchMode ANY | ALL on all six levels; cookie-value/create takes an optional matchMode. Screen width: screen-resolution/create adds minWidth / maxWidth / minHeight / maxHeight, and screen-resolution/save-ranges saves up to 20 ranges in one call. See Targeting API.
  • Custom parameters: a new Custom Parameters tag — GET / POST /rest-api/custom-parameters, GET / POST …/{id}, POST …/{id}/delete, POST /rest-api/custom-parameter-policy and …/adopt-legacy; the assistant reaches them through its REST tool.
  • Capping: actionId on the /rest-api/{banner,campaign,placement}/capping and /rest-api/capping/{cappingId} paths, answered with actionName; the assistant’s campaign_overview, placement_overview and fill_check carry actionId and actionHidden. See Capping API.
  • Traffic Quality: /rest-api/traffic-quality/scores.do and the traffic_quality / traffic_quality_analyze tools add status, invalidPct, invalidRangePct, the GIVT / SIVT / repeat shares, invalidGross, confidence, topReasons, actions and a statuses filter; the 0–100 score and level stay as deprecated fields.
  • Tracking decode: POST /rest-api/tracking-decode.do and the new tracking_decode tool, behind the Action Tracking: Server-to-Server permission; both also take a ubvc / ubv cookie value, one item per entry. Actions take applyClickIpToServerToServer.
  • Help search: the assistant’s and the MCP connector’s help_search finds answers under a fourth-level heading, labelled with the heading they sit under, and answers deep inside a long Caveats section, returning the paragraph that answers — marked with a leading … — instead of the section’s first 1 500 characters. See MCP.
  • Analytics: eqStr[TEMPLATE_ID] and Banner Template / Placement Type grouping in the Advanced report; eqStr[PLACEMENT_LABEL] / eqStr[BANNER_LABEL] honoured there; a free-text eqStr value (labels, device vendor and model, custom-parameter values) is bound whole, commas included — repeat the key to send several. A word where an id is expected answers 400 with the accepted values; eqStr[RISK_LEVEL] and eqStr[RISK_CATEGORY] take names. See Analytics API.
  • Removed: GET /rest-api/adsHosts.do, GET /rest-api/invocationCodeHosts.do, POST /rest-api/sites/{siteId}/changeAdServingDomain.do and …/changeInvocationCodeDomain.do; adsHost and invocationCodeHost on site, advertiser, zone, placement and user updates are reported under ignoredFields. The creative-level DSP Custom Currency network parameters are gone. See MCP for the tool list.

Related pages

Please disable Adblock
Are you using adblock? Disable it and reload the page to proceed to the destination page.

A registration has already been submitted from this page. Please try again in 10 minutes.