Skip to content

Commit 85ab018

Browse files
committed
New V2
1 parent 1586bea commit 85ab018

7 files changed

Lines changed: 344 additions & 2 deletions

File tree

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
{
2+
"type": "object",
3+
"properties": {
4+
"id": {
5+
"type": [ "null", "integer"]
6+
},
7+
"advertiser_id": {
8+
"type": [ "null", "string"]
9+
},
10+
"name": {
11+
"type": [ "null", "string"]
12+
},
13+
"tracking_code": {
14+
"type": [ "null", "string"]
15+
},
16+
"cpc": {
17+
"type": [ "null", "number"]
18+
},
19+
"daily_cap": {
20+
"type": [ "null", "number"]
21+
},
22+
"spending_limit": {
23+
"type": [ "null", "number"]
24+
},
25+
"spending_limit_model": {
26+
"type": [ "null", "string"]
27+
},
28+
"country_targeting": {
29+
"type": [ "null", "object"],
30+
"properties": {
31+
"type": {
32+
"type": [ "null", "string"]
33+
},
34+
"value": {
35+
"type": "array",
36+
"items": {
37+
"type": [ "null", "string"]
38+
}
39+
}
40+
}
41+
},
42+
"platform_targeting": {
43+
"type": [ "null", "object"],
44+
"properties": {
45+
"type": {
46+
"type": [ "null", "string"]
47+
},
48+
"value": {
49+
"type": "array",
50+
"items": {
51+
"type": [ "null", "string"]
52+
}
53+
}
54+
}
55+
},
56+
"publisher_targeting": {
57+
"type": [ "null", "object"],
58+
"properties": {
59+
"type": {
60+
"type": [ "null", "string"]
61+
},
62+
"value": {
63+
"type": "array",
64+
"items": {
65+
"type": [ "null", "string"]
66+
}
67+
}
68+
}
69+
},
70+
"start_date": {
71+
"type": [ "null", "string"],
72+
"format": "date"
73+
},
74+
"end_date": {
75+
"type": [ "null", "string"],
76+
"format": "date"
77+
},
78+
"approval_state": {
79+
"type": [ "null", "string"]
80+
},
81+
"is_active": {
82+
"type": [ "null", "boolean"]
83+
},
84+
"spent": {
85+
"type": [ "null", "number"]
86+
},
87+
"status": {
88+
"type": [ "null", "string"]
89+
}
90+
}
91+
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
{
2+
"type": "object",
3+
"properties": {
4+
"id": {
5+
"type": ["null", "integer"]
6+
},
7+
"created_at": {
8+
"type": ["null", "string"],
9+
"format": "date-time"
10+
},
11+
"campaign_id": {
12+
"type": [ "null", "integer"]
13+
},
14+
"date": {
15+
"type": [ "null", "string"],
16+
"format": "date"
17+
},
18+
"impressions": {
19+
"type": [ "null", "integer"]
20+
},
21+
"campaign_name": {
22+
"type": [ "null", "string"]
23+
},
24+
"ctr": {
25+
"type": [ "null", "number"]
26+
},
27+
"clicks": {
28+
"type": [ "null", "integer"]
29+
},
30+
"cpc": {
31+
"type": [ "null", "number"]
32+
},
33+
"cpm": {
34+
"type": [ "null", "number"]
35+
},
36+
"cpa_conversion_rate": {
37+
"type": [ "null", "number"]
38+
},
39+
"cpa_actions_num": {
40+
"type": [ "null", "integer"]
41+
},
42+
"cpa": {
43+
"type": [ "null", "number"]
44+
},
45+
"spent": {
46+
"type": [ "null", "number"]
47+
},
48+
"conversions_value": {
49+
"type": [ "null", "number"]
50+
},
51+
"currency": {
52+
"type": [ "null", "string"]
53+
}
54+
},
55+
"additionalProperties": false
56+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
tap: taboola
2+
version: '1'
3+
keys:
4+
campaign_campaign_id:
5+
- table: campaign
6+
keys:
7+
- id
8+
- table: campaign_performance
9+
keys:
10+
- campaign_id
11+
tables:
12+
- table-name: campaign
13+
join:
14+
- table-name: campaign_performance
15+
keys:
16+
- key: id
17+
foreign-key: campaign_id
18+
- table-name: campaign_performance
19+
join:
20+
- table-name: campaign
21+
keys:
22+
- key: campaign_id
23+
foreign-key: id
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
tap: taboola
2+
version: '1'
3+
tap-repo-schemas: false
4+
tables:
5+
- name: campaign
6+
description: 'The `{{ table.name }}` table contains info about the campaigns in
7+
your Taboola account.
8+
9+
10+
#### Replication
11+
12+
13+
During every replication job, all campaigns in your Taboola account will be extracted,
14+
or "fully replicated." If you look in the [Extraction Logs]({{ link.replication.extraction-logs
15+
| prepend: site.baseurl }}) in the Stitch app, you''ll see lines like this:
16+
17+
18+
```
19+
20+
2017-10-25 13:46:52,254Z tap - INFO Synced 100 campaigns.
21+
22+
2017-10-25 13:46:52,255Z tap - INFO Done syncing campaigns.
23+
24+
```
25+
26+
27+
Roughly the same amount of campaigns should be extracted during every job, unless
28+
brand new campaigns are added between jobs.
29+
30+
31+
When Stitch loads the extracted records into your destination, however, only new
32+
and updated campaigns will be loaded. **This means that only new and updated campaign
33+
records will count towards your row count**.
34+
35+
36+
#### Deleted campaigns
37+
38+
39+
Currently, [the Singer tap](https://github.com/singer-io/tap-taboola){:target="new"}
40+
powering this integration has no way to account for campaigns that are hard-deleted
41+
in {{ integration.display_name }}. This means that if a campaign is deleted at
42+
the source, the record for that campaign will remain in the destination.
43+
44+
45+
#### NULL dates
46+
47+
48+
On occasion, {{ integration.display_name }}''s API will push `NULL` for `start_date`
49+
and `999-12-31` for `end_date`. [The Singer tap](https://github.com/singer-io/tap-taboola#gotchas){:target="new"}
50+
behind this integration will convert `NULL` dates to `999-12-31` for consistency.
51+
52+
'
53+
links:
54+
singer-schema: https://github.com/singer-io/tap-taboola/blob/master/tap_taboola/schemas.py#L2
55+
api-method: https://github.com/taboola/Backstage-API/blob/master/Backstage%20API%20-%20Campaigns.pdf
56+
table-details:
57+
replication-method: Full Table
58+
primary-key: id
59+
- name: campaign_performance
60+
description: 'The `{{ table.name }}` table contains performance data for the campaigns
61+
in your {{ integration.display_name }} account, broken down by day.
62+
63+
'
64+
links:
65+
doc-link: https://github.com/taboola/Backstage-API/blob/master/Backstage%20API%20-%20Reports.pdf
66+
singer-schema: https://github.com/singer-io/tap-taboola/blob/master/tap_taboola/schemas.py#L117
67+
table-details:
68+
replication-method: Key-based Incremental
69+
primary-keys:
70+
- campaign_id
71+
- date
72+
replication-key: date

_data/taps/versions/taboola.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
22
# TABOOLA VERSIONS #
33
# -------------------------- #
44

5-
latest-version: "1"
5+
latest-version: "2"
66

77
released-versions:
8+
- number: "2"
9+
date-released: "February 12, 2026"
810
- number: "1"
911
date-released: "April 25, 2017"
10-
# date-last-connection:
12+
deprecation-date: "February 12, 2026"
File renamed without changes.
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
---
2+
title: Taboola (v2)
3+
permalink: /integrations/saas/taboola
4+
keywords: taboola, taboola integration, schema, etl taboola, taboola etl, taboola schema
5+
summary: "Connection instructions and schema details for Stitch's Taboola integration."
6+
layout: singer
7+
8+
key: "taboola-setup"
9+
10+
# -------------------------- #
11+
# Tap Details #
12+
# -------------------------- #
13+
14+
name: "taboola"
15+
display_name: "Taboola"
16+
17+
singer: true
18+
repo-url: https://github.com/singer-io/tap-taboola
19+
status-url: https://twitter.com/taboola?lang=en
20+
21+
this-version: "2"
22+
23+
api: |
24+
[{{ integration.display_name }} Backstage API](https://github.com/taboola/Backstage-API){:target="new"}
25+
26+
# -------------------------- #
27+
# Integration Details #
28+
# -------------------------- #
29+
30+
certified: false
31+
32+
historical: "1 year"
33+
frequency: "30 minutes"
34+
tier: "Standard"
35+
36+
api-type: "platform.taboola"
37+
38+
anchor-scheduling: true
39+
cron-scheduling: true
40+
41+
table-selection: false
42+
column-selection: false
43+
select-all: false
44+
select-all-reason: |
45+
As this integration doesn't support table or column selection, all available tables and columns are automatically replicated.
46+
47+
extraction-logs: true
48+
loading-reports: true
49+
50+
# -------------------------- #
51+
# Feature Summary #
52+
# -------------------------- #
53+
54+
feature-summary: |
55+
Stitch's {{ integration.display_name }} integration replicates data using the {{ integration.api | flatify | strip }}. Refer to the [Schema](#schema) section for a list of objects available for replication.
56+
57+
58+
# -------------------------- #
59+
# Setup Instructions #
60+
# -------------------------- #
61+
62+
requirements-list:
63+
- item: "**Access to the {{ integration.display_name }} API**."
64+
- item: |
65+
**The following API credentials:**
66+
67+
- Taboola Account ID
68+
- Client ID
69+
- Client Secret
70+
71+
requirements-info: "Reach out to your {{ integration.display_name }} Account Manager for assistance. Once you receive this information, you can continue with the setup."
72+
73+
setup-steps:
74+
- title: "Add {{ integration.display_name }} as a Stitch data source"
75+
anchor: "add-stitch-data-source"
76+
content: |
77+
{% include integrations/shared-setup/connection-setup.html %}
78+
4. In the **Username** field, enter your {{ integration.display_name }} username. This user must have access to the {{ integration.display_name }} API.
79+
5. In the **Password** field, enter your {{ integration.display_name }} password.
80+
6. In the **Account ID** field, enter your {{ integration.display_name }} account ID.
81+
7. In the **Client ID** field, enter your {{ integration.display_name }} client ID.
82+
8. In the **Client Secret** field, enter your {{ integration.display_name }} client secret.
83+
- title: "Define the historical replication start date"
84+
anchor: "define-historical-sync"
85+
content: |
86+
{% include integrations/saas/setup/historical-sync.html %}
87+
88+
- title: "Create a replication schedule"
89+
anchor: "define-rep-frequency"
90+
content: |
91+
{% include integrations/shared-setup/replication-frequency.html %}
92+
- title: "Set objects to replicate"
93+
anchor: "setting-data-to-replicate"
94+
content: |
95+
{% include integrations/shared-setup/data-selection/object-selection.html %}
96+
---
97+
{% assign integration = page %}
98+
{% include misc/data-files.html %}

0 commit comments

Comments
 (0)