Liquid Barcodes will populate a record per user with information to display in the app. Liquid Barcodes will ensure that the data in the record at all times are correct, and will remove coupons when they expire, have been redeemed, etc. This record is obtained through the API using GET /content function.
Liquid Barcodes will populate each user's record based on the campaigns that have been created in Liquid Barcodes dashboard. This process is handled in its entirety in Liquid Barcodes' back end.
The record contains one or several coupons, games, or surveys that are distributed in sections as content objects, which means that Liquid Barcodes' content is organized in a hierarchy and the app should follow this hierarchy and not tamper with the organization or order content is sent to the app:
Some general content guidelines:
- Add a refresh button to allow the user to update content. As a minimum, this should force a refresh of all content for this content object.
- Update images based on HTML headers.
- Make it possible to share coupons if the coupon is shareable (LB defines shareable or not).
- Make sure to use the various information according to its intention (e.g. the parameter BackUrl should be placed on the backside of the coupon).
- The app should not filter or alter the order of content obtained through content requests.
In order to improve the user experience, it is suggested to have a graceful offline caching. Cache data locally to ensure the app functions even without an internet connection. Do not delete the cache on the device if in offline mode or no response from the server. The app should work without connection (albeit with limited functionality).
All image URLs that are returned contain the form
https://www.domain.com/path/filename.extension?v=guid. Whenever an image changes the URL will also change (possibly the filename, but always the GUID). Thus an image change will result in a new and unique URL. Any device/app caching mechanisms used must miss and load the image for such new and unique URLs.