diff --git a/_data/taps/schemas/taboola/v2/json/campaign.json b/_data/taps/schemas/taboola/v2/json/campaign.json new file mode 100644 index 000000000..827c8a8a5 --- /dev/null +++ b/_data/taps/schemas/taboola/v2/json/campaign.json @@ -0,0 +1,91 @@ +{ + "type": "object", + "properties": { + "id": { + "type": [ "null", "integer"] + }, + "advertiser_id": { + "type": [ "null", "string"] + }, + "name": { + "type": [ "null", "string"] + }, + "tracking_code": { + "type": [ "null", "string"] + }, + "cpc": { + "type": [ "null", "number"] + }, + "daily_cap": { + "type": [ "null", "number"] + }, + "spending_limit": { + "type": [ "null", "number"] + }, + "spending_limit_model": { + "type": [ "null", "string"] + }, + "country_targeting": { + "type": [ "null", "object"], + "properties": { + "type": { + "type": [ "null", "string"] + }, + "value": { + "type": "array", + "items": { + "type": [ "null", "string"] + } + } + } + }, + "platform_targeting": { + "type": [ "null", "object"], + "properties": { + "type": { + "type": [ "null", "string"] + }, + "value": { + "type": "array", + "items": { + "type": [ "null", "string"] + } + } + } + }, + "publisher_targeting": { + "type": [ "null", "object"], + "properties": { + "type": { + "type": [ "null", "string"] + }, + "value": { + "type": "array", + "items": { + "type": [ "null", "string"] + } + } + } + }, + "start_date": { + "type": [ "null", "string"], + "format": "date" + }, + "end_date": { + "type": [ "null", "string"], + "format": "date" + }, + "approval_state": { + "type": [ "null", "string"] + }, + "is_active": { + "type": [ "null", "boolean"] + }, + "spent": { + "type": [ "null", "number"] + }, + "status": { + "type": [ "null", "string"] + } + } +} diff --git a/_data/taps/schemas/taboola/v2/json/campaign_performance.json b/_data/taps/schemas/taboola/v2/json/campaign_performance.json new file mode 100644 index 000000000..6da16bc5c --- /dev/null +++ b/_data/taps/schemas/taboola/v2/json/campaign_performance.json @@ -0,0 +1,56 @@ +{ + "type": "object", + "properties": { + "id": { + "type": ["null", "integer"] + }, + "created_at": { + "type": ["null", "string"], + "format": "date-time" + }, + "campaign_id": { + "type": [ "null", "integer"] + }, + "date": { + "type": [ "null", "string"], + "format": "date" + }, + "impressions": { + "type": [ "null", "integer"] + }, + "campaign_name": { + "type": [ "null", "string"] + }, + "ctr": { + "type": [ "null", "number"] + }, + "clicks": { + "type": [ "null", "integer"] + }, + "cpc": { + "type": [ "null", "number"] + }, + "cpm": { + "type": [ "null", "number"] + }, + "cpa_conversion_rate": { + "type": [ "null", "number"] + }, + "cpa_actions_num": { + "type": [ "null", "integer"] + }, + "cpa": { + "type": [ "null", "number"] + }, + "spent": { + "type": [ "null", "number"] + }, + "conversions_value": { + "type": [ "null", "number"] + }, + "currency": { + "type": [ "null", "string"] + } + }, + "additionalProperties": false +} diff --git a/_data/taps/schemas/taboola/v2/taboola-v2-foreign-keys.yml b/_data/taps/schemas/taboola/v2/taboola-v2-foreign-keys.yml new file mode 100644 index 000000000..f2304f475 --- /dev/null +++ b/_data/taps/schemas/taboola/v2/taboola-v2-foreign-keys.yml @@ -0,0 +1,23 @@ +tap: taboola +version: '1' +keys: + campaign_campaign_id: + - table: campaign + keys: + - id + - table: campaign_performance + keys: + - campaign_id +tables: +- table-name: campaign + join: + - table-name: campaign_performance + keys: + - key: id + foreign-key: campaign_id +- table-name: campaign_performance + join: + - table-name: campaign + keys: + - key: campaign_id + foreign-key: id diff --git a/_data/taps/schemas/taboola/v2/taboola-v2-tables.yml b/_data/taps/schemas/taboola/v2/taboola-v2-tables.yml new file mode 100644 index 000000000..a2722b107 --- /dev/null +++ b/_data/taps/schemas/taboola/v2/taboola-v2-tables.yml @@ -0,0 +1,72 @@ +tap: taboola +version: '2' +tap-repo-schemas: false +tables: +- name: campaign + description: 'The `{{ table.name }}` table contains info about the campaigns in + your Taboola account. + + + #### Replication + + + During every replication job, all campaigns in your Taboola account will be extracted, + or "fully replicated." If you look in the [Extraction Logs]({{ link.replication.extraction-logs + | prepend: site.baseurl }}) in the Stitch app, you''ll see lines like this: + + + ``` + + 2017-10-25 13:46:52,254Z tap - INFO Synced 100 campaigns. + + 2017-10-25 13:46:52,255Z tap - INFO Done syncing campaigns. + + ``` + + + Roughly the same amount of campaigns should be extracted during every job, unless + brand new campaigns are added between jobs. + + + When Stitch loads the extracted records into your destination, however, only new + and updated campaigns will be loaded. **This means that only new and updated campaign + records will count towards your row count**. + + + #### Deleted campaigns + + + Currently, [the Singer tap](https://github.com/singer-io/tap-taboola){:target="new"} + powering this integration has no way to account for campaigns that are hard-deleted + in {{ integration.display_name }}. This means that if a campaign is deleted at + the source, the record for that campaign will remain in the destination. + + + #### NULL dates + + + On occasion, {{ integration.display_name }}''s API will push `NULL` for `start_date` + and `999-12-31` for `end_date`. [The Singer tap](https://github.com/singer-io/tap-taboola#gotchas){:target="new"} + behind this integration will convert `NULL` dates to `999-12-31` for consistency. + + ' + links: + singer-schema: https://github.com/singer-io/tap-taboola/blob/master/tap_taboola/schemas/campaigns.json + api-method: https://github.com/taboola/Backstage-API/blob/master/Backstage%20API%20-%20Campaigns.pdf + table-details: + replication-method: Full Table + primary-key: id +- name: campaign_performance + description: 'The `{{ table.name }}` table contains performance data for the campaigns + in your {{ integration.display_name }} account, broken down by day. + + ' + links: + singer-schema: https://github.com/singer-io/tap-taboola/blob/master/tap_taboola/schemas/campaign_performance.json + api-method: https://github.com/taboola/Backstage-API/blob/master/Backstage%20API%20-%20Campaign%20Performance.pdf + table-details: + replication-method: Key-based Incremental + primary-keys: + - campaign_id + - date + replication-key: date diff --git a/_data/taps/versions/taboola.yml b/_data/taps/versions/taboola.yml index c6ecde472..f66eed97b 100644 --- a/_data/taps/versions/taboola.yml +++ b/_data/taps/versions/taboola.yml @@ -2,9 +2,11 @@ # TABOOLA VERSIONS # # -------------------------- # -latest-version: "1" +latest-version: "2" released-versions: + - number: "2" + date-released: "February 12, 2026" - number: "1" date-released: "April 25, 2017" - # date-last-connection: \ No newline at end of file + deprecation-date: "February 12, 2026" \ No newline at end of file diff --git a/_saas-integrations/taboola/v1/taboola.md b/_saas-integrations/taboola/v1/taboola.md new file mode 100644 index 000000000..a615903a1 --- /dev/null +++ b/_saas-integrations/taboola/v1/taboola.md @@ -0,0 +1,96 @@ +--- +title: Taboola (v1) +permalink: /integrations/saas/taboola/v1 +keywords: taboola, taboola integration, schema, etl taboola, taboola etl, taboola schema +summary: "Connection instructions and schema details for Stitch's Taboola integration." +layout: singer +input: false + +key: "taboola-setup" + +# -------------------------- # +# Tap Details # +# -------------------------- # + +name: "taboola" +display_name: "Taboola" + +singer: true +repo-url: https://github.com/singer-io/tap-taboola +status-url: https://twitter.com/taboola?lang=en + +this-version: "1" + +api: | + [{{ integration.display_name }} Backstage API](https://github.com/taboola/Backstage-API){:target="new"} + +# -------------------------- # +# Integration Details # +# -------------------------- # + +certified: false + +historical: "1 year" +frequency: "30 minutes" +tier: "Standard" + +api-type: "platform.taboola" + +anchor-scheduling: true +cron-scheduling: true + +table-selection: false +column-selection: false +select-all: false +select-all-reason: | + As this integration doesn't support table or column selection, all available tables and columns are automatically replicated. + +extraction-logs: true +loading-reports: true + +# -------------------------- # +# Feature Summary # +# -------------------------- # + +feature-summary: | + 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. + + +# -------------------------- # +# Setup Instructions # +# -------------------------- # + +requirements-list: + - item: "**Access to the {{ integration.display_name }} API**." + - item: | + **The following API credentials:** + + - Taboola Account ID + - Client ID + - Client Secret + +requirements-info: "Reach out to your {{ integration.display_name }} Account Manager for assistance. Once you receive this information, you can continue with the setup." + +setup-steps: + - title: "Add {{ integration.display_name }} as a Stitch data source" + anchor: "add-stitch-data-source" + content: | + {% include integrations/shared-setup/connection-setup.html %} + 4. In the **Username** field, enter your {{ integration.display_name }} username. This user must have access to the {{ integration.display_name }} API. + 5. In the **Password** field, enter your {{ integration.display_name }} password. + 6. In the **Account ID** field, enter your {{ integration.display_name }} account ID. + 7. In the **Client ID** field, enter your {{ integration.display_name }} client ID. + 8. In the **Client Secret** field, enter your {{ integration.display_name }} client secret. + - title: "Define the historical replication start date" + anchor: "define-historical-sync" + content: | + {% include integrations/saas/setup/historical-sync.html %} + + - title: "Create a replication schedule" + anchor: "define-rep-frequency" + content: | + {% include integrations/shared-setup/replication-frequency.html %} + +--- +{% assign integration = page %} +{% include misc/data-files.html %} \ No newline at end of file diff --git a/_saas-integrations/taboola/taboola-latest.md b/_saas-integrations/taboola/v2/taboola-latest.md old mode 100755 new mode 100644 similarity index 93% rename from _saas-integrations/taboola/taboola-latest.md rename to _saas-integrations/taboola/v2/taboola-latest.md index 9069a0746..0ba3d5970 --- a/_saas-integrations/taboola/taboola-latest.md +++ b/_saas-integrations/taboola/v2/taboola-latest.md @@ -1,9 +1,10 @@ --- -title: Taboola (v1) +title: Taboola (v2) permalink: /integrations/saas/taboola keywords: taboola, taboola integration, schema, etl taboola, taboola etl, taboola schema summary: "Connection instructions and schema details for Stitch's Taboola integration." layout: singer +#input: false key: "taboola-setup" @@ -18,7 +19,7 @@ singer: true repo-url: https://github.com/singer-io/tap-taboola status-url: https://twitter.com/taboola?lang=en -this-version: "1" +this-version: "2" api: | [{{ integration.display_name }} Backstage API](https://github.com/taboola/Backstage-API){:target="new"} @@ -89,7 +90,10 @@ setup-steps: anchor: "define-rep-frequency" content: | {% include integrations/shared-setup/replication-frequency.html %} - + - title: "Set objects to replicate" + anchor: "setting-data-to-replicate" + content: | + {% include integrations/shared-setup/data-selection/object-selection.html %} --- {% assign integration = page %} {% include misc/data-files.html %} \ No newline at end of file