Knowledge Base

The art of mobile media buy – programmatic way

Programmatic becomes a norm for media buying now a days. But it become increasingly difficult to get the ROI positive result especially those who are having limited exposure to media buying.

How to run a successful mobile campaign? 

Lets us examine different stages involved a suscessful campaign life cycle

Campaign building stage

For any offer, we typically need three types of  campaigns

A CPA/CPI campaign – to catch the media that allows buying on CPA/CPI (Less supply)

A CPC campaign – to catch most other media that is not available on CPA ( Medium supply)

Build this campaign with a low base CPC price Have specific bids on segments that work better

A CPM campaign – usually though a programmatic platform such as Bidsopt and  you know exactly how much to pay for each segment. This allows buying the media for lower overall price and allows using generic banners, native, rich media and tags ( Highest supply)Bidsopt will allow you to  buy media through CPC and CPM pricing model

Campaign lifecycle

  • Probing
  • Discovery
  • Optimization
  • Growth


Find out if the traffic source has any potential ( Bidsopt has vast experience in running and optimising different traffic
sources and exchanges.)

Method →
Buy in very low prices


Find out if the full potential is of as many publishers and media as possible

Method →
Increase prices
Buy very wide
Aim for an ROI of 20% for the first 500 conversions, i.e. the budget should be 500 x CPA goal x 5
Run exclusion optimization (remove things that do not work) and use additional 500 conversions to get to 50%


Get to 100% ROI

Method →
Run price optimization on all traffic matrices (  Bidsopt support highly advanced optimisation techniques )


Increase the size of the campaign

Method →
Run Probing, Discovery and Optimization on additional traffic sources
Identify segments of solid behavior and buy their media in CPM

Optimization best practices

Try to buy as much media as possible on CPM
Refresh the content constantly
(creative and landing pages)
Use specific bids
Use multiple landing pages to A/B test them

Common optimization matrices

Include/Exclude – Publisher/Exchanges and External publisher
Day of week
Channel – CPI campaigns
Browser – CPI campaigns
Device type – CPI campaigns
Make/model – mobile subscription campaigns
Find what IPs are working and target them – mobile subscription campaigns
Region – mobile subscription campaigns
OS version – CPI campaigns


Targeting options

In this section , we will learn about the different types of targeting options on Bidsopt.
The list of targeting is available on the strategy level.

Traffic Sources

This targeting feature is used in order to target or exclude exchange and direct publisher traffic sources. This means that the particular strategy that are targeted will be exposed to selected traffic sources.

Day Part

This targeting feature is used in order to target or exclude specific time span in the day. For example, you can decide to target only morning hours – or just separate hours within the day.

Traffic Type

This targeting feature is used in order to target either Web or App traffic.

Network Type

This targeting feature is used in order to target either GPRS or WiFi.

Geo Targeting

This targeting feature is used in order to target any geographical area/county

Country Carrier

This targeting feature is used in order to target a specific carrier

Country IP

This targeting feature is used in order to target specific IP’s. You can enter separate IP addresses  and use dashes between the IP’s (without spaces). To enter multiple IPs, use space/enter/comma/semicolon between the ranges.

OS & Version

This targeting feature is used in order to target a specific operating system (such as Android, iOS, Blackberry, etc.).

Devices & Models

This targeting feature is used in order to target a specific device type, manufacturer and model  such as Smartphone, Apple and iPhone 6


This targeting feature is used in order to target or exclude a specific browser such as Firefox, Chrome, etc.

Bidsopt support global postback integration through server to server.

Find below the Postback URL<clickid>&bo_aff1=<click1d2>

Where clickid is your placeholder name where we will pass our value  in the landing page url. You need to post back the same to us through the above postback integration. Clickid2 is for external id, which may be blank value sometimes.

Sample Postback Response
Sample Landing page URL

where bo_ck and bo_aff1 are Bidsopt click and external id macro.

Bidsopt do support additional macros to send like pub id, advertiser id, campaign id…where  client can track at their end for their optimisation

Banner Ad Macros
bo_cid === Bidsopt Client ID for App or Website (it is pub id)
bo_advertiser_id === Bidsopt Advertiser ID
bo_campaign_id === Bidsopt Campaign ID
bo_strategy_id === Bidsopt Strategy ID
bo_udid_key === Bidsopt User device identifier collected (it may be ifa or ifa_md5 etc..)
bo_udid_val === Bidsopt User device identifier value
bo_ip === IP Address
bo_mobile_model === Mobile Model
bo_publisher_id === Bidsopt Publisher Identifier
bo_ck ====== Bidsopt Click Identifier
TAG Macros

This will have $ in the front to avoid the repeat of the string like bo_click in the TAGS!

$bo_ck ==== For click tracking at third party TAGs
$bo_cid === Bidsopt Client ID for App or Website (it is pub id)
$bo_cb ====== Bidsopt Cache Buffer
$bo_impression_id === Bidsopt Impression Id
$bo_udid_val  ====== Bidsopt User device identifier value

What is Real Time Bidding ?

Real-time bidding (RTB) is a means by which advertising inventory is bought and sold on a per-impression basis, via programmatic instantaneous auction, similar to financial markets. With real-time bidding, advertising buyers bid on an impression and, if the bid is won, the buyer’s ad is instantly displayed on the publisher’s site. Real-time bidding lets advertisers manage and optimize ads from multiple ad-networks by granting the user access to a multitude of different networks, allowing them to create and launch advertising campaigns, prioritize networks and allocate percentages of unsold inventory, known as backfill.

Real-time bidding is distinguishable from static auctions by how it is a per-impression way of bidding whereas static auctions are groups of up to several thousand impressions. Overall, when compared to static auctions, RTB is more effective for both advertisers and publishers in terms of advertising inventory sold.

What is Demand Side Platform?

A demand-side platform (DSP) is a system that allows buyers of digital advertising inventory to manage multiple ad exchange and data exchange accounts through one interface. Real-time bidding for displaying online advertising takes place within the ad exchanges, and by utilising a DSP, marketers can manage their bids for the banners and the pricing for the data that they are layering on to target their audiences. DSPs allows users to optimise based on set Key Performance Indicators such as effective Cost per Click (eCPC), and effective Cost per Action (eCPA). DSPs creates a unique opportunity for advertisers to truly control and maximise the impact of their ads.

Creative Policy

General Bidsopt Guidelines

  1. Only family-friendly creatives are allowed.
  2. Only click-tracking,Javascript creatives are allowed.
  3. Creatives are not allowed to auto-redirect to any web page or app stores without prior users’ interaction.
  4. Creatives are not allowed to auto-load any video content without prior users’ interaction.
  5. No user prompts should be observed with creatives or landing pages..
  6. No auto downloading of files should be observed with creatives or landing pages.
  7. No iFrames are allowed.
  8. No gambling ads allowed.
  9. Creatives must be related to content of landing page.
  10. No anti-virus ads allowed

Publisher API Integration Guide

Ad Request;%20CPU%20iPhone%20OS%208_3%20like%20Mac%20OS%20X)%20AppleWebKit/600.1.4%20(KHTML,%20like%20Gecko)%20Mobile/12F70&udid_key=web&udid_value=1226&no_of_ads=1&ad_size=320x50
where, -- Base URL (domain name may be changing based on publisher data-center location needs; we're located in USA East Course)

cid — Client Identifier details. Bidsopt publisher management team would be giving related details.
It will be an unique identifier.
ip — IPv4 Address of the user details to be sent. Using maxmind database for validation.
ua — User Agent of the user details to be sent in URL encoded format (Ref: Using wurfl device database for valiation.
size — Ad size required to show (ex: 320×50, 300×250 etc. WidthxHeight in pixels format; Native ads – 0x0; Support all ad format sizes)
udid_key — Device identifier key details (ex: ida or ida_sha1 or ida_md5; Recommended Field)
udid_value — Device identifier value (Recommended Field)
Other fields — We’d support other user enrichment details like age, gender, and etc. Please work with Bidsopt publisher development team to get more details.

Ad Response

We support JSON format to give the responses.

{ no_of_ads: 1, response_status: "success", uuid_key: "web", uuid_val: "1226", ads: [ { ad_id: 5, pos: 1, cost_metrics: "CPM", price:0.00166, creative_type: "banner", creative_id: 5, campaign_id: 6, adm: "<p><a href=''><img src=''/></a></p><img src='' width='1' height='1'/>" } ] }

creative_type — will give creative type; It will be banner or native or js or iframe or html5 etc.
adm — will have the creative mark-up with click tracking url. Please use the same to render.
cost_metrics — Campaign cost metrics for reference.
price — Campaign price for reference.
ad_id, creative_id, campaign_id — Identifiers of Ad, Creative, and Campaign at Bidsopt

Native Ads Response
{ no_of_ads: 1, response_status: "success", uuid_key: "web", uuid_val: "1226", ads:[ { rating: "1", icon: "", description: "Leading Demand Side Platform", main: "", creative_id: 38, creative: "NA", cta: "More",ad_id: 35, adm: "NA", imp_trackers: [ "" ], pos: 1, cost_metrics: "CPM", price: 0.001, creative_type: "native",action_item: "", headline: "Bidsopt DSP", campaign_id: 23 } ] }

rating — App ratings to show
icon — icon image (will be 80×80 pixel size)
description — Details about the product or offer or mobile application
main — Main image (will be in 1200×627 pixel size)
cta — Click through Text to be shown
action_item — Click Link
headline — Title of the product or offer or mobile application
Use the impression trackers and action_item with 1×1 pixel to enable the impression and click tracking.

<p><a href=''><img src=''/></a></p><img src=''width='1' height='1'/>
Tag response (example)
{ no_of_ads: 1, response_status: "success", uuid_key: "web", uuid_val: "1226", ads: [ { ad_id: 11, pos: 1, cost_metrics: "CPM", price: 0.0006,creative_type: "iframe", creative_id: 12, campaign_id: 9, creative: "<iframe src="$6&placement_id=6&pub_domain=6" width="320" height="50" border="0" scrolling="no" ></iframe><img src='' width='1' height='1'/>"" } ] }

creative_type — Denoting the ad response as iframe tag

No Ads Response
{ no_of_ads: 0, response_status: "failure", uuid_key: "", uuid_val: "", ads: [ { ad_id: "NA", impression_id: "NA", pos: 1, cost_metrics:"NA", price: 0, creative_type:"NA", adm: "NA", error: "NO ADS TO DISPLAY", creative_id: "NA", campaign_id: "NA" } ] }

response_status will be failure if no ads to display.
error will give the error message.

Any queries, please connect with Bidsopt Publisher Development Team. Thanks.