Help Center Manage Your Account Ad Targeting using Restrictions

Demographic Targeting

If your website collects information about users, you can serve targeted ads to these registered users. This article describes the process to implement demographic targeting, user-profile targeting and custom-input targeting.

Common Demographic Targeting Dimensions

  1. Gender: Male, Female
  2. Age: under 18, 18-34, 35-49, 50+
  3. Ethnicity: Asian, African-American, Caucasian, Hispanic
  4. Income: Under $30k, $30k - $60k, $60k - $100k, $100k+
  5. Size of Household: 1, 2, 3, 4+
  6. Number of Children: 0, 1, 2, 3+
  7. Education: High School, College, Graduate School

Examples of Demographic Targeting

  • Display sport-related ads to Male users, age 18 to 34
  • Display ads about high-end clothing items to Female users with an annual income of $100k or higher
  • Display family-oriented ads to users with at least one child

User Profile Targeting

If your website collects other information about your users/clients, you can use these facts, of course with your user's permissions, to display targeted ads. You have the full flexibility to design your own targeting criteria since we do not enforce a naming or grouping structure.

Examples of User Profile Targeting

  • You want to display different ads to different users depending on their role in your system. Roles can include Visitors, Authors, Editors, or Admins.
  • If you have a monthly newsletter and you know this person is not in the mailing list yet, you can display ads to convince the person to opt-in to your monthly newsletter.
  • If a person lists Entrepreneurship, Marketing and Technology as his/her interests, you can display technology-related ads.


To target ads based on user demographic and profile, target keywords are defined for an ad. Then your website passes the user's comparable facts (like gender and income) into the serving code via keywords parameter.

Please note that all criteria should have no spaces, special characters, only numbers and alphabets. Partial matching is enabled by default so "Male" matches both "Female" and "Male". In these cases, you should rename so partial matching cannot cause conflict.


Similar to the setup procedure for keyword targeting, you need to tag keywords to ads and then supply the facts into the serving code:

1) Ad HighEnd-Fashion-Deal has the following target keywords:

  • Show if the serving code has these keywords GenderFemale, AND
  • Show if the serving code has these keywords IncomeOver100k
2) On each page, your website passes in the user's gender and income value into the ad serving code via keywords parameter. For example:
  • For a male, income $100k+ user, the serving code has &keywords=GenderMale+IncomeOver100k. Ad HighEnd-Fashion-Deal will not display since its keywords is GenderFemale
  • For a female, income $60-100k user, the serving code has &keywords=GenderFemale+Income60100. Ad HighEnd-Fashion-Deal will not display since its keywords is IncomeOver100k
  • For a female, income $100k+ user, the serving code has &keywords=GenderFemale+IncomeOver100k. Ad HighEnd-Fashion-Deal will display since it has both keywords GenderFemale and IncomeOver100k

Privacy and Security

Privacy and security is very important to your users and your company. Therefore, we do NOT store facts appended to the serving code, we only use them to compare with the ad's target keywords. If one or more ads match, they will randomly display. If keywords parameter is empty or not given, this targeting feature is disabled.

Code Sample

In this example, the ad request is created dynamically with the additional demographical data provided by your own data vendor so the ad engine can select a suitable ad to display.
<div id="myAd"></div>
<div id="myOtherAd"></div>

// refer to your data provider for documentation
function getDemographics(dataProviderObj) {
	var kw = '';
 	kw += 'Age'+dataProviderObj.getAge();
	kw += '+'; // age AND gender (plus for AND, comma for OR)
	kw += 'Gender'+dataProviderObj.getGender();
	return kw;
function loadAdSpeed(zids) {
   var myKeywords = getDemographics();
function displayAdSpeed() {
loadAdSpeed('12345-67890'); // load ads from 2 zones

Other Articles in Ad Targeting using Restrictions

Learn about ad targeting and restrictions ad serving such as frequency capping, geo-targeting, quota, roadblock, flight date, etc.

Cannot find an answer for your question? Ask our Customer Care team