Implement DASS Digital Advertising System Simulation as a RESTful Python microservice.
- finished refactoring all classes to maps with composable validators
- added data from paper
- next is DB and REST
- inserting and searching TinyDB super easy
- the good: data file is plain json which is handy for debugging.
- the bad: no indices
- would like to switch to namedtuples but no generic enough conversion from json
- inspired by Rich Hickey refactoring w/o classes
- discovering named tuples
- if I still used classes dataclassses could replace attr
- Create Ad Serving Model
- Replace attr type annotations by validators and converters. I
- Decide for TinyDB as a lean document database
- simulate activity streams (w/o ads)
- Due to limited app scope and simplicity prefer Flask over Django
- Create PyCharm Flask project
- As template language choose Ninja2 over Mako as it's the one mentioned all over the flask docs
- Download Python 3.7 to base a virtualenv on it
- Create https://github.com/dpetz/dass
- from PyCharm via
Personal access tokens
of sufficient rights
- from PyCharm via
- Add this
.gitignore
. Add.idea
to it. - Refresh python decorators which Flask uses to bind functions to URLs.
- "Flask Web Development" is the best reated book
- Start implementing activity stream model.
- Add
numpy
package to PyCharm project interpreter - attr supports class immutability and much more.
- Toward Improving Digital Attribution Model Accuracy: In this paper, we use this simulation to demonstrate that current models fail to accurately capture the true number of incremental conversions generated by ads that impact user behavior, and introduce an Upstream Data-Driven Attribution (UDDA) model to address this shortcoming. We also demonstrate that development beyond UDDA is still required to address a lack of data completeness, and situations that include highly targeting advertising.