Browse the help center

Mobile carrier targeting and data

Mobile carrier targeting, the $$MOBILE_CARRIER$$ macro and carrier reports — where the carrier list comes from, how a visitor's carrier is detected, and why there is no admin page for carriers.

Reference admin network manager Account → entity → Targeting → Mobile Carrier

Mobile carriers (network operators — Vodafone, Verizon, Kyivstar, …) power the Mobile Carrier targeting dimension, the $$MOBILE_CARRIER$$ macro, and the carrier breakdown in Advanced reports.

Unlike categories, country groups or preset domains, carrier data is not managed by your network. There is no Mobile Networks admin page, no carrier table to edit, and nothing to import. The names come from the platform’s IP-intelligence service. This page covers where that data comes from, how a request gets a carrier attached, and what each consumer does with it.

Where the carrier list comes from

Every Mobile Carrier picker is filled from the platform’s IP-intelligence data, sorted alphabetically. The list changes when that data is updated; there is nothing for an administrator to import or edit.

Corner case: if the carrier picker is empty, the carrier lookup is temporarily unavailable — an empty list does not mean the network has no carriers. The REST lookups (GET …/targeting/mobile-carrier/values.do and GET /rest-api/targeting/mobile-carrier/bycountry/values.do) answer 503 in that case instead of an empty list. If it stays empty, ask Epom support or your account manager.

How a visitor’s carrier is detected

A request can learn its carrier two ways: from the IP address, or from an in-app SDK that sends it explicitly as the carrier_name parameter. The IP lookup wins. The SDK value is only consulted when the IP produced nothing.

The neighbouring connection-type signal resolves in the opposite order, which is easy to get wrong when reasoning about the two together:

SignalRequest parameterChecked firstChecked second
Mobile carriercarrier_nameIP lookupSDK parameter
Connection typenet_accessSDK parameterIP lookup

If neither source yields a value, the request simply has no carrier — which is the normal case for desktop and wifi traffic, and it matters a great deal to targeting (see below).

Where carrier data is used

Targeting

Mobile Carrier is a multi-select targeting dimension available on all six entity levels: site, zone and placement on the supply side, advertiser, campaign and banner on the demand side. Each side has its own permission, and both read Mobile Carrier in the role editor — one in the pre-targeting group (supply), one in the targeting group (demand).

Campaign Targeting card with Mobile Carrier selected in the type rail and the carrier multi-select ready to pick from

Rules are stored as the carrier name, as text, and matched at serve time with a case-insensitive string comparison. See Add targeting to an entity and the targeting dimension reference.

Macro

$$MOBILE_CARRIER$$ substitutes the request’s carrier into creative markup and tracking URLs. When the request has no carrier it resolves to the literal string unknown, not to an empty string — so a URL built from it always has a value, and downstream systems must treat unknown as the empty case. Full list: Macros reference.

Analytics

Carrier exists only in the cluster-backed reports — never in General, whose pre-aggregated statistics do not record it. It reaches you two ways:

ReportHow carrier appears
AdvancedAs a group-by dimension. Carrier is in exactly one report type’s group-by list — the one shown in the UI as Advanced
Impressions / Clicks / Conversions LogAs a per-event column, projected as carrier — not as a filter

Both need the analytics cluster to be reachable; see Report types.

Corner case: unlike most Advanced dimensions, Mobile Carrier has no dedicated group-by/filter permission — Connection Type, Language and Incognito Mode all have one, carrier does not. Anyone who can open the Advanced report can group by carrier. The only gate is the report-type permission for Advanced.

Corner case: on a network whose Advanced report reads compacted logs, Mobile Carrier is silently stripped from the group-by list and keeps working only as a filter — the compacted logs do not carry it. Most networks do not use compacted logs; ask Epom support or your account manager which mode yours runs. See the dimension list in Analytics dimensions.

Corner cases and gotchas

Corner case: include and exclude carrier rules treat carrier-less traffic asymmetrically. A request with no carrier is rejected by an INCLUDE rule and passed by an EXCLUDE rule. Since desktop traffic — and phone-on-wifi traffic, which usually resolves to the broadband ISP rather than the mobile operator — normally has no carrier, an include rule quietly removes almost everything that is not on a cellular connection. That is usually what you want; it surprises people who expected it to be additive.

Corner case: the two ways of creating a carrier rule do not validate the same way. The REST API checks every submitted name against the live list and rejects the whole request with 400 unknown mobile carrier name if any one is unrecognised. The account UI path performs no such check and stores whatever it is given.

Corner case: that REST validation reads the live list, so while the IP-intelligence service is unreachable every REST carrier-rule create fails with unknown mobile carrier name — no name can match an empty list. The error names the carrier, not the outage, so ask Epom support or your account manager whether the feed is up before believing the name is wrong.

Corner case: because rules store the carrier name as text, a geo-database update that renames a carrier (rebrands happen) leaves existing rules pointing at the old string. They keep saving and loading fine and simply stop matching. Recreate the rule from the picker after a rename.

Corner case: a carrier rule applies to OpenRTB (DSP) banners like any other creative: a banner, campaign or advertiser rule that excludes the request’s carrier removes that banner before the bid request is built, so no request goes to the partner for it. The rule is not translated into a filter on the partner’s side — what the partner does receive is the request’s carrier name in the bid request’s device.carrier, whenever the request has one, whether or not any rule exists.

Corner case: on the legacy placement edit page, mobile and application placements get a carrier combo above the banner-probability panel. It is a simulator input, not a setting — it asks “which banners would be eligible if the visitor were on this carrier”. Its default, Ignore carrier, skips carrier rules entirely in the calculation. Nothing you pick here is saved.

REST API

EndpointPurpose
GET /rest-api/{entity}/{id}/targeting/mobile-carrier/values.doValid carrier names for that entity, as a JSON array. Needs update rights on the entity and the matching targeting permission (Manage Demand Targeting for advertiser, campaign and banner; Manage Supply Pre-targeting for site, zone and placement). Answers 503 while the geo service does not answer
GET /rest-api/targeting/mobile-carrier/bycountry/values.doCarrier names grouped by country code; optional countryCode (the older name country still works, countryCode wins). Needs Manage Demand Targeting; 503 while the geo service does not answer
POST /rest-api/{entity}/{id}/targeting/mobile-carrier/create.doCreate rules from mobileCarriers, an array of names spelled exactly as the lookups list them, with the required rule (include or exclude); needs the Mobile Carrier targeting permission of that side. An empty array answers 400; an unknown name answers 400 unknown mobile carrier name and nothing is created

{entity} is one of advertiser, campaign, banner, site, zone, placement — all six expose the same lookup and create operations. The campaign endpoints additionally answer the older …/targeting/mobilecarriers/values and …/targeting/mobilecarrier/create spellings; they are not in the OpenAPI document, so use the kebab-case form. The OpenAPI document also lists a Mobile Networks tag with no operations under it — see the next section.

There is no Mobile Networks admin page

Older builds shipped an admin dashboard called Mobile Networks — request counters, fill-rate charts and click-URL parse statistics for external ad-network relay traffic. It is gone, and it never managed the carrier list.

No URL serves that page and the admin navigation has no entry for it, so no role can reach it. This is not a permissions problem. For demand-side monitoring use DSP Partners Analytics instead.

Per-role notes

  • Administrators have nothing to configure; if the carrier picker stays empty, ask Epom support or your account manager whether the carrier feed is up.
  • Network managers set carrier rules on both sides; a dimension missing from a card means the role lacks that side’s Mobile Carrier permission.
  • Advertisers set carrier targeting on their own advertiser, campaigns and banners when their role holds the demand-side Mobile Carrier permission; otherwise ask your network manager.
  • Publishers set carrier pre-targeting on their own sites, zones and placements when their role holds the supply-side Mobile Carrier permission; otherwise ask your network manager.

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.