A Python implementation of the IAB consent strings (v1.1 and v2)
Install and update using pip:
pip install -U iab-tcf
Documentation of this package can be found at readthedocs.io.
To generate the documentation locally:
pip install sphinx sphinx_rtd_theme
cd docs/
sphinx-apidoc -f -o . ../iab_tcf/
make html
In order to decode a v1.1 or v2 consent string automatically we can do:
from iab_tcf import decode
consent = decode("CO5VTlWO5VTlWH1AAAENAwCwAIAAAAAAAIAAAAoAAAAA.YAAAAAAAAAA")
print(consent.version) # prints 2
If we want to improve performance and we already know it's going to be a v2 consent string we can do:
from iab_tcf import decode_v2
consent = decode_v2("CO5VTlWO5VTlWH1AAAENAwCwAIAAAAAAAIAAAAoAAAAA.YAAAAAAAAAA")
print(consent.version) # prints 2
In order to run the tests locally we can do:
pip install -r requirements-test.txt
pytest -v .
Many thanks to LiveRamp/iabconsent which greatly inspired this project, and forms the basis and internal logic.