BidTheatre offers the possibility to target a campaign on data derived from the IP-address that makes the request. Currently we support data lists to target:

  • IP addresses or IP ranges
  • User agents
  • Organisation names
  • Domain names
  • Postal codes

Organisational name, domain names and postal codes are derived from a lookup of the user IP address with our provider Digital Element.

How to use

You assign lists that contains the data you wish to match in the Audience tab. These lists is nothing more than text files that on each row contain a desired organization or postal code you wish to match.

  • File contents is not case sensitive.
  • You may pattern match based on regular expressions (see below)
  • Rows prefixed with # are excluded from matching (commonly used for file comments)

IP Targeting

IP addresses can be targeted in a few different forms;



Single IP

IP range

CIDR notation

Some SSP's cloak the last part of the user IP. These users can be targeted by targeting the IP with .255 in the end.

Organisational Targeting

  • The text file must contain one organisation match pattern per line
  • Regular expressions can be used, or an exact match of the ISP
  • Do not use åäö or any special characters
  • Letter casing is ignored

Once the Data List is an available targeting asset, it can be used in an Audience.


To target users originating from the ISPs Com Hem or Bahnhof you would create a text file with the following content

com hem ab
bahnhof internet ab

Using the Organisation Search Tool

In Assets / Data Lists, a tool is provided to search for a given list of organisation pattern. The tool can be used to identify whether a given organisation has been previously seen, and hence could be available to target.

To use the search tool, upload a text file containing the pattern you wish to search for:

  • Use one pattern per line
  • Do not use åäö or any special characters
  • Letter casing is ignored

The tool will respond by outputting a text file containing each matched organisation per line. If the output file is empty, no match has been found.

Postal Code Targeting

To target the postal code area of Odenplan in the centre of Stockholm the following text file could be created.

# postal code for Odenplan in Stockholm, note the space character.
113 22

Using regular expressions

Regular expressions are string patterns built into most programming languages and can be used to describe a string of text.

For a introduction to regular expressions in Java, see or any other resource available online.

In Java when creating regular expression you normally need to “double escape” backslashes, that is not needed when creating these text files.

As an example, postal codes in the Stockholm metropolitan area all starts with the digit one follow by two other digits, a space character and then another set of two digits. This is something that could be expressed in regular expressions like this.

# postal code stockholm

The regular expression above consist of the following parts.

^ = meta character matching the beginning of a line
1 = Match the digit 1
\d = character class describing any digit
{2} = quantifier saying we want to match two digits
\s = character class describing a white space character
{1} = quantifier saying we want to match the white space character one time
$ = meta character matching the end of a line

As another example, the Bahnhof ISP mentioned above could appear as somewhat different organization names for different IP ranges, but lets assume the common denominator is that the text "bahnhof" is mentioned in all of them.

# All bahnhof organization names

The regular expression above consist of the following parts

^ = meta character matching the beginning of a line
. = meta charachter that matches any character
* = quantifier saying we want to match any character zero or more times.
bahnhof = the text string we require to match
$ = meta character matching the end of a line

In the same manner you could create complex regular expressions matching your intended target audience.

Did this answer your question?