Entities

Here is where our most common entities are described. MINT has three entities for Platform integration, each of those entities represents level of detail about advertisement campaign.

Ad-Group

Ad-Group sits in the middle of our advertisement pyramid: it holds a group of Ads, put together by any possible trait or decision. For example: customer may group his ads by their target audience, wares, etc. There could be many Ad-Groups. We assume that Ad-Group is consistent in regard to its ADs and Campaign ex: sum of Ads budgets is equal or less the budget of Ad-Group, also start-date of Ad-Group should be equal to the least start-date of Ad, end date is equal to the max end-date of Ad within Ad-Group. Ad-Group is optional, so if your platform have no such detailed Ad representation, it is OK to proceed to Campaign.

Campaign

Campaign represents the entirety of advertisement campaigns with their Ad-Groups and Ads. It contains list of Ad-Groups and trough them - their ads. It shares same consistency policy as Ad-Group. This is the highest level of detail. Campaign is mandatory.

What to do if Platform internal structures are different?

Short answer: use Adapter and Facade design patterns. Long answer: feel free to squash or smear your data over given structures, it will be great if all three structures are covered and filled, yet if your Platform lacks data to fill all of them, you can just fill Campaign and we will be good to go with one-side read integration.

As for write access, we trust, you know how better how to transform your data, so it is up to You to decide how handle our requests all we need is interface that will match our specification.