Skip to content
TAM Reporting

Integrations

Third-party integrations with TAM Reporting.

Any third party can integrate with TAM reporting data using this API.

Published collaboration: Datorama. Supermetrics is listed as coming soon on the Reporting API hub.

Datorama

TAM has no native Datorama connector. Use Datorama's Python Data Stream to pull a scheduled TAM CSV.

1. Create a scheduled report in TAM

  1. Open the Reports tab and click New report.
  2. Choose dimensions and metrics. Put Day first.
  3. Schedule: Recurrent, frequency Every Day, period Previous day.
  4. Report file type: CSV.
  5. Save and Run, then copy the numeric report id.

2. Create a Datorama data stream

  1. In Datorama: Connect & Mix → Data Streams → Data Streams List.
  2. Add New, vendor Python.
  3. Name the stream. Data stream type Ads, default channel Display.
  4. Paste one of the scripts below. Replace:
    • TAM_API_KEY — TAM API key
    • TAM_SCHEDULED_REPORT_ID — report id from step 1
    • TAM_SCHEDULED_REPORT_TIMEZONE — timezone of that report
  5. Validate.
  6. Frequency Daily, delivery hour 6am. Advanced: Data Load Mode Replace.
  7. Next, confirm mapping against the TAM report, then Save.

Python 2.7

import csv, urllib2, urllib, datorama, json

# Change the following values
TAM_API_KEY = 'XXXX-XX-XX-XXXX-XXXX'
TAM_SCHEDULED_REPORT_ID = 'XXXX'
TAM_SCHEDULED_REPORT_TIMEZONE = 'America/New_York'

# Do not edit beyond this point
TAM_API_HOSTNAME = 'https://ads.teads.tv'
headers = {
    'Authorization': TAM_API_KEY,
    'Content-Type': 'application/json',
    'Accept': 'application/json',
}

try:
    req = urllib2.Request(
        TAM_API_HOSTNAME
        + '/api/reports/'
        + TAM_SCHEDULED_REPORT_ID
        + '/latest-file',
        None,
        headers,
    )
    response = urllib2.urlopen(req)
    res = json.loads(response.read())
    if res['url']:
        csvUrl = urllib2.urlopen(res['url'])
        cr = csv.reader(csvUrl)
        cr1 = []
        for row in cr:
            row[0] = row[0].replace(TAM_SCHEDULED_REPORT_TIMEZONE, '')
            cr1.append(row)
        datorama.add_rows(cr1)
        datorama.save()
except Exception, e:
    print "An error occured: ", str(e)

Python 3.6

import datorama, csv, urllib, json, urllib.request, codecs

# Change the following values
TAM_API_KEY = 'XXXX-XX-XX-XXXX-XXXX'
TAM_SCHEDULED_REPORT_ID = 'XXXX'
TAM_SCHEDULED_REPORT_TIMEZONE = 'America/New_York'

# Do not edit beyond this point
TAM_API_HOSTNAME = 'https://ads.teads.tv'
headers = {
    'Authorization': TAM_API_KEY,
    'Content-Type': 'application/json',
    'Accept': 'application/json',
}

try:
    req = urllib.request.Request(
        TAM_API_HOSTNAME
        + '/api/reports/'
        + TAM_SCHEDULED_REPORT_ID
        + '/latest-file',
        None,
        headers,
    )
    response = urllib.request.urlopen(req)
    res = json.loads(response.read())
    if res['url']:
        csvUrl = urllib.request.urlopen(res['url'])
        cr = csv.reader(codecs.iterdecode(csvUrl, 'utf-8'))
        cr1 = []
        for row in cr:
            row[0] = row[0].replace(TAM_SCHEDULED_REPORT_TIMEZONE, '')
            cr1.append(row)
        datorama.add_rows(cr1)
        datorama.save()
except Exception as e:
    print("An error occured: ", str(e))

These scripts are the official TAM examples (including the occured spelling). Prefer environment variables over hard-coded keys in production.