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
- Open the Reports tab and click New report.
- Choose dimensions and metrics. Put Day first.
- Schedule: Recurrent, frequency Every Day, period Previous day.
- Report file type: CSV.
- Save and Run, then copy the numeric report id.
2. Create a Datorama data stream
- In Datorama: Connect & Mix → Data Streams → Data Streams List.
- Add New, vendor Python.
- Name the stream. Data stream type Ads, default channel Display.
- Paste one of the scripts below. Replace:
TAM_API_KEY— TAM API keyTAM_SCHEDULED_REPORT_ID— report id from step 1TAM_SCHEDULED_REPORT_TIMEZONE— timezone of that report
- Validate.
- Frequency Daily, delivery hour 6am. Advanced: Data Load Mode Replace.
- 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.