A Singer tap for extracting data from the Taboola API
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
tap_taboola pylint fixes Feb 14, 2018
.gitignore add python gitignore Mar 31, 2017
LICENSE license Mar 31, 2017
README.md copyright Mar 31, 2017
circle.yml adding pylint Mar 31, 2017
setup.py bump version to 0.1.0 Feb 14, 2018



Author: Connor McArthur (connor@fishtownanalytics.com)

This is a Singer tap that produces JSON-formatted data following the Singer spec.

This tap:

  • Pulls raw data from Taboola's Backstage API
  • Extracts the following resources:
    • Campaigns
    • Campaign Reports, specifically the campaign_day_breakdown report
  • Outputs the schema for each resource
  • Incrementally pulls data based on the input state

Quick start

  1. Install

    > git clone git@github.com:fishtown-analytics/tap-taboola.git
    > cd tap-taboola
    > pip install .
  2. Get credentials from Taboola:

    You'll need:

    • Your account id (if you aren't sure, contact your account manager)
    • A Taboola username and password with access to the API
    • A client ID and secret for the API (your account manager can give you these)
  3. Create the config file.

    There is a template you can use at config.json.example, just copy it to config.json in the repo root and insert your credentials.

    • account_id, your Taboola account ID (looks like taboola­demo­advertiser).
    • username, your Taboola username -- used to generate an API access key.
    • password, the Taboola password to go along with username.
    • client_id, your Taboola client ID. You should reach out to your account manager to get this.
    • client_secret, your Taboola client secret. You should reach out to your account manager to get this.
    • start_date, the date from which you want to sync data, in the format 2017-03-10.
  4. Run the application.

    tap-taboola --config config.json


  • campaigns: Taboola pushes null for start_date and 9999-12-31 for end_date sometimes. This tap converts null dates to 9999-12-31 for consistency. I don't know what that signifies at present. - @cmcarthur

Copyright © 2017 Stitch