SpikeCom Knowledge Base

Everything you need to know about SpikeCom

Document Release Notes

Created : Feb, 04, 2016 | Last Updated: April, 15, 2016

Ads Serving & Refresh Logic

When the placement tag is used, it sends a request to our server for serving an Ad against this placement, Ads are served from our server based on this logic.

Logic

The server then

  1. Fetches all 'Running' Ads against this placement.
  2. It filters from above Ads based on Day-Parting Logic i.e to keep those Ads only which have no day parting logic defined or have current hour-day inside it's day parting logic.
  3. It then removes all Ads from the above filtered list which are marked as Under-Performing and have Under Delivery Behavior set to "Stop".
  4. It then filters all Ads based on 'ageGroup' set on them and the supplied 'ageGroup' parameter if any in the request call to our server.
  5. It then filters all Ads based on 'gender' set on them and the supplied 'gender' parameter if any in the request call to our server.
  6. It then filters all Ads based on 'keywords' set on them and the supplied 'extraData' parameter if any in the request call to our server.
  7. It then filters all Ads based on 'longitutde' and 'lattitude' inside the given radius and checks if the supplied longitude and latitude falls inside it, if yes keeps those ads else filters them out.
  8. It then filters all Ads based on datakeys supplied in the request call to our server and those ads which have target segments assigned and have datakeys equal to the supplied datakeys then check what rule is set in that segment on that data key then matches the supplied key's value is in accordance with that rule then it keeps that ad else filters it out. Below is the logic for each rule-set
    • Operator : "eq" , Logic: value for this key must be equal to the value in rule.
    • Operator : "neq" , Logic: value for this key must not be equal to the value in rule.
    • Operator : "lt" , Logic: value for this key must be less then to the value in rule.
    • Operator : "lte" , Logic: value for this key must be less then or equal to the value in rule.
    • Operator : "gt" , Logic: value for this key must be greater then to the value in rule.
    • Operator : "gte" , Logic: value for this key must be greater then or equal to the value in rule.
    • Operator : "sw" , Logic: value for this key must be starting with the value in rule.
    • Operator : "ew" , Logic: value for this key must be ending with the value in rule.
    • Operator : "con" , Logic: value for this key must contains the value in rule.
  9. It then filter Ads based on serving priority and their served count, in following manner,

    Lets say we have 3 Ads remaining in the filtered Ad list , 1 having serving priority = high , 2 having serving priority = medium and 3 having serving priority = low and each Ads are not yet served i.e their current served count = 0 , so in the first ad-serving call system will serve Ad # 1(high) , in second serving or refresh call system will again serve Ad # 1 (high), in third serving or refresh call system will again serve Ad # 1(high) , in fourth serving or refresh call system will serve Ad # 2(medium) , in fifth serving or refresh call system will serve Ad # 2(medium) , in sixth serving or refresh call system will serve Ad # 3(low) , so upon serving 6 times on this placement 1st 3 time it serves Ad#1 then 4th and 5th time it serves Ad#2 then 6th time it serves Ad#3 , meaning High Priority Ad Items will be served 3 times more then Low Priority Ad Items and Medium Priority Ad Items will be served 2 times more then Low Priority Ad Items.
  10. count: In the request for ad serving call there is an optional parameter 'count' (int) , it has default value = 1 if not supplied as well as for type = 'js' and 'iframe' it is defaulted to 1 , meaning 1 ad from the filtered remaining ones will be served in response to serve request and refresh request. for type = 'json' whatever count value is supplied , system will respond with that many ads if it finds that many ads after above filtration logic. (Note: Serving Priority and Serve Count filtration logic is not applicable in case of count is not equal to 1 and count is not defaulted to 1 i.e when count = some value other then 1 is supplied system will not filter ads based on their serving priority & serve count and will try to serve that many ads as asked if it finds that many ads after rest of filtration logic has been applied)
  11. groupPlacements: In the request for ad serving call there is an optional parameter 'groupPlacements' (boolean) which is to allow serving ads from multiple placements inside a single placement group , the group is identified from the placementId supplied.
  12. There is a configurable flag at placement level 'Multiple Advertisers Serving' which allows same placement to be used for multiple advertiser campaigns for same time, in such case if after above filtration logic ads remaining from multiple advertisers still remained and not filtered out system will serve ads based on count value from the remaining ads.

© SpikeCom. All Rights Reserved.