AdFalcon offers web site integration code for the most well-known programing languages to integrate with AdFalcon. You simply need to paste the code below where you want the ad to appear in the page, and follow the instructions provided in the comments.
There are a collection of parameters that are mandatory in all ad requests. If you do not fill the required parameters in a correct way, AdFalcon network will not be able to respond back with an appropriate ad.
Format | Description |
---|---|
BASIC_HTML | Simple HTML without JavaScript |
XHTML | XHTML 1.1 with JavaScript format. |
A - Send the first ad request without R_UUID and D_UDID parameters.
B - When AdFalcon receive the request without a unique ID, the system will generate a new unique user id and send it back as follows:
C - Get the generated user unique id from X-ADFALCON-UUID HTTP header or from the UUID JSON field.
D - Thereafter, pass the user unique id in the R_UUID in all ad requests that are submitted on behalf of the same user.
Example
R_HH_REMOTE-ADDR=94.249.59.107&R_HH_USER-AGENT=keep-alive…etc
The optional parameters are extra information related to the user and device which helps AdFalcon's ads selector engine to get the most relevant ads for the user.
The most important optional parameters are:
Note: Ensure Test Mode Parameter is set to false before releasing your application to the public.
Ad size | Value |
---|---|
320x48 | 1 |
300x50 | 2 |
216x36 | 3 |
168x28 | 4 |
120x20 | 5 |
480x60 | 6 |
728x90 | 7 |
300x250 | 8 |
120x600 | 9 |
Note: If this Ad Unit Size parameter is not specified, AdFalcon server will choose the best ad size that is suitable for the device's screen resolution.
Gender | Value |
---|---|
Male | m |
female | f |
Example
D_LA=35.54454548&D_LO=58.981
<%@ page import="java.util.*,java.io.*,java.net.*,java.net.InetAddress;"%>
<%
//AdFalcon URL which used to get ads
String adf_adFalconURL ="http://api.adfalcon.com/AdRequest/GetAd";
//Parameters is a variable that contains "get method request" paramerts
String adf_parameters ="";
/*
* You must fill the following required parameters because
* adfalcon will not send ads without having those values
*/
String adf_siteId ="Site ID";
/*
* Ensure this is set to false once you release your web site to the public
*/
boolean adf_testMode =true;
/*
* Fill only in case specific ad sizes are required; otherwise remove this line of code, and AdFalcon will determine the best ad size for the device
*/
int adf_adUnitSize =1;
/*
* Unique User Identification:
* AdFalcon will need to uniquely identify each user, therefore if you have
* a User unique ID for your web site users, then provide it here
* Otherwise, replies on AdFalcon to generate a unique ID for the which should be * save it in a persistent cookie/session with following properties
* - Cookie value: AdFalcon's UUID or any unique value for user
* - Expires : maximum as possible
* - Path : /
*/
/*
* If you have your own user unique value, assign your value to userUniqueId variable
* note: remove all codes related to cookie when using your own user unique value
*/
String adf_userUniqueId ="";
/*
* this will get the user unique id generated by AdFalcon from the cookie in case this was saved in a previous ad request
*/
for (Cookie cookie : request.getCookies())
{
if (cookie.getName().equalsIgnoreCase("ADFALCON-UUID"))
{
adf_userUniqueId =cookie.getValue();
}
}
/*
* You can help adfalcon to get better targeting ads by filling optional parameters, * these parameters are demographics and device information.
* you will find name of parameters in AdFalcon Server API integration guide at appendix A
*/
Hashtable<String, String>adf_optionalParams =null;
//adf_optionalParams = new Hashtable<String, String>();
//adf_optionalParams.put("U_LN", "ar");
//adf_optionalParams.put("U_KW", "sport, mobile");
/*
* Collects all needed information and builds "GET method request" URL
*/
adf_parameters +="R_SID=" +adf_siteId;
adf_parameters +="&R_IP=" +URLEncoder.encode(request.getRemoteAddr(), "UTF-8");
adf_parameters +="&R_F=XHTML";
adf_parameters +="&R_V=api-all-1.0.0";
adf_parameters +="&D_UA=" +URLEncoder.encode(request.getHeader("User-Agent"), "UTF-8");
//adf_parameters +="&R_AS=" +Integer.toString(adf_adUnitSize);
adf_parameters +="&R_TM=" +Boolean.toString(adf_testMode);
adf_parameters +="&R_UUID=" +URLEncoder.encode(adf_userUniqueId, "UTF-8");
if (adf_optionalParams !=null)
{
for (String key : adf_optionalParams.keySet())
{
adf_parameters +="&" +"" +URLEncoder.encode(key, "UTF-8") +"=" +URLEncoder.encode(adf_optionalParams.get(key), "UTF-8");
}
}
//get end user's browser header names and add them to the request adf_parameters
Enumeration adf_headerNames =request.getHeaderNames();
ArrayList adf_ignoreHeaders =new ArrayList();
adf_ignoreHeaders.add("CACHE-CONTROL");
adf_ignoreHeaders.add("CONNECTION");
adf_ignoreHeaders.add("COOKIE");
adf_ignoreHeaders.add("PRAGMA");
adf_ignoreHeaders.add("USER-AGENT");
while (adf_headerNames.hasMoreElements())
{
String name =adf_headerNames.nextElement().toString();
if (!adf_ignoreHeaders.contains(name.toUpperCase()))
{
String value =request.getHeader(name);
if (name !=null &&value !=null)
{
adf_parameters +="&" +"R_HH_" +URLEncoder.encode(name.toUpperCase(), "UTF-8") +"=" +URLEncoder.encode(value, "UTF-8");
}
}
}
//fill page query string
adf_parameters +=(request.getQueryString() !=null ? "&" +request.getQueryString() : "");
//create GET method URL
URL adf_url =new URL(adf_adFalconURL +"?" +adf_parameters);
/*
*Open http connection with adfalcon server and get new ad
*/
HttpURLConnection adf_httpURLConnection =null;
InputStream adf_inputStream =null;
InputStreamReader adf_inputStreamReader =null;
BufferedReader adf_bufferedReader =null;
try
{
adf_httpURLConnection =(HttpURLConnection) adf_url.openConnection();
adf_httpURLConnection.setConnectTimeout(10000);
adf_httpURLConnection.setReadTimeout(10000);
adf_httpURLConnection.setDoInput(true);
adf_httpURLConnection.setDoOutput(true);
adf_httpURLConnection.setUseCaches(false);
adf_httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
adf_httpURLConnection.setRequestProperty("charset", "UTF-8");
adf_httpURLConnection.setRequestMethod("GET");
if (adf_httpURLConnection.getResponseCode() ==HttpURLConnection.HTTP_OK)
{
/*
* in case a request was not completed successfully;
* adfalcon will send two header's parameters
* - X-ADFALCON-ERROR-CODE: status code of the request
* - X-ADFALCON-ERROR-MESSAGE: message descripes the status code
*/
if (adf_httpURLConnection.getHeaderField("X-ADFALCON-ERROR-CODE") !=null)
{
out.println(
adf_httpURLConnection.getHeaderField("X-ADFALCON-ERROR-CODE") +":"
+adf_httpURLConnection.getHeaderField("X-ADFALCON-ERROR-MESSAGE"));
}else
{
/*
* Receive an ad from adfalcon server and fill it in adf_adFalconResponse variable
*/
adf_inputStream =adf_httpURLConnection.getInputStream();
adf_inputStreamReader =new InputStreamReader(adf_inputStream);
adf_bufferedReader =new BufferedReader(adf_inputStreamReader);
String adf_adFalconResponse ="";
while (adf_bufferedReader.ready())
{
adf_adFalconResponse +=adf_bufferedReader.readLine();
}
/*
* If adf_adFalconResponse variable is not null or empty, print it at page
*/
if (adf_adFalconResponse !=null &&!adf_adFalconResponse.trim().isEmpty())
{
out.append(adf_adFalconResponse);
}
/*
* Check if adfalcon server has sent UUID, * if yes, you should save it in presistent cookie/session
*
*/
if (adf_httpURLConnection.getHeaderField("X-ADFALCON-UUID") !=null)
{
/*
* if you want to use the adfalcon UUID and set it to cookie, still activate the following code
*/
Cookie cookie =new Cookie("ADFALCON-UUID", adf_httpURLConnection.getHeaderField("X-ADFALCON-UUID"));
cookie.setMaxAge(10 *365 *24 *60 *60);
cookie.setPath("/");
response.addCookie(cookie);
/*
* else set adfalcon UUID wherever you want
*/
}
}
}
}catch (Exception ex)
{}
finally
{
if (adf_inputStream !=null)
{
adf_inputStream.close();
}
if (adf_inputStreamReader !=null)
{
adf_inputStreamReader.close();
}
if (adf_bufferedReader !=null)
{
adf_bufferedReader.close();
}
if (adf_httpURLConnection !=null)
{
adf_httpURLConnection.disconnect();
}
}
%>
<?php
//AdFalcon URL that used to get ads
$adf_adFalconURL ="http://api.adfalcon.com/AdRequest/GetAd";
//this variable used to hold request's parameters
$adf_parameters ="";
/*
* You must fill the following required parameters because
* adfalcon will not send ads without having those values
*/
$adf_siteId ="Site ID";
/*
* Ensure this is set to false once you release your web site to the public
*/
$adf_testMode =true;
/*
* Fill only in case specific ad sizes are required; otherwise remove this line of code, and AdFalcon will determine the best ad size for the device
*/
$adf_adUnitSize =1;
/*
* Unique User Identification:
* AdFalcon will need to uniquely identify each user, therefore if you have
* a User unique ID for your web site users, then provide it here
* Otherwise, replies on AdFalcon to generate a unique ID for the which should be * save it in a persistent cookie/session with following properties
* - Cookie value: AdFalcon's UUID or any unique value for user
* - Expires : maximum as possible
* - Path : /
*/
/*
* If you have your own user unique value, assign your value to userUniqueId variable
* note: remove all codes related to cookie when using your own user unique value
*/
$adf_userUniqueId ="";
/*
* this will get the user unique id generated by AdFalcon from the cookie in case this was saved in a previous ad request
*/
$adf_cookie_UUID =$_COOKIE["ADFALCON-UUID"];
if ($adf_cookie_UUID !="" and $userUniqueId =="")
{
$adf_userUniqueId =$adf_cookie_UUID;
}
/*
* You can help adfalcon to get better targeting ads by filling optional parameters, * these parameters are demographics and device information.
* you will find name of parameters in AdFalcon Server API integration guide at appendix A
*/
$adf_optionalParams =array();
$adf_optionalParams["U_LN"] ="ar";
$adf_optionalParams["U_KW"] ="mobile, sport";
/*
* Collects all needed information and builds URL for GET request
*/
$adf_parameters .="R_SID=" . $adf_siteId;
$adf_parameters .="&R_IP=" . rawurlencode($_SERVER['REMOTE_ADDR']);
$adf_parameters .="&R_F=XHTML";
$adf_parameters .="&R_V=api-all-1.0.0";
$adf_parameters .="&D_UA=" . rawurlencode($_SERVER['HTTP_USER_AGENT']);
//$adf_parameters .="&R_AS=" . $adf_adUnitSize;
$adf_parameters .="&R_TM=" . ($adf_testMode ? 'true' : 'false');
$adf_parameters .="&R_UUID=" . rawurlencode($adf_userUniqueId);
if ($adf_optionalParams !=null)
{
$adf_count =count($adf_optionalParams);
foreach ($adf_optionalParams as $adf_key =>$adf_value)
{
$adf_parameters .="&" . "" . rawurlencode($adf_key) . "=" . rawurlencode($adf_value);
}
}
//get end user's browser header names and add them to the request parameters
$adf_ignore =array(
'HTTP_PRAGMA' =>'ignore', 'HTTP_CACHE_CONTROL' =>'ignore', 'HTTP_CONNECTION' =>'ignore', 'HTTP_USER_AGENT' =>'ignore', 'HTTP_COOKIE' =>'ignore'
);
foreach ($_SERVER as $adf_key =>$adf_val)
{
if (0 ===strpos($adf_key, 'HTTP_') &&!isset($adf_ignore[$adf_key]) &&isset($adf_val))
{
$adf_key =str_replace('HTTP_', '', $adf_key);
$adf_parameters .="&" . "R_HH_" . rawurlencode(strtoupper($adf_key)) . "=" . rawurlencode($adf_val);
}
}
//fill page query string
//$parameters .= (request.getQueryString() != null ? "&" + request.getQueryString() : "");
//create GET method URL
$adf_url_get =$adf_adFalconURL . "?" . $adf_parameters;
/*
* Open http connection with adfalcon server and get new ad
*/
$adf_copt =array(
CURLOPT_URL =>$adf_url_get
, CURLOPT_RETURNTRANSFER =>true
, CURLOPT_HEADER =>true
, CURLOPT_HTTPPROXYTUNNEL =>true
, CURLOPT_CONNECTTIMEOUT =>20
, CURLOPT_TIMEOUT =>20
, CURLOPT_HTTPHEADER =>array('Content-Type: application/x-www-form-urlencoded')
);
$adf_ch =curl_init();
curl_setopt_array($adf_ch, $adf_copt);
$adf_response =curl_exec($adf_ch);
$adf_responseInfo =curl_getinfo($adf_ch);
curl_close($adf_ch);
echo $adf_responseInfo['CURLOPT_NOBODY'];
if ($adf_responseInfo['http_code'] ===200)
{
//check header values
list($adf_header, $adf_body) =explode("\r\n\r\n", $adf_response, 2);
$adf_status =strtok($adf_header, "\r\n");
$adf_tok =strtok("\r\n");
while ($adf_tok !==false)
{
if (strpos($adf_tok, ":") >=0)
{
list($adf_name, $adf_value) =explode(":", $adf_tok);
if (strpos(trim($adf_name), "X-ADFALCON-UUID") !==false)
{
$adf_adfalcon_header_UUID =$adf_value;
}else if (strpos(trim($adf_name), "X-ADFALCON-ERROR-CODE") !==false)
{
$adf_adfalcon_header_error_code =$adf_value;
}else if (strpos(trim($adf_name), "X-ADFALCON-ERROR-MESSAGE") !==false)
{
$adf_adfalcon_header_error_message =$adf_value;
}
}
$adf_tok =strtok("\n\r");
}
/*
* in case a request was not completed successfully;
* adfalcon will send two header's parameters
* - X-ADFALCON-ERROR-CODE: status code of the request
* - X-ADFALCON-ERROR-MESSAGE: message descripes the status code
*/
if (isset($adf_adfalcon_header_error_code))
{
echo $adf_adfalcon_header_error_message;
}else
{
/*
* Check if adfalcon sends UUID, * and save it in a presistent cookie/session.
*
*/
if (isset($adf_adfalcon_header_UUID) &&strlen($adf_userUniqueId) >0)
{
/*
* save X-ADFALCON-UUID feild to end user's browser cookie
*/
setcookie("ADFALCON-UUID", $adf_adfalcon_header_UUID, time() +10 *365 *24 *60 *60 *3600, "/");
}
/*
* If $adf_body variable is not null or empty, print it at page
*/
if (null !==$adf_body)
echo( $adf_body );
}
}
?>
<%//AdFalcon URL which used to get ads
String adf_adFalconURL ="http://api.adfalcon.com/AdRequest/GetAd";
//Parameters is a variable that contains "get method request" paramerts
String adf_parameters ="";
/*
* You must fill the following required parameters because
* adfalcon will not send ads without having those values
*/
String adf_siteId ="Site ID";
/*
* Ensure this is set to false once you release your web site to the public
*/
bool adf_testMode =true;
/*
* Fill only in case specific ad sizes are required; otherwise remove this line of code, and AdFalcon will determine the best ad size for the device
*/
int adf_adUnitSize =1;
/*
* Unique User Identification:
* AdFalcon will need to uniquely identify each user, therefore if you have
* a User unique ID for your web site users, then provide it here
* Otherwise, replies on AdFalcon to generate a unique ID for the which should be * save it in a persistent cookie/session with following properties
* - Cookie value: AdFalcon's UUID or any unique value for user
* - Expires : maximum as possible
* - Path : /
*/
/*
* If you have your own user unique value, assign your value to userUniqueId variable
* note: remove all codes related to cookie when using your own user unique value
*/
String adf_userUniqueId ="";
/*
* this will get the user unique id generated by AdFalcon from the cookie in case this was saved in a previous ad request
*/
HttpCookie adf_cookie =Request.Cookies.Get("ADFALCON-UUID");
if (adf_cookie !=null)
{
adf_userUniqueId =adf_cookie.Value;
}
/*
* You can help adfalcon to get better targeting ads by filling optional parameters, * these parameters are demographics and device information.
* you will find name of parameters in AdFalcon Server API integration guide at appendix A
*/
Dictionary<string, string> adf_optionalParams =null;
// adf_optionalParams = new Dictionary<string, string>();
// adf_optionalParams.put("U_LN", "ar");
// adf_optionalParams.put("U_KW", "sport, mobile");
/*
* Collects all needed information and builds "GET method request" URL
*/
adf_parameters +="R_SID=" +Server.UrlEncode(adf_siteId);
adf_parameters +="&R_IP=" +Server.UrlEncode(Request.UserHostAddress);
adf_parameters +="&R_F=XHTML";
adf_parameters +="&R_V=api-all-1.0.0";
adf_parameters +="&D_UA=" +Server.UrlEncode(Request.UserAgent);
//adf_parameters +="&R_AS=" +adf_adUnitSize;
adf_parameters +="&R_TM=" +adf_testMode;
adf_parameters +="&R_UUID=" +Server.UrlEncode(adf_userUniqueId);
if (adf_optionalParams !=null)
{
foreach (String key in adf_optionalParams.Keys)
{
adf_parameters +="&" +"" +key +"=" +Server.UrlEncode((String) adf_optionalParams[key]);
}
}//get end user's browser header names and add them to the request parameters
List<string> adf_ignoreHeaders =new List<string>();
adf_ignoreHeaders.Add("CACHE-CONTROL");
adf_ignoreHeaders.Add("CONNECTION");
adf_ignoreHeaders.Add("COOKIE");
adf_ignoreHeaders.Add("PRAGMA");
adf_ignoreHeaders.Add("USER-AGENT");
foreach (string name in Request.Headers)
{
if (!adf_ignoreHeaders.Contains(name.ToUpper()))
{
String value =Request.Headers[name];
if (name !=null &&value !=null)
{
adf_parameters +="&" +"R_HH_" +name.ToUpper() +"=" +Server.UrlEncode(value);
}
}
}/*
*Open http connection with adfalcon server and get new ad
*/
System.Net.WebRequest adf_webRequest =null;
System.Net.WebResponse adf_webResponse =null;
System.IO.StreamReader adf_StreamReader =null;
try
{
adf_webRequest =System.Net.System.Net.WebRequest.Create(adf_adFalconURL +"?" +adf_parameters);
adf_webRequest.ContentType ="application/x-www-form-urlencoded";
adf_webRequest.Method ="GET";
adf_webResponse =adf_webRequest.GetResponse();
adf_StreamReader =new System.IO.StreamReader(adf_webResponse.GetResponseStream());
/*
* in case a request was not completed successfully;
* adfalcon will send two header's parameters
* - X-ADFALCON-ERROR-CODE: status code of the request
* - X-ADFALCON-ERROR-MESSAGE: message descripes the status code
*/
if (adf_webResponse .Headers.Get("X-ADFALCON-ERROR-CODE") !=null)
{
/*
* Handle error…
*/
Response.Write(
adf_webResponse .Headers.Get("X-ADFALCON-ERROR-CODE") +":"
+ adf_webResponse .Headers.Get("X-ADFALCON-ERROR-MESSAGE"));
}else
{
/*
* Check if adfalcon server has sent UUID, * if yes, you should save it in presistent cookie/session
*
*/
if (adf_webResponse .Headers.Get("X-ADFALCON-UUID") !=null)
{
/*
* if you want to use the adfalcon UUID and set it to cookie, still activate the following code
*/
HttpCookie adf_newCookie =new HttpCookie("ADFALCON-UUID", (String) adf_webResponse .Headers.Get("X-ADFALCON-UUID"));
adf_newCookie.Expires = DateTime.Now.AddHours(10 *365 *24 *60 *60);
adf_newCookie.Path ="/";
Response.Cookies.Add(adf_newCookie);
/*
* else set adfalcon UUID wherever you want
*/
}/*
* Receive an ad from adfalcon server and fill it in adFalconResponse variable
*/
String adf_adFalconResponse =adf_StreamReader.ReadToEnd();
/*
* If adFalconResponse variable is not null or empty, print it at page
*/
if (adf_adFalconResponse !=null &&adf_adFalconResponse.Trim().Length !=0)
{
Response.Write(adf_adFalconResponse);
}
}
}catch (Exception ex)
{
Response.Write(ex.Message);
}
finally
{
if (adf_StreamReader !=null)
{
adf_StreamReader.Close();
}
if (adf_webResponse !=null)
{
adf_webResponse.Close();
}
}
%>
function $initHighlight(block) {
if (block.className.search(/\bno\-highlight\b/) != -1)
return false;
try {
blockText(block);
} catch (e) {
if (e == 'Complex markup')
return;
}//try
var classes = block.className.split(/\s+/);
for (var i = 0 / 2; i < classes.length; i++) { // "0 / 2" should not be parsed as regexp start
if (LANGUAGES[classes[i]]) {
highlightLanguage(block, classes[i]);
return;
}//if
}//for
highlightAuto(block);
}//initHighlight