Skip to main content

Collections

Collections are the core content organization tool on the GetintheLoop Platform. Collections create a "smart group" of businesses or offers that match the Content Filters configured for the Collection.

Collections allow you to group content together dynamically, to:

  • Group specific offers by business category, such as Food + Drink, Home + Auto, etc.
  • Group businesses based on geographic regions, like a shopping centre or arena
  • Create entirely custom groupings with tags and age-based filters

Creating a Collection

A new Collection should be created any time you want to have a stable, queryable source for a specific content filter or grouping of content.

When creating a Collection, you will need to consider: Name & Appearance, Discoverability, Content Filters, and Ordering.

Name & Appearance

The core properties of a collection are the names, images, icons, and ordering associated with the collection.

NameFull name of the Collection.
Short NameA short name for use in condensed-display situations.
SlugHuman readable unique ID containing letters and hyphens. Generally based on the name.
PriorityAllows collections to be ordered when queried in list from the API. Higher numbers are returned first.

Images & Icons

A collection allows a couple images to be saved. These are used in the pre-built Collection List and Collection Details screens provided by the GetintheLoop SDKs.

They can also be used by custom integration layouts.

Hero ImageA brand or action image used in pre-built collection header views.
Icon (Large / Small)A square icon for the collection, used in list or grid formats.

Discoverability

Discoverability means whether a Collection is currently findable via search or listing features of the platform. Discoverability of Collections can be limited by a date / time schedule and by geographic regions.

For example, a particular collection can be made discoverable only on weekends, or only in specific cities.

caution

It's important to understand that discoverability settings are considered only when loading lists of Collections from the platform. If you are loading the content of a Collection directly by the Collection's id, the visibility of the content will be unaffected by the Collection's discoverability settings.

Content Filters

A Collection's content is defined by its Content Filters. Filters are constructed out of a series of Conditions, which define what content is to be allowed or restricted.

Content Filters are applied in 2 steps:

  1. Business filters are applied to reduce the overall businesses applicable.
  2. Offer filters are applied to restrict the specific offers from the remaining businesses.

Filter conditions are added by clicking the + Add Conditions button in the appropriate section. Multiple Conditions can be added, and their boolean logic can be specified using the AND / OR controls.

The following describes the specific filters available.

Business Content Filters

Feature PlanThe Plan the business has. Used to create filters for specific levels of business customers.
CategoryRequire or limit specific business categories.
Business TagTag on the business. Allows custom groupings by tag.
Offer TagA tag on any of the businesses live offers. When applied at this level, it includes any of the businesses offers.

Offer Content Filters

Offer FlagsFilter for specific offer flags such as Limited, Exclusive, or Punch Card.
Offer TagsFilter by a tag on offers. Allows for very custom filter scenarios.
Location TagsChecks if any locations of the available offer have a sepecific tag.
Business TagsFilter by Business Tags. Allows for reverse cases like excluding business categories but allowing specific offers based on business tag.
Live ForHow long the offer has been live for. Akin to offer age.
Expires InHow long until the offer expires.
CategoryFilter by business category.

Ordering

The default order of the businesses and offers returned from the Collection is controlled by the Collection ordering settings.

There are 3 pre-set orderings available: Distance, Offer Age, and Random. In addition it is possible to specify custom ordering settings.

Custom Ordering

Content ordering is based on generating a weighted score for each offer. This score is used to order the businesses and offers returned.

info

Custom Ordering is an advanced feature. Please make sure you understand the implications of changes before editing any of specific field settings.

Custom ordering allows individual order weighting configurations to be specified for each of the available scoring parameters:

  • Distance - in meters
  • Offer Age - in seconds
  • Business Age - in seconds
  • Featured - boolean
  • Limited - boolean
  • Exclusive - boolean
  • Randomization - float, 0.0 to 1.0
Defining A Custom Score

The format of each field is a JSON array, that includes a sub-array for each value + score pair, based on the parameter type of the field.

A field can be a boolean or it can represent a continuous value.

Boolean Values

For boolean fields such as Featured or Exclusive, the JSON object should specify 2 distinct states: the true state and the false state.

[
// ordering is "value" and "weight"
[ 0, 0 ],
[ 1, 50 ]
]

The above example adds 0 points for false, and 50 points when true. When applied to a specific field, such as Featured, it would add 50 points to the score of any offer that has the flag featured.

Continuous Values

Fields that represent continuous values such as Distance or Age can be scored by simple Linear Interpolation between 2 scores, or they can have the score based on a Value Bucketing approach.

Linear Interpolation
[
[ 0, 10 ],
[ 10000, 0 ]
]

The above example would be applied consistently to all values, from 0 to 10000, with the appropriate score between 10 and 0 for each value.

For example, if set to the Distance field, locations 0 meters away would be scored 10, around 5000m away scored 5 and 10,000m or greater scored 0. Any distance between 0 and 10,000m would receive the appropriate fraction of a score out of 10.

Value Bucketing

Scores can also be organized into discreet buckets. The key here is to have 2 entries for each value so that the internal scoring algorithm knows not to interpolate the scores.

For example, take the following score applied to Offer Age:

[
[0, 0],
[0, 10],
[86400, 10],
[86400, 7],
[259200, 7],
[259200, 3],
[604800, 3],
[604800, 0],
]

This would create 4 buckets:

  • 0 - 86,400 seconds old (<= 1 day)
  • 86,400s - 259,200s old (1 - 3 days)
  • 259,200s - 604,800s old (3-7 days)
  • > 604,800s old (> 7 days)

These would receive the following weights:

  • <= 1 day: 10 point
  • 1-3 days: 7 point
  • 3-7 days: 3 points
  • > 7 days: 0 points