From 4ad55b40f630ebc44ea9c968419558081a1ef77b Mon Sep 17 00:00:00 2001 From: Lucie Milan Date: Wed, 29 Nov 2023 09:16:04 +0100 Subject: [PATCH 1/7] documented linkedin v3 --- .../2023/2023-11-29-linkedin-ads-v3.md | 15 + .../linkedin-ads/v3/account_users.md | 81 ++++ .../linkedin-ads/v3/accounts.md | 147 ++++++ .../v3/ad_analytics_by_campaign.md | 456 +++++++++++++++++ .../v3/ad_analytics_by_creative.md | 457 ++++++++++++++++++ .../linkedin-ads/v3/campaign_groups.md | 129 +++++ .../linkedin-ads/v3/campaigns.md | 301 ++++++++++++ .../linkedin-ads/v3/creatives.md | 97 ++++ .../linkedin-ads/v3/foreign-keys.md | 93 ++++ .../linkedin-ads/v3/video_ads.md | 77 +++ .../linkedin-ads/v3/linkedin-ads-v3.md | 139 ++++++ 11 files changed, 1992 insertions(+) create mode 100644 _changelog-files/2023/2023-11-29-linkedin-ads-v3.md create mode 100644 _integration-schemas/linkedin-ads/v3/account_users.md create mode 100644 _integration-schemas/linkedin-ads/v3/accounts.md create mode 100644 _integration-schemas/linkedin-ads/v3/ad_analytics_by_campaign.md create mode 100644 _integration-schemas/linkedin-ads/v3/ad_analytics_by_creative.md create mode 100644 _integration-schemas/linkedin-ads/v3/campaign_groups.md create mode 100644 _integration-schemas/linkedin-ads/v3/campaigns.md create mode 100644 _integration-schemas/linkedin-ads/v3/creatives.md create mode 100644 _integration-schemas/linkedin-ads/v3/foreign-keys.md create mode 100644 _integration-schemas/linkedin-ads/v3/video_ads.md create mode 100644 _saas-integrations/linkedin-ads/v3/linkedin-ads-v3.md diff --git a/_changelog-files/2023/2023-11-29-linkedin-ads-v3.md b/_changelog-files/2023/2023-11-29-linkedin-ads-v3.md new file mode 100644 index 000000000..5d8ca92ff --- /dev/null +++ b/_changelog-files/2023/2023-11-29-linkedin-ads-v3.md @@ -0,0 +1,15 @@ +--- +title: "LinkedIn Ads integration: New version (v3) now available!" +content-type: "changelog-entry" +date: 2023-11-29 +entry-type: new-feature +entry-category: integration +connection-id: linkedin-ads +connection-version: 3 +pull-request: "https://github.com/singer-io/tap-linkedin-ads/pull/64" +--- +{{ site.data.changelog.metadata.single-integration | flatify }} + +A new version (v{{ this-connection.this-version }}) of our {{ this-connection.display_name }} integration is now available! + +We've upgraded the {{ this-connection.display_name }} API from `202302` to `202309`. This upgrade bring some updates to the `video_ads` stream, including a new Primary Key and a new Replication Key. \ No newline at end of file diff --git a/_integration-schemas/linkedin-ads/v3/account_users.md b/_integration-schemas/linkedin-ads/v3/account_users.md new file mode 100644 index 000000000..34dadd8d3 --- /dev/null +++ b/_integration-schemas/linkedin-ads/v3/account_users.md @@ -0,0 +1,81 @@ +--- +tap: "linkedin-ads" +version: "3" +key: "account-user" + +name: "account_users" +doc-link: "" +singer-schema: "https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/account_users.json" +description: | + The `{{ table.name }}` table contains info about the users who have permissions to an ad account. + +replication-method: "Key-based Incremental" + +api-method: + name: "Find Ad Account Users by Accounts" + doc-link: "https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-account-users?view=li-lms-2022-07&tabs=http#find-ad-account-users-by-accounts" + +attributes: + - name: "account_id" + type: "integer" + primary-key: true + description: "The ID of the account associated with the user." + foreign-key-id: "account-id" + + - name: "user_person_id" + type: "string" + primary-key: true + description: "The user's person ID." + foreign-key-id: "user-id" + + - name: "last_modified_time" + type: "date-time" + replication-key: true + description: "The time the user was last modified." + + - name: "account" + type: "string" + description: "The advertising account's URN." + + - name: "campaign_contact" + type: "boolean" + description: "The list of emails registered to receive campaign-related events." + + - name: "change_audit_stamps" + type: "object" + description: "" + subattributes: + - name: "created" + type: "object" + description: "" + subattributes: + - name: "time" + type: "date-time" + description: "" + - name: "last_modified" + type: "object" + description: "" + subattributes: + - name: "time" + type: "date-time" + description: "" + + - name: "created_time" + type: "date-time" + description: "The time the user was las modified." + + - name: "role" + type: "string" + description: | + The user's role in the account. Possible values are: + + - `VIEWER` + - `CREATIVE_MANAGER` + - `CAMPAIGN_MANAGER` + - `ACCOUNT_MANAGER` + - `ACCOUNT_BILLING_ADMIN` + + - name: "user" + type: "string" + description: "The associated user's URN." +--- \ No newline at end of file diff --git a/_integration-schemas/linkedin-ads/v3/accounts.md b/_integration-schemas/linkedin-ads/v3/accounts.md new file mode 100644 index 000000000..3f238a3e9 --- /dev/null +++ b/_integration-schemas/linkedin-ads/v3/accounts.md @@ -0,0 +1,147 @@ +--- +tap: "linkedin-ads" +version: "3" +key: "account" + +name: "accounts" +doc-link: "" +singer-schema: "https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/accounts.json" +description: | + The `{{ table.name }}` table contains info about your {{ integration.display_name }} ad accounts. + +replication-method: "Key-based Incremental" + +api-method: + name: "Search for Accounts" + doc-link: "https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-accounts?view=li-lms-2022-07&tabs=http#search-for-accounts" + +attributes: + - name: "id" + type: "integer" + primary-key: true + description: "The internal account ID." + foreign-key-id: "account-id" + + - name: "last_modified_time" + type: "date-time" + replication-key: true + description: "The time the account was last modified." + + - name: "change_audit_stamps" + type: "object" + description: "" + subattributes: + - name: "created" + type: "object" + description: "" + subattributes: + - name: "time" + type: "date-time" + description: "" + - name: "last_modified" + type: "object" + description: "" + subattributes: + - name: "time" + type: "date-time" + description: "" + + - name: "created_time" + type: "date-time" + description: "The time the account was created." + + - name: "currency" + type: "string" + description: "The ISO 4217 currency code." + + - name: "name" + type: "string" + description: "The account label." + + - name: "notified_on_campaign_optimization" + type: "boolean" + description: "Indicates if the campaign contact has been notified about an opportunity." + + - name: "notified_on_creative_approval" + type: "boolean" + description: "Indicates if the creative contact has been notified of approval." + + - name: "notified_on_creative_rejection" + type: "boolean" + description: "Indicates if the creative contact has been rejected." + + - name: "notified_on_end_of_campaign" + type: "boolean" + description: "Indicates if the campaign contact has been notified about the end of a campaign." + + - name: "notified_on_new_features_enabled" + type: "boolean" + description: "Indicates if the account owner is notified about new features." + + - name: "reference" + type: "string" + description: "The entity on whose behalf the account advertises." + + - name: "reference_organization_id" + type: "integer" + description: "" + #foreign-key-id: "reference-organization-id" + + - name: "reference_person_id" + type: "string" + description: "" + #foreign-key-id: "reference-person-id" + + - name: "serving_statuses" + type: "array" + description: "Details about the account's system serving statuses." + subattributes: + - name: "value" + type: "string" + description: | + The account's system serving status. If an account is eligible for serving, the value will be `RUNNABLE`. + + Other possible values that indicate why the account isn't servable: + + - `STOPPED` + - `BILLING_HOLD` + - `ACCOUNT_TOTAL_BUDGET_HOLD` + - `ACCOUNT_END_DATE_HOLD` + - `RESTRICTED_HOLD` + - `INTERNAL_HOLD` + + - name: "status" + type: "string" + description: "The account's active status." + + - name: "test" + type: "boolean" + description: "Indicates whether this account is a test account." + + - name: "total_budget" + type: "object" + description: "Details about the account's budget." + subattributes: + - name: "amount" + type: "number" + description: "" + - name: "currency_code" + type: "string" + description: "" + + - name: "total_budget_ends_at" + type: "date-time" + description: "" + + - name: "type" + type: "string" + description: "The account type - business or enterprise." + + - name: "version" + type: "object" + description: "" + subattributes: + - name: "version_tag" + type: "string" + description: "" +--- \ No newline at end of file diff --git a/_integration-schemas/linkedin-ads/v3/ad_analytics_by_campaign.md b/_integration-schemas/linkedin-ads/v3/ad_analytics_by_campaign.md new file mode 100644 index 000000000..2bcc51ae4 --- /dev/null +++ b/_integration-schemas/linkedin-ads/v3/ad_analytics_by_campaign.md @@ -0,0 +1,456 @@ +--- +tap: "linkedin-ads" +version: "3" +key: "ad-analytics-campaign" + +name: "ad_analytics_by_campaign" +doc-link: "" +singer-schema: "https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/ad_analytics_by_campaign.json" +description: | + The `{{ table.name }}` table contains analytics data for ads, segmented by campaign. + + **Note**: This table is replicated using an attribution window of {{ integration.attribution-window }}. Refer to the [Replication](#replication) section for more info. + +replication-method: "Key-based Incremental" +attribution-window: true + +api-method: + name: "Analytics Finder; Creative" + doc-link: "https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads-reporting/ads-reporting?view=li-lms-2022-07&tabs=http#analytics-finder" + +attributes: + - name: "campaign_id" + type: "integer" + primary-key: true + description: "The campaign ID." + foreign-key-id: "campaign-id" + + - name: "start_at" + type: "date-time" + primary-key: true + description: "The start of the time range for the analytics." + + - name: "end_at" + type: "date-time" + replication-key: true + description: "The end of the time range for the analytics." + + - name: "action_clicks" + type: "integer" + description: "The count of clicks on the `action` button in Sponsored InMail." + + - name: "ad_unit_clicks" + type: "integer" + description: "The count of clicks on the ad unit alongside the Sponsored InMail." + + - name: "approximate_unique_impressions" + type: "integer" + description: "The approximate reach of the campaign. The number of unique member accounts with at least one impression." + + - name: "campaign" + type: "string" + description: "" + + - name: "comments" + type: "integer" + description: "The count of comments - Sponsored Updates only." + + - name: "company_page_clicks" + type: "integer" + description: "The count of clicks to view the company page." + + - name: "conversion_value_in_local_currency" + type: "number" + description: "The value of the conversions in the account's local currency." + + - name: "cost_in_local_currency" + type: "number" + description: "The cost in the account's local currency based on the pivot and `timeGranularity`." + + - name: "cost_in_usd" + type: "number" + description: "The cost in USD based on the pivot and `timeGranularity`." + + - name: "date_range" + type: "object" + description: "The date range of the report data point, specified in UTC. A start date is required." + subattributes: + - name: "end" + type: "object" + description: "" + subattributes: + - name: "day" + type: "integer" + description: "" + - name: "month" + type: "integer" + description: "" + - name: "year" + type: "integer" + description: "" + - name: "start" + type: "object" + description: "" + subattributes: + - name: "day" + type: "integer" + description: "" + - name: "month" + type: "integer" + description: "" + - name: "year" + type: "integer" + description: "" + + - name: "external_website_conversions" + type: "integer" + description: "The count of conversions indicated by pixel loads on an external advertiser website." + + - name: "external_website_post_click_conversions" + type: "integer" + description: "The count of post-view conversions indicated by pixel loads on an external advertiser website." + + - name: "external_website_post_view_conversions" + type: "integer" + description: "The count of post-view conversions indicated by pixel loads on an external advertiser website." + + - name: "follows" + type: "integer" + description: "The follow count - Sponsored Updates only." + + - name: "full_screen_plays" + type: "integer" + description: "The tap counts on a video going into video view mode." + + - name: "impressions" + type: "integer" + description: "This is the count of `impressions` for Direct Ads and Sponsored Updates and 'sends' for InMails." + + - name: "lead_generation_mail_contact_info_shares" + type: "integer" + description: "The number of times users shared contact info through the One Click Lead Gen for Sponsored InMail - Sponsored InMail only." + + - name: "lead_generation_mail_interest_clicks" + type: "integer" + description: "The count of InMail recipients who clicked to demonstrate interest - Sponsored InMail only." + + - name: "likes" + type: "integer" + description: "The count of likes - Sponsored Updates only." + + - name: "one_click_lead_form_opens" + type: "integer" + description: "The count of times users opened the lead form for a One Click Lead Gen campaign." + + - name: "one_click_leads" + type: "integer" + description: "The count of leads generated through One Click Lead Gen." + + - name: "opens" + type: "integer" + description: "The count of opens of Sponsored InMail." + + - name: "other_engagements" + type: "integer" + description: "The count of user interactions with the ad unit that do not fit into any other more specific category." + + - name: "pivot" + type: "string" + description: "" + + - name: "pivot_value" + type: "string" + description: "" + + - name: "pivot_values" + type: "null" + description: "The value of the pivots for a specific record returned." + + - name: "shares" + type: "integer" + description: "The count of sends of Sponsored InMail." + + - name: "text_url_clicks" + type: "integer" + description: "The count of clicks on any links (anchor tags) that were included in the body of the Sponsored InMail." + + - name: "total_engagements" + type: "integer" + description: "The count of all user interactions with the ad unit." + + - name: "video_completions" + type: "integer" + description: "The count of video ads that played 97-100% of the video. This includes watches that skipped to this point if the serving location is `ON_SITE`." + + - name: "video_first_quartile_completions" + type: "integer" + description: "The count of video ads that played through the first quartile of the video. This includes watches that skipped to this point if the serving location is `ON_SITE`." + + - name: "video_midpoint_completions" + type: "integer" + description: "" + + - name: "video_starts" + type: "integer" + description: "" + + - name: "video_third_quartile_completions" + type: "integer" + description: "" + + - name: "video_views" + type: "integer" + description: "The count of video ads that played through the midpoint of the video. This includes watches that skipped to this point if the serving location is `ON_SITE`." + + - name: "viral_clicks" + type: "integer" + description: "The count of clicks on viral impressions - Sponsored Updates only." + + - name: "viral_comments" + type: "integer" + description: "The count of comments from viral impressions for this activity - Sponsored Updates only." + + - name: "viral_company_page_clicks" + type: "integer" + description: "The count of clicks to view the company page from viral impressions for this activity - Sponsored Updates only." + + - name: "viral_external_website_conversions" + type: "integer" + description: "The count of conversions indicated by pixel loads on an external advertiser website driven by a viral event." + + - name: "viral_external_website_post_click_conversions" + type: "integer" + description: "The count of post-click conversions indicated by pixel loads on an external advertiser website driven by a viral click." + + - name: "viral_external_website_post_view_conversions" + type: "integer" + description: "The count of post-view conversions indicated by pixel loads on an external advertiser website driven by a viral impression." + + - name: "viral_follows" + type: "integer" + description: "The count of follows from viral impressions for this activity - Sponsored Updates only." + + - name: "viral_full_screen_plays" + type: "integer" + description: "The count of taps on the video, going into video view mode." + + - name: "viral_impressions" + type: "integer" + description: "The count of viral impressions for this activity. Viral impressions are those resulting from users sharing a sponsored update to their own network of connections - Sponsored Updates only." + + - name: "viral_landing_page_clicks" + type: "integer" + description: "The count of clicks on viral impressions to take the user to the creative landing page - Sponsored Updates only." + + - name: "viral_likes" + type: "integer" + description: "The count of likes from viral impressions for this activity - Sponsored Updates only." + + - name: "viral_one_click_lead_form_opens" + type: "integer" + description: "The count of times users opened the lead form for viral impressions from a Lead Gen campaign." + + - name: "viral_one_click_leads" + type: "integer" + description: "The count of leads generated through One Click Lead Gen from viral impressions for this activity." + + - name: "viral_other_engagements" + type: "integer" + description: "The count of user interactions with viral impressions that do not fit into any other more specific category - Sponsored Updates only." + + - name: "viral_shares" + type: "integer" + description: "The count of shares from viral impressions for this activity - Sponsored Updates only." + + - name: "viral_total_engagements" + type: "integer" + description: "The count of all user interactions with a viral ad unit - Sponsored Updates only." + + - name: "viral_video_completions" + type: "integer" + description: "The count of viral video ads that played 97-100% of the video. This includes watches that skipped to this point." + + - name: "viral_video_first_quartile_completions" + type: "integer" + description: "The count of viral video ads that played through the first quartile of the video. This includes watches that skipped to this point." + + - name: "viral_video_midpoint_completions" + type: "integer" + description: "The count of viral video ads that played through the midpoint of the video. This includes watches that skipped to this point." + + - name: "viral_video_starts" + type: "integer" + description: "The count of viral video ads that were started by users. Since viral videos are automatically played for `ON_SITE`, this will be the same as `viralImpressions` if the servingLocation is `ON_SITE`." + + - name: "viral_video_third_quartile_completions" + type: "integer" + description: "The count of viral video ads that played through the third quartile of the video. This includes watches that skipped to this point." + + - name: "viral_video_views" + type: "integer" + description: "A viral video ad playing for at least 2 continuous seconds 50% in-view, or a click on the CTA, whichever comes first. An interaction with the video (like going to full screen mode) does not count as a view." + + - name: "average_daily_reach_metrics" + type: "object" + description: "The reach metrics corresponding to the day relative to the date range." + subattributes: + - name: "approximate_cost_in_currency_per_thousand_members_reached" + type: "decimal" + description: "The average reach, or unique member accounts with at least one impression." + + - name: "approximate_reach" + type: "decimal" + description: "The average of impressions shown to each member account that received at least one impression." + + - name: "approximate_frequency" + type: "decimal" + description: "The average of spend (in the ad account currency) on your ads, divided by member accounts reached, multiplied by 1,000." + + - name: "average_previous_seven_day_reach_metrics" + type: "object" + description: "The reach metrics corresponding to the last 7 days based on the date range." + subattributes: + - name: "approximate_cost_in_currency_per_thousand_members_reached" + type: "decimal" + description: "The average reach, or unique member accounts with at least one impression." + + - name: "approximate_reach" + type: "decimal" + description: "The average of impressions shown to each member account that received at least one impression." + + - name: "approximate_frequency" + type: "decimal" + description: "The average of spend (in the ad account currency) on your ads, divided by member accounts reached, multiplied by 1,000." + + - name: "average_previous_thirty_day_reach_metrics" + type: "object" + description: "The reach metrics corresponding to the last 30 days based on the date range." + subattributes: + - name: "approximate_cost_in_currency_per_thousand_members_reached" + type: "decimal" + description: "The average reach, or unique member accounts with at least one impression." + + - name: "approximate_reach" + type: "decimal" + description: "The average of impressions shown to each member account that received at least one impression." + + - name: "approximate_frequency" + type: "decimal" + description: "The average of spend (in the ad account currency) on your ads, divided by member accounts reached, multiplied by 1,000." + + - name: "document_completions" + type: "integer" + description: "The number of times users reached 100% of the document’s length, including those that skipped to this point." + + - name: "document_first_quartile_completions" + type: "integer" + description: "The number of times users reached the first quartile of the document’s length, including those that skipped to this point." + + - name: "document_midpoint_completions" + type: "integer" + description: "The number of times users reached the second quartile of the document’s length, including those that skipped to this point." + + - name: "document_third_quartile_completions" + type: "integer" + description: "The number of times users reached the third quartile of the document’s length, including those that skipped to this point." + + - name: "download_clicks" + type: "integer" + description: "The number of times users have indicated the intent to download the media in an ad by clicking the download icon." + + - name: "job_applications" + type: "decimal" + description: "The number of times a member completed a job application after viewing or clicking on an ad." + + - name: "job_apply_clicks" + type: "decimal" + description: "The number of times a member clicked on the job’s apply button on an LinkedIn jobs page after viewing or clicking on an ad which has a LinkedIn job landing page." + + - name: "post_click_job_applications" + type: "decimal" + description: "The number of times a member completed a job application after clicking on an ad." + + - name: "post_click_job_apply_clicks" + type: "decimal" + description: "The number of times a member clicked on the job’s apply button on an LinkedIn jobs page after clicking on an ad which has a LinkedIn job landing page." + + - name: "post_click_registrations" + type: "decimal" + description: "The number of times a member has registered for an event or seminar after clicking on an ad which has a LinkedIn landing page." + + - name: "post_view_job_applications" + type: "decimal" + description: "The number of times a member completed a job application after viewing an ad." + + - name: "post_view_job_apply_clicks" + type: "decimal" + description: "The number of times a member clicked on the job’s apply button on an LinkedIn jobs page after clicking an ad which has a LinkedIn job landing page." + + - name: "post_view_registrations" + type: "decimal" + description: "The number of times a member has registered for an event or seminar after viewing an ad which has a LinkedIn event landing page." + + - name: "registrations" + type: "decimal" + description: "The number of times a member has registered for an event or seminar after viewing or clicking on an ad which has a LinkedIn event landing page." + + - name: "talent_leads" + type: "integer" + description: "The number of leads captured through a talent media campaign." + + - name: "viral_document_completions" + type: "integer" + description: "The number of times users reached 100% of the document’s length on a viral post, including those that skipped to this point." + + - name: "viral_document_first_quartile_completions" + type: "integer" + description: "The number of times users reached the first quartile of the document’s length on a viral post, including those that skipped to this point." + + - name: "viral_document_midpoint_completions" + type: "integer" + description: "The number of times users reached the second quartile of the document’s length on a viral post, including those that skipped to this point." + + - name: "viral_document_third_quartile_completions" + type: "integer" + description: "The number of times users reached the third quartile of the document’s length on a viral post, including those that skipped to this point." + + - name: "viral_download_clicks" + type: "integer" + description: "The number of times users have indicated the intent to download the media in a viral ad by clicking the download icon." + + - name: "viral_job_applications" + type: "decimal" + description: "The number of times a member completed a job application after viewing or clicking on a viral ad." + + - name: "viral_job_apply_clicks" + type: "decimal" + description: "The number of times a member clicked on the job’s apply button on an LinkedIn jobs page after viewing or clicking on a viral ad which has a LinkedIn job landing page during the date range." + + - name: "viral_post_click_job_applications" + type: "decimal" + description: "The number of times a member completed a job application after clicking on a viral ad." + + - name: "viral_post_click_job_apply_clicks" + type: "decimal" + description: "The number of times a member clicked on the job’s apply button on an LinkedIn jobs page after clicking on a viral ad which has a LinkedIn job landing page." + + - name: "viral_post_click_registrations" + type: "decimal" + description: "The number of times a member has registered for an event or seminar after clicking on a viral ad which has a LinkedIn landing page." + + - name: "viral_post_view_job_applications" + type: "decimal" + description: "The number of times a member completed a job application after viewing a viral ad." + + - name: "viral_post_view_job_apply_clicks" + type: "decimal" + description: "The number of times a member clicked on the job’s apply button on an LinkedIn jobs page after viewing a viral ad which has a LinkedIn job landing page." + + - name: "viral_post_view_registrations" + type: "decimal" + description: "The number of times a member has registered for an event or seminar after viewing a viral ad which has a LinkedIn event landing page." + + - name: "viral_registrations" + type: "decimal" + description: "The number of times a member has registered for an event or seminar after viewing or clicking on a viral ad which has a LinkedIn event landing page." +--- \ No newline at end of file diff --git a/_integration-schemas/linkedin-ads/v3/ad_analytics_by_creative.md b/_integration-schemas/linkedin-ads/v3/ad_analytics_by_creative.md new file mode 100644 index 000000000..90d5da96b --- /dev/null +++ b/_integration-schemas/linkedin-ads/v3/ad_analytics_by_creative.md @@ -0,0 +1,457 @@ +--- +tap: "linkedin-ads" +version: "3" +key: "ad-analytics-creative" + +name: "ad_analytics_by_creative" +doc-link: "" +singer-schema: "https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/ad_analytics_by_creative.json" +description: | + The `{{ table.name }}` table contains info about ad analytics, segmented by creative. + + **Note**: This table is replicated using an attribution window of {{ integration.attribution-window }}. Refer to the [Replication](#replication) section for more info. + +replication-method: "Key-based Incremental" +attribution-window: true + +api-method: + name: "Analytics Finder; Creative" + doc-link: "https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads-reporting/ads-reporting?view=li-lms-2022-07&tabs=http#analytics-finder" + +attributes: + - name: "creative_id" + type: "integer" + primary-key: true + foreign-key: true + description: "The creative ID." + foreign-key-id: "creative-id" + + - name: "start_at" + type: "date-time" + primary-key: true + description: "The start of the time range for the analytics." + + - name: "end_at" + type: "date-time" + replication-key: true + description: "The end of the time range for the analytics." + + - name: "action_clicks" + type: "integer" + description: "The count of clicks on the `action` button in Sponsored InMail." + + - name: "ad_unit_clicks" + type: "integer" + description: "The count of clicks on the ad unit alongside the Sponsored InMail." + + - name: "approximate_unique_impressions" + type: "integer" + description: "The approximate reach of the campaign. The number of unique member accounts with at least one impression." + + - name: "comments" + type: "integer" + description: "The count of comments - Sponsored Updates only." + + - name: "company_page_clicks" + type: "integer" + description: "The count of clicks to view the company page." + + - name: "conversion_value_in_local_currency" + type: "number" + description: "The value of the conversions in the account's local currency." + + - name: "cost_in_local_currency" + type: "number" + description: "The cost in the account's local currency based on the pivot and timeGranularity." + + - name: "cost_in_usd" + type: "number" + description: "The cost in USD based on the pivot and timeGranularity." + + - name: "creative" + type: "string" + description: "" + + - name: "date_range" + type: "object" + description: "The date range of the report data point, specified in UTC." + subattributes: + - name: "end" + type: "object" + description: "" + subattributes: + - name: "day" + type: "integer" + description: "" + - name: "month" + type: "integer" + description: "" + - name: "year" + type: "integer" + description: "" + - name: "start" + type: "object" + description: "" + subattributes: + - name: "day" + type: "integer" + description: "" + - name: "month" + type: "integer" + description: "" + - name: "year" + type: "integer" + description: "" + + - name: "external_website_conversions" + type: "integer" + description: "The count of conversions indicated by pixel loads on an external advertiser website." + + - name: "external_website_post_click_conversions" + type: "integer" + description: "The count of post-view conversions indicated by pixel loads on an external advertiser website." + + - name: "external_website_post_view_conversions" + type: "integer" + description: "The count of post-view conversions indicated by pixel loads on an external advertiser website." + + - name: "follows" + type: "integer" + description: "The follow count - Sponsored Updates only." + + - name: "full_screen_plays" + type: "integer" + description: "The tap counts on a video going into video view mode." + + - name: "impressions" + type: "integer" + description: "This is the count of 'impressions' for Direct Ads and Sponsored Updates and 'sends' for InMails." + + - name: "lead_generation_mail_contact_info_shares" + type: "integer" + description: "" + + - name: "lead_generation_mail_interest_clicks" + type: "integer" + description: "The number of times users shared contact info through the One Click Lead Gen for Sponsored InMail - Sponsored InMail only." + + - name: "likes" + type: "integer" + description: "The count of likes - Sponsored Updates only." + + - name: "one_click_lead_form_opens" + type: "integer" + description: "The count of times users opened the lead form for a One Click Lead Gen campaign." + + - name: "one_click_leads" + type: "integer" + description: "The count of leads generated through One Click Lead Gen." + + - name: "opens" + type: "integer" + description: "The count of opens of Sponsored InMail." + + - name: "other_engagements" + type: "integer" + description: "The count of user interactions with the ad unit that do not fit into any other more specific category." + + - name: "pivot" + type: "string" + description: "" + + - name: "pivot_value" + type: "string" + description: "" + + - name: "pivot_values" + type: "null" + description: "The value of the pivots for a specific record returned." + + - name: "shares" + type: "integer" + description: "The count of sends of Sponsored InMail." + + - name: "text_url_clicks" + type: "integer" + description: "The count of clicks on any links (anchor tags) that were included in the body of the Sponsored InMail." + + - name: "total_engagements" + type: "integer" + description: "The count of all user interactions with the ad unit." + + - name: "video_completions" + type: "integer" + description: "The count of video ads that played 97-100% of the video. This includes watches that skipped to this point if the serving location is `ON_SITE`." + + - name: "video_first_quartile_completions" + type: "integer" + description: "The count of video ads that played through the first quartile of the video. This includes watches that skipped to this point if the serving location is `ON_SITE`." + + - name: "video_midpoint_completions" + type: "integer" + description: "" + + - name: "video_starts" + type: "integer" + description: "" + + - name: "video_third_quartile_completions" + type: "integer" + description: "" + + - name: "video_views" + type: "integer" + description: "The count of video ads that played through the midpoint of the video. This includes watches that skipped to this point if the serving location is `ON_SITE`." + + - name: "viral_clicks" + type: "integer" + description: "The count of clicks on viral impressions - Sponsored Updates only." + + - name: "viral_comments" + type: "integer" + description: "The count of comments from viral impressions for this activity - Sponsored Updates only." + + - name: "viral_company_page_clicks" + type: "integer" + description: "The count of clicks to view the company page from viral impressions for this activity - Sponsored Updates only." + + - name: "viral_external_website_conversions" + type: "integer" + description: "The count of conversions indicated by pixel loads on an external advertiser website driven by a viral event." + + - name: "viral_external_website_post_click_conversions" + type: "integer" + description: "The count of post-click conversions indicated by pixel loads on an external advertiser website driven by a viral click." + + - name: "viral_external_website_post_view_conversions" + type: "integer" + description: "The count of post-view conversions indicated by pixel loads on an external advertiser website driven by a viral impression." + + - name: "viral_follows" + type: "integer" + description: "The count of follows from viral impressions for this activity - Sponsored Updates only." + + - name: "viral_full_screen_plays" + type: "integer" + description: "The count of taps on the video, going into video view mode." + + - name: "viral_impressions" + type: "integer" + description: "The count of viral impressions for this activity. Viral impressions are those resulting from users sharing a sponsored update to their own network of connections - Sponsored Updates only." + + - name: "viral_landing_page_clicks" + type: "integer" + description: "The count of clicks on viral impressions to take the user to the creative landing page - Sponsored Updates only." + + - name: "viral_likes" + type: "integer" + description: "The count of likes from viral impressions for this activity - Sponsored Updates only." + + - name: "viral_one_click_lead_form_opens" + type: "integer" + description: "The count of times users opened the lead form for viral impressions from a Lead Gen campaign." + + - name: "viral_one_click_leads" + type: "integer" + description: "The count of leads generated through One Click Lead Gen from viral impressions for this activity." + + - name: "viral_other_engagements" + type: "integer" + description: "The count of user interactions with viral impressions that do not fit into any other more specific category - Sponsored Updates only." + + - name: "viral_shares" + type: "integer" + description: "The count of shares from viral impressions for this activity - Sponsored Updates only." + + - name: "viral_total_engagements" + type: "integer" + description: "The count of all user interactions with a viral ad unit - Sponsored Updates only." + + - name: "viral_video_completions" + type: "integer" + description: "The count of viral video ads that played 97-100% of the video. This includes watches that skipped to this point." + + - name: "viral_video_first_quartile_completions" + type: "integer" + description: "The count of viral video ads that played through the first quartile of the video. This includes watches that skipped to this point." + + - name: "viral_video_midpoint_completions" + type: "integer" + description: "The count of viral video ads that played through the midpoint of the video. This includes watches that skipped to this point." + + - name: "viral_video_starts" + type: "integer" + description: "The count of viral video ads that were started by users. Since viral videos are automatically played for `ON_SITE`, this will be the same as `viralImpressions` if the `servingLocation` is `ON_SITE`." + + - name: "viral_video_third_quartile_completions" + type: "integer" + description: "The count of viral video ads that played through the third quartile of the video. This includes watches that skipped to this point." + + - name: "viral_video_views" + type: "integer" + description: "A viral video ad playing for at least 2 continuous seconds 50% in-view, or a click on the CTA, whichever comes first. An interaction with the video (like going to full screen mode) does not count as a view." + + - name: "average_daily_reach_metrics" + type: "object" + description: "The reach metrics corresponding to the day relative to the date range." + subattributes: + - name: "approximate_cost_in_currency_per_thousand_members_reached" + type: "decimal" + description: "The average reach, or unique member accounts with at least one impression." + + - name: "approximate_reach" + type: "decimal" + description: "The average of impressions shown to each member account that received at least one impression." + + - name: "approximate_frequency" + type: "decimal" + description: "The average of spend (in the ad account currency) on your ads, divided by member accounts reached, multiplied by 1,000." + + - name: "average_previous_seven_day_reach_metrics" + type: "object" + description: "The reach metrics corresponding to the last 7 days based on the date range." + subattributes: + - name: "approximate_cost_in_currency_per_thousand_members_reached" + type: "decimal" + description: "The average reach, or unique member accounts with at least one impression." + + - name: "approximate_reach" + type: "decimal" + description: "The average of impressions shown to each member account that received at least one impression." + + - name: "approximate_frequency" + type: "decimal" + description: "The average of spend (in the ad account currency) on your ads, divided by member accounts reached, multiplied by 1,000." + + - name: "average_previous_thirty_day_reach_metrics" + type: "object" + description: "The reach metrics corresponding to the last 30 days based on the date range." + subattributes: + - name: "approximate_cost_in_currency_per_thousand_members_reached" + type: "decimal" + description: "The average reach, or unique member accounts with at least one impression." + + - name: "approximate_reach" + type: "decimal" + description: "The average of impressions shown to each member account that received at least one impression." + + - name: "approximate_frequency" + type: "decimal" + description: "The average of spend (in the ad account currency) on your ads, divided by member accounts reached, multiplied by 1,000." + + - name: "document_completions" + type: "integer" + description: "The number of times users reached 100% of the document’s length, including those that skipped to this point." + + - name: "document_first_quartile_completions" + type: "integer" + description: "The number of times users reached the first quartile of the document’s length, including those that skipped to this point." + + - name: "document_midpoint_completions" + type: "integer" + description: "The number of times users reached the second quartile of the document’s length, including those that skipped to this point." + + - name: "document_third_quartile_completions" + type: "integer" + description: "The number of times users reached the third quartile of the document’s length, including those that skipped to this point." + + - name: "download_clicks" + type: "integer" + description: "The number of times users have indicated the intent to download the media in an ad by clicking the download icon." + + - name: "job_applications" + type: "decimal" + description: "The number of times a member completed a job application after viewing or clicking on an ad." + + - name: "job_apply_clicks" + type: "decimal" + description: "The number of times a member clicked on the job’s apply button on an LinkedIn jobs page after viewing or clicking on an ad which has a LinkedIn job landing page." + + - name: "post_click_job_applications" + type: "decimal" + description: "The number of times a member completed a job application after clicking on an ad." + + - name: "post_click_job_apply_clicks" + type: "decimal" + description: "The number of times a member clicked on the job’s apply button on an LinkedIn jobs page after clicking on an ad which has a LinkedIn job landing page." + + - name: "post_click_registrations" + type: "decimal" + description: "The number of times a member has registered for an event or seminar after clicking on an ad which has a LinkedIn landing page." + + - name: "post_view_job_applications" + type: "decimal" + description: "The number of times a member completed a job application after viewing an ad." + + - name: "post_view_job_apply_clicks" + type: "decimal" + description: "The number of times a member clicked on the job’s apply button on an LinkedIn jobs page after clicking an ad which has a LinkedIn job landing page." + + - name: "post_view_registrations" + type: "decimal" + description: "The number of times a member has registered for an event or seminar after viewing an ad which has a LinkedIn event landing page." + + - name: "registrations" + type: "decimal" + description: "The number of times a member has registered for an event or seminar after viewing or clicking on an ad which has a LinkedIn event landing page." + + - name: "talent_leads" + type: "integer" + description: "The number of leads captured through a talent media campaign." + + - name: "viral_document_completions" + type: "integer" + description: "The number of times users reached 100% of the document’s length on a viral post, including those that skipped to this point." + + - name: "viral_document_first_quartile_completions" + type: "integer" + description: "The number of times users reached the first quartile of the document’s length on a viral post, including those that skipped to this point." + + - name: "viral_document_midpoint_completions" + type: "integer" + description: "The number of times users reached the second quartile of the document’s length on a viral post, including those that skipped to this point." + + - name: "viral_document_third_quartile_completions" + type: "integer" + description: "The number of times users reached the third quartile of the document’s length on a viral post, including those that skipped to this point." + + - name: "viral_download_clicks" + type: "integer" + description: "The number of times users have indicated the intent to download the media in a viral ad by clicking the download icon." + + - name: "viral_job_applications" + type: "decimal" + description: "The number of times a member completed a job application after viewing or clicking on a viral ad." + + - name: "viral_job_apply_clicks" + type: "decimal" + description: "The number of times a member clicked on the job’s apply button on an LinkedIn jobs page after viewing or clicking on a viral ad which has a LinkedIn job landing page during the date range." + + - name: "viral_post_click_job_applications" + type: "decimal" + description: "The number of times a member completed a job application after clicking on a viral ad." + + - name: "viral_post_click_job_apply_clicks" + type: "decimal" + description: "The number of times a member clicked on the job’s apply button on an LinkedIn jobs page after clicking on a viral ad which has a LinkedIn job landing page." + + - name: "viral_post_click_registrations" + type: "decimal" + description: "The number of times a member has registered for an event or seminar after clicking on a viral ad which has a LinkedIn landing page." + + - name: "viral_post_view_job_applications" + type: "decimal" + description: "The number of times a member completed a job application after viewing a viral ad." + + - name: "viral_post_view_job_apply_clicks" + type: "decimal" + description: "The number of times a member clicked on the job’s apply button on an LinkedIn jobs page after viewing a viral ad which has a LinkedIn job landing page." + + - name: "viral_post_view_registrations" + type: "decimal" + description: "The number of times a member has registered for an event or seminar after viewing a viral ad which has a LinkedIn event landing page." + + - name: "viral_registrations" + type: "decimal" + description: "The number of times a member has registered for an event or seminar after viewing or clicking on a viral ad which has a LinkedIn event landing page." +--- \ No newline at end of file diff --git a/_integration-schemas/linkedin-ads/v3/campaign_groups.md b/_integration-schemas/linkedin-ads/v3/campaign_groups.md new file mode 100644 index 000000000..5a4b68dc0 --- /dev/null +++ b/_integration-schemas/linkedin-ads/v3/campaign_groups.md @@ -0,0 +1,129 @@ +--- +tap: "linkedin-ads" +version: "3" +key: "campaign-group" + +name: "campaign_groups" +doc-link: "" +singer-schema: "https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/campaign_groups.json" +description: | + The `{{ table.name }}` table contains info about the campaign groups in your {{ integration.display_name }} account. + +replication-method: "Key-based Incremental" + +api-method: + name: "Search For Campaign Groups" + doc-link: "https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-campaign-groups?view=li-lms-2022-07&tabs=http#search-for-campaign-groups" + +attributes: + - name: "id" + type: "integer" + primary-key: true + description: "The campaign group ID." + foreign-key-id: "campaign-group-id" + + - name: "last_modified_time" + type: "date-time" + replication-key: true + description: "The time the campaign group was last modified." + + - name: "account" + type: "string" + description: "URN identifying the advertising account associated with the campaign." + + - name: "account_id" + type: "integer" + description: "The ID of the account associated with the campaign group." + foreign-key-id: "account-id" + + - name: "backfilled" + type: "boolean" + description: "Indicates whether the campaign group was created organically or to backfill existing campaigns." + + - name: "change_audit_stamps" + type: "object" + description: "" + subattributes: + - name: "created" + type: "object" + description: "" + subattributes: + - name: "time" + type: "date-time" + description: "" + - name: "last_modified" + type: "object" + description: "" + subattributes: + - name: "time" + type: "date-time" + description: "" + + - name: "created_time" + type: "date-time" + description: "The time the campaign group was created." + + - name: "name" + type: "string" + description: "The name of the campaign group used to make it easier to reference a campaign group and recall its purpose." + + - name: "run_schedule" + type: "object" + description: "Details about the campaign group's run schedule." + subattributes: + - name: "end" + type: "date-time" + description: "Represents the exclusive (strictly less than) date when to stop running the associated campaigns under this campaign group. If this field is unset, it indicates an open range with no end date." + + - name: "start" + type: "date-time" + description: "Represents the inclusive (greater than or equal to) date when to start running the associated campaigns under this campaign group." + + - name: "serving_statuses" + type: "array" + description: "Array of enums that determine whether or not campaigns within the campaign group may be served." + subattributes: + - name: "value" + type: "string" + description: "The serving status." + + - name: "status" + type: "string" + description: | + The status of campaign group. Possible values are: + + - `ACTIVE` - Denotes that the campaign group is capable of serving ads, subject to run date and budget limitations (as well as any other limitations at the account or campaign level). + - `ARCHIVED` - Denotes that the campaign group is presently inactive, and should mostly be hidden in the UI until un-archived. + - `CANCELED` - Denotes that the campaign group has been permanently canceled and cannot be reactivated. + - `DRAFT` - Denotes that the campaign group is in a preliminary state and should temporarily not be served. + - `PAUSED` - Denotes that the campaign group meets all requirements to be served, but temporarily should not be. + + - name: "total_budget" + type: "object" + description: "" + subattributes: + - name: "currency_code" + type: "string" + description: "The ISO currency code." + + - name: "amount" + type: "decimal" + description: "The maximum amount to spend across all associated campaigns and creatives for duration of the campaign group." + + - name: "test" + type: "boolean" + description: "Indicates whether this campaign group is a test campaign group." + + - name: "allowed_campaign_types" + type: "array" + description: "Array of enums that indicates allowed campaign types within the specific campaign group." + subattributes: + - name: "items" + type: "string" + description: | + The campaign type. The value can be: + - `TEXT_AD` + - `SPONSORED_UPDATES` + - `SPONSORED_INMAILS` + - `DYNAMIC` +--- \ No newline at end of file diff --git a/_integration-schemas/linkedin-ads/v3/campaigns.md b/_integration-schemas/linkedin-ads/v3/campaigns.md new file mode 100644 index 000000000..795628830 --- /dev/null +++ b/_integration-schemas/linkedin-ads/v3/campaigns.md @@ -0,0 +1,301 @@ +--- +tap: "linkedin-ads" +version: "3" +key: "campaign" + +name: "campaigns" +doc-link: "" +singer-schema: "https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/campaigns.json" +description: | + The `{{ table.name }}` table contains info about the campaigns in your {{ integration.display_name }} account. + +replication-method: "Key-based Incremental" + +api-method: + name: "Search For Campaigns" + doc-link: "https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-campaigns?view=li-lms-2022-07&tabs=http#search-for-campaigns" + +attributes: + - name: "id" + type: "integer" + primary-key: true + description: "The campaign ID." + foreign-key-id: "campaign-id" + + - name: "last_modified_time" + type: "date-time" + replication-key: true + description: "The time the campaign was last modified." + + - name: "account" + type: "string" + description: "URN identifying the advertising account associated with the campaign." + + - name: "account_id" + type: "integer" + description: "The ID of the account associated with the campaign." + foreign-key-id: "account-id" + + - name: "associated_entity" + type: "string" + description: "An URN identifying the intended beneficiary of the advertising campaign such as a specific company or member." + + - name: "associated_entity_organization_id" + type: "integer" + description: "" + + - name: "associated_entity_person_id" + type: "string" + description: "" + + - name: "audience_expansion_enabled" + type: "boolean" + description: "Indicates if Audience Expansion is enabled for the campaign provides query expansion for certain targeting criteria." + + - name: "campaign_group" + type: "string" + description: "URN identifying the campaign group associated with the campaign. If the campaign group is not specified, the campaign is assigned to account's default campaign group." + + - name: "campaign_group_id" + type: "integer" + description: "The ID of the campaign group associated with the campaign." + foreign-key-id: "campaign-group-id" + + - name: "change_audit_stamps" + type: "object" + description: "" + subattributes: + - name: "created" + type: "object" + description: "" + subattributes: + - name: "time" + type: "date-time" + description: "" + - name: "last_modified" + type: "object" + description: "" + subattributes: + - name: "time" + type: "date-time" + description: "" + + - name: "cost_type" + type: "string" + description: "The cost type - `CPM`, `CPC`, or `CPV`." + + - name: "created_time" + type: "date-time" + description: "" + + - name: "creative_selection" + type: "string" + description: "The creative selection - `ROUND_ROBIN` or `OPTIMIZED`." + + - name: "daily_budget" + type: "object" + description: "Details about the budget for the campaign." + subattributes: + - name: "amount" + type: "number" + description: "Maximum amount to spend per day UTC. The amount of money as a real number string." + + - name: "currency_code" + type: "string" + description: "The ISO currency code. The currency must match that of the parent account." + + - name: "locale" + type: "object" + description: "Details about the campaign's locale." + subattributes: + - name: "country" + type: "string" + description: "Locale of the campaign. An uppercase two-letter country code as defined by ISO-3166." + - name: "language" + type: "string" + description: "Locale of the campaign. A lowercase two-letter language code as defined by ISO-639." + + - name: "name" + type: "string" + description: "The name of the campaign." + + - name: "offsite_delivery_enabled" + type: "boolean" + description: "Indicates if offsite delivery is enabled for the campaign." + + - name: "optimization_target_type" + type: "string" + description: | + Determines how this campaign is optimized for spending. If this is not set, there is no optimization. Refer to [{{ integration.display_name }}' documentation](https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-campaigns#optimization-of-campaigns){:target="new"} for more info. + + - name: "run_schedule" + type: "object" + description: "Details about the campaign's run schedule." + subattributes: + - name: "end" + type: "date-time" + description: "Scheduled date range to stop associated creatives. Represents the exclusive (strictly less than) value in which to end the range." + - name: "start" + type: "date-time" + description: "Scheduled date range to run associated creatives." + + - name: "serving_statuses" + type: "null" + description: "The serving status of the campaign." + + - name: "status" + type: "string" + description: | + The status of the campaign. Possible values are: + + - `ACTIVE` - Denotes that the campaign is fully servable. + - `PAUSED` - Denotes that the campaign meets all requirements to be served, but temporarily should not be. + - `ARCHIVED` - Denotes that the campaign is presently inactive, and should mostly be hidden in the UI until un-archived. + - `COMPLETED` - Denotes that the campaign has reached a specified budgetary or chronological limit. + - `CANCELED` - Denotes that the campaign has been permanently canceled, such as when an advertising account is permanently closed. + - `DRAFT` - Denotes that the campaign is still being edited and not eligible for serving. Some validation will be postponed until the campaign is activated. + + - name: "targeting" + type: "object" + description: "**Deprecated by {{ integration.display_name }}**. Use `targeting_criteria` instead." + subattributes: + - name: "excluded_targeting_facets" + type: "null" + description: "**Deprecated by {{ integration.display_name }}**. Use `targeting_criteria` instead." + - name: "included_targeting_facets" + type: "null" + description: "**Deprecated by {{ integration.display_name }}**. Use `targeting_criteria` instead." + + - name: "targeting_criteria" + type: "object" + description: | + Specifies targeting criteria that the member should match. Refer to [{{ integration.display_name }}' documentation](https://docs.microsoft.com/en-us/linkedin/shared/references/v2/ads/targeting-criteria){:target="new"} for more info. + doc-link: "https://docs.microsoft.com/en-us/linkedin/shared/references/v2/ads/targeting-criteria" + subattributes: + - name: "exclude" + type: "null" + description: "" + - name: "include" + type: "object" + description: "" + subattributes: + - name: "and" + type: "null" + description: "" + + - name: "type" + type: "string" + description: | + The type of the campaign. Possible values are: + + - `TEXT_AD` - Text-based ads that show up in the right column or top of the page on LinkedIn. + - `SPONSORED_UPDATES` - Native ads that promote a company's content updates in the LinkedIn feed. + - `SPONSORED_INMAILS` - Personalized messages with a call-to-action button delivered to a LinkedIn's member inbox. + - `DYNAMIC` - Ads that are dynamically personalized. + + - name: "unit_cost" + type: "object" + description: "Amount to bid per click, impression, or other event depending on the pricing model." + subattributes: + - name: "amount" + type: "number" + description: "The amount to bid to the associated account." + - name: "currency_code" + type: "string" + description: "The ISO currency code to the associated account." + + - name: "version" + type: "object" + description: "Details about the campaign's version." + subattributes: + - name: "version_tag" + type: "string" + description: "Each entity has a version tag associated with it. The version tag is initiated to 1 when the entity is created. Each single update to the entity increases its version tag by 1." + + - name: "total_budget" + type: "object" + description: "" + subattributes: + - name: "currency_code" + type: "string" + description: "The ISO currency code." + + - name: "amount" + type: "decimal" + description: "The maximum amount to spend over the life of the campaign." + + - name: "version_tag" + type: "string" + description: "The version tag associated with the entity." + + - name: "objective_type" + type: "string" + description: | + The Campaign Objective type values. The value can be: + - `BRAND_AWARENESS` + - `ENGAGEMENT` + - `JOB_APPLICANTS` + - `LEAD_GENERATION` + - `WEBSITE_CONVERSIONS` + - `WEBSITE_VISITS` + - `VIDEO_VIEWS` + + - name: "offsite_preferences" + type: "object" + description: "The offsite preferences that an advertiser specifies for this campaign." + subattributes: + - name: "iab_categories" + type: "object" + description: "The set of IAB (Interactive Advertising Bureau) categories that this campaign may be served/excluded from, based on where the ad request is from. Mobile Apps, Mobile Web, and Desktop Inventory are all classified into one or more of these categories." + subattributes: + - name: "exclude" + type: "array" + description: "The excluded list of IAB categories." + subattributes: + - name: "items" + type: "string" + description: "" + + - name: "include" + type: "array" + description: "The included list of IAB categories." + subattributes: + - name: "items" + type: "string" + description: "" + + - name: "publisher_restriction_files" + type: "object" + description: "This field contains one or more files that have been uploaded by an advertiser. Each file contains a list of web domains/app store URLs." + subattributes: + - name: "exclude" + type: "array" + description: "The list of publisher file IDs to whom ad requests may not be served." + subattributes: + - name: "items" + type: "string" + description: "" + + - name: "test" + type: "boolean" + description: "Indicates whether this campaign is a test campaign." + + - name: "format" + type: "string" + description: | + The ad format on campaign level. The value can be: + - `CAROUSEL` + - `FOLLOW_COMPANY` + - `JOBS` + - `SINGLE_VIDEO` + - `SPONSORED_INMAIL` + - `SPONSORED_MESSAGE` + - `SPOTLIGHT` + - `STANDARD_UPDATE` + - `TEXT_AD` + - `UNSUPPORTED` + + - name: "pacing_strategy" + type: "string" + description: "The pacing option used for the campaign." +--- \ No newline at end of file diff --git a/_integration-schemas/linkedin-ads/v3/creatives.md b/_integration-schemas/linkedin-ads/v3/creatives.md new file mode 100644 index 000000000..ecba42408 --- /dev/null +++ b/_integration-schemas/linkedin-ads/v3/creatives.md @@ -0,0 +1,97 @@ +--- +tap: "linkedin-ads" +version: "3" +key: "creatives" + +name: "creatives" +doc-link: "https://learn.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-creatives?view=li-lms-2023-01&tabs=http#search-for-creatives" +singer-schema: "https://github.com/singer-io/tap-linkedin-ads/tree/master/tap_linkedin_ads/schemas/creatives.json" +description: "The Creatives API contains all the data and information for visually rendering an ad." + +replication-method: "Key-based Incremental" + +attributes: + - name: "account" + type: "string" + description: "URN identifying the advertising account associated with the creative." + + - name: "account_id" + type: "integer" + description: "ID identifying the advertising account associated with the creative." + + - name: "campaign" + type: "string" + description: "URN identifying the campaign associated with the creative" + + - name: "campaign_id" + type: "integer" + description: "ID identifying the campaign associated with the creative" + + - name: "content" + type: "object" + description: "Content sponsored in the creative." + subattributes: + - name: "reference" + type: "string" + description: "A reference must be a adInMailContent{id}, share{id}, or ugcPost{id}." + + - name: "text_ad" + type: "object" + description: "Text ads include a headline, brief text, and an image." + subattributes: + - name: "headline" + type: "string" + description: "The main message seen by the target audience on the ad. Use up to 25 characters, including spaces" + + - name: "description" + type: "string" + description: "The description that provides more information about the ad. Use up to 75 characters, including spaces." + + - name: "landing_page" + type: "string" + description: "The URL where the member should be redirected to, on clicking the text ad." + + - name: "created_at" + type: "string" + format: "date-time" + description: "Creation time" + + - name: "created_by" + type: "string" + description: "Entity (e.g., a person URN) that developed the creative" + + - name: "id" + type: "string" + description: "Unique ID for a creative (e.g.,SponsoredCreativeUrn)." + primary-key: true + + - name: "intended_status" + type: "string" + description: "Creative user intended status." + + - name: "is_serving" + type: "boolean" + description: "This indicates whether the creative is currently being served or not." + + - name: "is_test" + type: "boolean" + description: "True returns creatives only under test accounts. False returns creatives only under non-test accounts." + + - name: "last_modified_at" + type: "string" + format: "date-time" + description: "Time at which the creative was last modified." + replication-key: true + + - name: "last_modified_by" + type: "string" + description: "The entity (e.g., person URN) who modified the creative" + + - name: "serving_hold_reasons" + type: "array" + description: "Array that contains all the reasons why the creative is not serving." + subattributes: + - name: "items" + type: "string" + description: "Contains different reasons." +--- \ No newline at end of file diff --git a/_integration-schemas/linkedin-ads/v3/foreign-keys.md b/_integration-schemas/linkedin-ads/v3/foreign-keys.md new file mode 100644 index 000000000..cd2841ef9 --- /dev/null +++ b/_integration-schemas/linkedin-ads/v3/foreign-keys.md @@ -0,0 +1,93 @@ +--- +# -------------------------- # +# USING THIS TEMPLATE # +# -------------------------- # + +## NEED HELP USING THIS TEMPLATE? SEE: +## https://docs-about-stitch-docs.netlify.com/reference/integration-templates/saas-foreign-keys/ +## FOR INSTRUCTIONS & REFERENCE INFO + +tap-reference: "linkedin-ads" + +version: "3" + +foreign-keys: + - id: "account-id" + table: "accounts" + attribute: "id" + all-foreign-keys: + - table: "account_users" + join-on: "account_id" + - table: "accounts" + join-on: "id" + - table: "campaigns" + join-on: "account_id" + - table: "campaign_groups" + join-on: "account_id" + - table: "video_ads" + join-on: "account_id" + + - id: "reference-organization-id" + table: "" + attribute: "" + all-foreign-keys: + - table: "accounts" + join-on: "reference_organization_id" + + - id: "reference-person-id" + table: "" + attribute: "" + all-foreign-keys: + - table: "accounts" + join-on: "reference_person_id" + + - id: "user-id" + table: "account_users" + attribute: "user_person_id" + all-foreign-keys: + - table: "account_users" + join-on: "user_person_id" + + - id: "campaign-group-id" + table: "campaign_groups" + attribute: "id" + all-foreign-keys: + - table: "campaign_groups" + join-on: "id" + - table: "campaigns" + join-on: "campaign_group_id" + + - id: "campaign-id" + table: "campaigns" + attribute: "id" + all-foreign-keys: + - table: "campaigns" + join-on: "id" + - table: "creatives" + join-on: "campaign_id" + - table: "ad_analytics_by_campaign" + join-on: "campaign_id" + + - id: "creative-id" + table: "creatives" + attribute: "id" + all-foreign-keys: + - table: "creatives" + join-on: "id" + - table: "ad_analytics_by_creative" + join-on: "creative_id" + + - id: "owner-organization-id" + table: "" + attribute: "" + all-foreign-keys: + - table: "video_ads" + join-on: "owner_organization_id" + + - id: "content-reference" + table: "video_ads" + attribute: "content_reference" + all-foreign-keys: + - table: "video_ads" + join-on: "content_reference" +--- \ No newline at end of file diff --git a/_integration-schemas/linkedin-ads/v3/video_ads.md b/_integration-schemas/linkedin-ads/v3/video_ads.md new file mode 100644 index 000000000..e7517bb4f --- /dev/null +++ b/_integration-schemas/linkedin-ads/v3/video_ads.md @@ -0,0 +1,77 @@ +--- +tap: "linkedin-ads" +version: "3" +key: "video-ad" + +name: "video_ads" +doc-link: "" +singer-schema: "https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/video_ads.json" +description: | + The `{{ table.name }}` table contains info about the video ads in your {{ integration.display_name }} account. + +replication-method: "Key-based Incremental" + +api-method: + name: "Account Finder; Sponsored Contents" + doc-link: "https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/advertising-targeting/create-and-manage-video?view=li-lms-unversioned&tabs=http&viewFallbackFrom=li-lms-2022-07#finders" + +attributes: + - name: "account" + type: "string" + description: "" + + - name: "account_id" + type: "integer" + description: "" + + - name: "ad_context" + type: "object" + description: "" + subattributes: + - name: "dsc_status" + type: "string" + description: "" + + - name: "dsc_name" + type: "string" + description: "" + + - name: "dsc_ad_type" + type: "string" + description: "" + + - name: "dsc_ad_account" + type: "string" + description: "" + + + - name: "author" + type: "string" + description: "" + + - name: "created_at" + type: "date-time" + description: "" + + - name: "id" + type: "string" + description: "" + primary-key: true + + - name: "last_modified_at" + type: "date-time" + description: "" + replication-key: true + + - name: "name" + type: "string" + description: "" + + - name: "status" + type: "string" + description: "" + + - name: "type" + type: "string" + description: "" +--- \ No newline at end of file diff --git a/_saas-integrations/linkedin-ads/v3/linkedin-ads-v3.md b/_saas-integrations/linkedin-ads/v3/linkedin-ads-v3.md new file mode 100644 index 000000000..9ef5dbd75 --- /dev/null +++ b/_saas-integrations/linkedin-ads/v3/linkedin-ads-v3.md @@ -0,0 +1,139 @@ +--- +# -------------------------- # +# USING THIS TEMPLATE # +# -------------------------- # + +## NEED HELP USING THIS TEMPLATE? SEE: +## https://docs-about-stitch-docs.netlify.com/reference/integration-templates/saas/ +## FOR INSTRUCTIONS & REFERENCE INFO + + +# -------------------------- # +# Page & Formatting # +# -------------------------- # + +title: LinkedIn Ads (v3) +permalink: /integrations/saas/linkedin-ads +keywords: linkedin ads, integration, schema, etl linkedin ads, linkedin ads etl, linkedin ads schema, linkedin, +layout: singer +input: true + +key: "linkedin-ads-setup" + +# -------------------------- # +# Tap Details # +# -------------------------- # + +name: "linkedin-ads" +display_name: "LinkedIn Ads" + +singer: true +tap-name: "LinkedIn Ads" +repo-url: https://github.com/singer-io/tap-linkedin-ads + +this-version: "3" + +# -------------------------- # +# Stitch Details # +# -------------------------- # + +certified: true +api-type: "platform.linkedin-ads" + +historical: "1 year" +frequency: "1 hour" +tier: "Standard" +status-url: "" + +anchor-scheduling: true +cron-scheduling: true + +extraction-logs: true +loading-reports: true + +table-selection: true +column-selection: true + + +# -------------------------- # +# API Details # +# -------------------------- # + +attribution-window: "7 days" + + +# -------------------------- # +# Setup Instructions # +# -------------------------- # + +requirements-list: + - item: "**Access to a {{ integration.display_name }} account**. This is necessary to login to the Campaign Manager account." + - item: "**Access to a {{ integration.display_name }} Campaign Manager account**. Verify that you have access to use the Ad accounts you want to replicate data from. This is necessary to connect to Stitch." + +setup-steps: + - title: "Retrieve your {{ integration.display_name }} account IDs" + anchor: "retrieve-account-ids" + content: | + 1. Login to your LinkedIn account. + 2. Click the **Work** menu, then **Advertise**: + + ![The LinkedIn Work and Advertise menus, highlighted]({{ site.baseurl }}/images/integrations/linkedin-ads-work-dropdown.png){:style="max-width: 400px"} + + 3. In the Accounts table, locate the IDs for the accounts you want to replicate data from: + + ![LinkedIn Ads account IDs highlighted in the Accounts table of the Campaign Manager page.]({{ site.baseurl }}/images/integrations/linkedin-ads-account-ids.png){:style="max-width: 500px"} + + - 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 **Accounts** field, enter a comma-separated list of the account IDs of the campaign accounts you want to replicate data from. These will be the account IDs you retrieved in [Step 1](#retrieve-account-ids). For example: `503123456,503234567`, etc. + - 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 %} + + - title: "Set objects to replicate" + anchor: "setting-data-to-replicate" + content: | + {% include integrations/shared-setup/data-selection/object-selection.html %} + + +# -------------------------- # +# Replication Info # +# -------------------------- # + +replication-sections: + - content: | + {% assign window = "Attribution Window" %} + {% assign table = "ad_analytics_by_campaign" %} + {% assign replication-key = "end_at" %} + {% assign start-date ="06/03/2017" %} + {% assign start-date-value = "June 3, 2017" %} + {% assign replication-key-historical = "2017-06-03 00:00:00" %} + {% assign replication-key-ongoing = "2017-09-24 00:00:00" %} + + {% include integrations/saas/attribution-windows.html %} + + Refer to the documentation for each of these tables in the next section for more info. + + ### Attribution window examples + + In the tabs below are examples of attribution windows behave during historical (initial) and ongoing replication jobs. + + {% include integrations/saas/attribution-window-examples.html %} + +# -------------------------- # +# Integration Tables # +# -------------------------- # + +# Looking for the table schemas & info? +# Each table has a its own .md file in /_integration-schemas/linkedin-ads/v1 +--- +{% assign integration = page %} +{% include misc/data-files.html %} From 9d333a70f9ce2616c0bb5db4155ba5146ced25d4 Mon Sep 17 00:00:00 2001 From: Lucie Milan Date: Wed, 29 Nov 2023 09:21:59 +0100 Subject: [PATCH 2/7] Update linkedin-ads-v2.md --- _saas-integrations/linkedin-ads/v2/linkedin-ads-v2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_saas-integrations/linkedin-ads/v2/linkedin-ads-v2.md b/_saas-integrations/linkedin-ads/v2/linkedin-ads-v2.md index f049f4d1a..60754da69 100644 --- a/_saas-integrations/linkedin-ads/v2/linkedin-ads-v2.md +++ b/_saas-integrations/linkedin-ads/v2/linkedin-ads-v2.md @@ -16,7 +16,7 @@ title: LinkedIn Ads (v2) permalink: /integrations/saas/linkedin-ads keywords: linkedin ads, integration, schema, etl linkedin ads, linkedin ads etl, linkedin ads schema, linkedin, layout: singer -input: true +input: false key: "linkedin-ads-setup" From f42d07ae786f3df30d6a3ec7a27a86ebcbf0883e Mon Sep 17 00:00:00 2001 From: Lucie Milan Date: Wed, 29 Nov 2023 09:22:13 +0100 Subject: [PATCH 3/7] Update linkedin-ads-v2.md --- _saas-integrations/linkedin-ads/v2/linkedin-ads-v2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_saas-integrations/linkedin-ads/v2/linkedin-ads-v2.md b/_saas-integrations/linkedin-ads/v2/linkedin-ads-v2.md index 60754da69..6627141c2 100644 --- a/_saas-integrations/linkedin-ads/v2/linkedin-ads-v2.md +++ b/_saas-integrations/linkedin-ads/v2/linkedin-ads-v2.md @@ -13,7 +13,7 @@ # -------------------------- # title: LinkedIn Ads (v2) -permalink: /integrations/saas/linkedin-ads +permalink: /integrations/saas/linkedin-ads/v2 keywords: linkedin ads, integration, schema, etl linkedin ads, linkedin ads etl, linkedin ads schema, linkedin, layout: singer input: false From e97c7de71647946b9e268f58a9578c96755024f1 Mon Sep 17 00:00:00 2001 From: Lucie Milan Date: Wed, 29 Nov 2023 09:23:08 +0100 Subject: [PATCH 4/7] Update linkedin-ads.yml --- _data/taps/versions/linkedin-ads.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/_data/taps/versions/linkedin-ads.yml b/_data/taps/versions/linkedin-ads.yml index cd9b10e74..1e91de291 100644 --- a/_data/taps/versions/linkedin-ads.yml +++ b/_data/taps/versions/linkedin-ads.yml @@ -11,12 +11,14 @@ # LINKEDIN ADS VERSIONS # # -------------------------- # -latest-version: "2" +latest-version: "3" released-versions: + - number: "3" + date-released: "November 29, 2023" + - number: "2" date-released: "February 7, 2023" - # date-last-connection: - number: "1" #full-release: "April 2, 2020" From 87f65d445e7e3d7bbf986a4864ed86e6349809e8 Mon Sep 17 00:00:00 2001 From: Lucie Milan Date: Mon, 4 Dec 2023 11:33:10 +0100 Subject: [PATCH 5/7] remove v3 schemas --- .../linkedin-ads/v3/account_users.md | 81 ---- .../linkedin-ads/v3/accounts.md | 147 ------ .../v3/ad_analytics_by_campaign.md | 456 ----------------- .../v3/ad_analytics_by_creative.md | 457 ------------------ .../linkedin-ads/v3/campaign_groups.md | 129 ----- .../linkedin-ads/v3/campaigns.md | 301 ------------ .../linkedin-ads/v3/creatives.md | 97 ---- .../linkedin-ads/v3/foreign-keys.md | 93 ---- .../linkedin-ads/v3/video_ads.md | 77 --- 9 files changed, 1838 deletions(-) delete mode 100644 _integration-schemas/linkedin-ads/v3/account_users.md delete mode 100644 _integration-schemas/linkedin-ads/v3/accounts.md delete mode 100644 _integration-schemas/linkedin-ads/v3/ad_analytics_by_campaign.md delete mode 100644 _integration-schemas/linkedin-ads/v3/ad_analytics_by_creative.md delete mode 100644 _integration-schemas/linkedin-ads/v3/campaign_groups.md delete mode 100644 _integration-schemas/linkedin-ads/v3/campaigns.md delete mode 100644 _integration-schemas/linkedin-ads/v3/creatives.md delete mode 100644 _integration-schemas/linkedin-ads/v3/foreign-keys.md delete mode 100644 _integration-schemas/linkedin-ads/v3/video_ads.md diff --git a/_integration-schemas/linkedin-ads/v3/account_users.md b/_integration-schemas/linkedin-ads/v3/account_users.md deleted file mode 100644 index 34dadd8d3..000000000 --- a/_integration-schemas/linkedin-ads/v3/account_users.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -tap: "linkedin-ads" -version: "3" -key: "account-user" - -name: "account_users" -doc-link: "" -singer-schema: "https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/account_users.json" -description: | - The `{{ table.name }}` table contains info about the users who have permissions to an ad account. - -replication-method: "Key-based Incremental" - -api-method: - name: "Find Ad Account Users by Accounts" - doc-link: "https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-account-users?view=li-lms-2022-07&tabs=http#find-ad-account-users-by-accounts" - -attributes: - - name: "account_id" - type: "integer" - primary-key: true - description: "The ID of the account associated with the user." - foreign-key-id: "account-id" - - - name: "user_person_id" - type: "string" - primary-key: true - description: "The user's person ID." - foreign-key-id: "user-id" - - - name: "last_modified_time" - type: "date-time" - replication-key: true - description: "The time the user was last modified." - - - name: "account" - type: "string" - description: "The advertising account's URN." - - - name: "campaign_contact" - type: "boolean" - description: "The list of emails registered to receive campaign-related events." - - - name: "change_audit_stamps" - type: "object" - description: "" - subattributes: - - name: "created" - type: "object" - description: "" - subattributes: - - name: "time" - type: "date-time" - description: "" - - name: "last_modified" - type: "object" - description: "" - subattributes: - - name: "time" - type: "date-time" - description: "" - - - name: "created_time" - type: "date-time" - description: "The time the user was las modified." - - - name: "role" - type: "string" - description: | - The user's role in the account. Possible values are: - - - `VIEWER` - - `CREATIVE_MANAGER` - - `CAMPAIGN_MANAGER` - - `ACCOUNT_MANAGER` - - `ACCOUNT_BILLING_ADMIN` - - - name: "user" - type: "string" - description: "The associated user's URN." ---- \ No newline at end of file diff --git a/_integration-schemas/linkedin-ads/v3/accounts.md b/_integration-schemas/linkedin-ads/v3/accounts.md deleted file mode 100644 index 3f238a3e9..000000000 --- a/_integration-schemas/linkedin-ads/v3/accounts.md +++ /dev/null @@ -1,147 +0,0 @@ ---- -tap: "linkedin-ads" -version: "3" -key: "account" - -name: "accounts" -doc-link: "" -singer-schema: "https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/accounts.json" -description: | - The `{{ table.name }}` table contains info about your {{ integration.display_name }} ad accounts. - -replication-method: "Key-based Incremental" - -api-method: - name: "Search for Accounts" - doc-link: "https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-accounts?view=li-lms-2022-07&tabs=http#search-for-accounts" - -attributes: - - name: "id" - type: "integer" - primary-key: true - description: "The internal account ID." - foreign-key-id: "account-id" - - - name: "last_modified_time" - type: "date-time" - replication-key: true - description: "The time the account was last modified." - - - name: "change_audit_stamps" - type: "object" - description: "" - subattributes: - - name: "created" - type: "object" - description: "" - subattributes: - - name: "time" - type: "date-time" - description: "" - - name: "last_modified" - type: "object" - description: "" - subattributes: - - name: "time" - type: "date-time" - description: "" - - - name: "created_time" - type: "date-time" - description: "The time the account was created." - - - name: "currency" - type: "string" - description: "The ISO 4217 currency code." - - - name: "name" - type: "string" - description: "The account label." - - - name: "notified_on_campaign_optimization" - type: "boolean" - description: "Indicates if the campaign contact has been notified about an opportunity." - - - name: "notified_on_creative_approval" - type: "boolean" - description: "Indicates if the creative contact has been notified of approval." - - - name: "notified_on_creative_rejection" - type: "boolean" - description: "Indicates if the creative contact has been rejected." - - - name: "notified_on_end_of_campaign" - type: "boolean" - description: "Indicates if the campaign contact has been notified about the end of a campaign." - - - name: "notified_on_new_features_enabled" - type: "boolean" - description: "Indicates if the account owner is notified about new features." - - - name: "reference" - type: "string" - description: "The entity on whose behalf the account advertises." - - - name: "reference_organization_id" - type: "integer" - description: "" - #foreign-key-id: "reference-organization-id" - - - name: "reference_person_id" - type: "string" - description: "" - #foreign-key-id: "reference-person-id" - - - name: "serving_statuses" - type: "array" - description: "Details about the account's system serving statuses." - subattributes: - - name: "value" - type: "string" - description: | - The account's system serving status. If an account is eligible for serving, the value will be `RUNNABLE`. - - Other possible values that indicate why the account isn't servable: - - - `STOPPED` - - `BILLING_HOLD` - - `ACCOUNT_TOTAL_BUDGET_HOLD` - - `ACCOUNT_END_DATE_HOLD` - - `RESTRICTED_HOLD` - - `INTERNAL_HOLD` - - - name: "status" - type: "string" - description: "The account's active status." - - - name: "test" - type: "boolean" - description: "Indicates whether this account is a test account." - - - name: "total_budget" - type: "object" - description: "Details about the account's budget." - subattributes: - - name: "amount" - type: "number" - description: "" - - name: "currency_code" - type: "string" - description: "" - - - name: "total_budget_ends_at" - type: "date-time" - description: "" - - - name: "type" - type: "string" - description: "The account type - business or enterprise." - - - name: "version" - type: "object" - description: "" - subattributes: - - name: "version_tag" - type: "string" - description: "" ---- \ No newline at end of file diff --git a/_integration-schemas/linkedin-ads/v3/ad_analytics_by_campaign.md b/_integration-schemas/linkedin-ads/v3/ad_analytics_by_campaign.md deleted file mode 100644 index 2bcc51ae4..000000000 --- a/_integration-schemas/linkedin-ads/v3/ad_analytics_by_campaign.md +++ /dev/null @@ -1,456 +0,0 @@ ---- -tap: "linkedin-ads" -version: "3" -key: "ad-analytics-campaign" - -name: "ad_analytics_by_campaign" -doc-link: "" -singer-schema: "https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/ad_analytics_by_campaign.json" -description: | - The `{{ table.name }}` table contains analytics data for ads, segmented by campaign. - - **Note**: This table is replicated using an attribution window of {{ integration.attribution-window }}. Refer to the [Replication](#replication) section for more info. - -replication-method: "Key-based Incremental" -attribution-window: true - -api-method: - name: "Analytics Finder; Creative" - doc-link: "https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads-reporting/ads-reporting?view=li-lms-2022-07&tabs=http#analytics-finder" - -attributes: - - name: "campaign_id" - type: "integer" - primary-key: true - description: "The campaign ID." - foreign-key-id: "campaign-id" - - - name: "start_at" - type: "date-time" - primary-key: true - description: "The start of the time range for the analytics." - - - name: "end_at" - type: "date-time" - replication-key: true - description: "The end of the time range for the analytics." - - - name: "action_clicks" - type: "integer" - description: "The count of clicks on the `action` button in Sponsored InMail." - - - name: "ad_unit_clicks" - type: "integer" - description: "The count of clicks on the ad unit alongside the Sponsored InMail." - - - name: "approximate_unique_impressions" - type: "integer" - description: "The approximate reach of the campaign. The number of unique member accounts with at least one impression." - - - name: "campaign" - type: "string" - description: "" - - - name: "comments" - type: "integer" - description: "The count of comments - Sponsored Updates only." - - - name: "company_page_clicks" - type: "integer" - description: "The count of clicks to view the company page." - - - name: "conversion_value_in_local_currency" - type: "number" - description: "The value of the conversions in the account's local currency." - - - name: "cost_in_local_currency" - type: "number" - description: "The cost in the account's local currency based on the pivot and `timeGranularity`." - - - name: "cost_in_usd" - type: "number" - description: "The cost in USD based on the pivot and `timeGranularity`." - - - name: "date_range" - type: "object" - description: "The date range of the report data point, specified in UTC. A start date is required." - subattributes: - - name: "end" - type: "object" - description: "" - subattributes: - - name: "day" - type: "integer" - description: "" - - name: "month" - type: "integer" - description: "" - - name: "year" - type: "integer" - description: "" - - name: "start" - type: "object" - description: "" - subattributes: - - name: "day" - type: "integer" - description: "" - - name: "month" - type: "integer" - description: "" - - name: "year" - type: "integer" - description: "" - - - name: "external_website_conversions" - type: "integer" - description: "The count of conversions indicated by pixel loads on an external advertiser website." - - - name: "external_website_post_click_conversions" - type: "integer" - description: "The count of post-view conversions indicated by pixel loads on an external advertiser website." - - - name: "external_website_post_view_conversions" - type: "integer" - description: "The count of post-view conversions indicated by pixel loads on an external advertiser website." - - - name: "follows" - type: "integer" - description: "The follow count - Sponsored Updates only." - - - name: "full_screen_plays" - type: "integer" - description: "The tap counts on a video going into video view mode." - - - name: "impressions" - type: "integer" - description: "This is the count of `impressions` for Direct Ads and Sponsored Updates and 'sends' for InMails." - - - name: "lead_generation_mail_contact_info_shares" - type: "integer" - description: "The number of times users shared contact info through the One Click Lead Gen for Sponsored InMail - Sponsored InMail only." - - - name: "lead_generation_mail_interest_clicks" - type: "integer" - description: "The count of InMail recipients who clicked to demonstrate interest - Sponsored InMail only." - - - name: "likes" - type: "integer" - description: "The count of likes - Sponsored Updates only." - - - name: "one_click_lead_form_opens" - type: "integer" - description: "The count of times users opened the lead form for a One Click Lead Gen campaign." - - - name: "one_click_leads" - type: "integer" - description: "The count of leads generated through One Click Lead Gen." - - - name: "opens" - type: "integer" - description: "The count of opens of Sponsored InMail." - - - name: "other_engagements" - type: "integer" - description: "The count of user interactions with the ad unit that do not fit into any other more specific category." - - - name: "pivot" - type: "string" - description: "" - - - name: "pivot_value" - type: "string" - description: "" - - - name: "pivot_values" - type: "null" - description: "The value of the pivots for a specific record returned." - - - name: "shares" - type: "integer" - description: "The count of sends of Sponsored InMail." - - - name: "text_url_clicks" - type: "integer" - description: "The count of clicks on any links (anchor tags) that were included in the body of the Sponsored InMail." - - - name: "total_engagements" - type: "integer" - description: "The count of all user interactions with the ad unit." - - - name: "video_completions" - type: "integer" - description: "The count of video ads that played 97-100% of the video. This includes watches that skipped to this point if the serving location is `ON_SITE`." - - - name: "video_first_quartile_completions" - type: "integer" - description: "The count of video ads that played through the first quartile of the video. This includes watches that skipped to this point if the serving location is `ON_SITE`." - - - name: "video_midpoint_completions" - type: "integer" - description: "" - - - name: "video_starts" - type: "integer" - description: "" - - - name: "video_third_quartile_completions" - type: "integer" - description: "" - - - name: "video_views" - type: "integer" - description: "The count of video ads that played through the midpoint of the video. This includes watches that skipped to this point if the serving location is `ON_SITE`." - - - name: "viral_clicks" - type: "integer" - description: "The count of clicks on viral impressions - Sponsored Updates only." - - - name: "viral_comments" - type: "integer" - description: "The count of comments from viral impressions for this activity - Sponsored Updates only." - - - name: "viral_company_page_clicks" - type: "integer" - description: "The count of clicks to view the company page from viral impressions for this activity - Sponsored Updates only." - - - name: "viral_external_website_conversions" - type: "integer" - description: "The count of conversions indicated by pixel loads on an external advertiser website driven by a viral event." - - - name: "viral_external_website_post_click_conversions" - type: "integer" - description: "The count of post-click conversions indicated by pixel loads on an external advertiser website driven by a viral click." - - - name: "viral_external_website_post_view_conversions" - type: "integer" - description: "The count of post-view conversions indicated by pixel loads on an external advertiser website driven by a viral impression." - - - name: "viral_follows" - type: "integer" - description: "The count of follows from viral impressions for this activity - Sponsored Updates only." - - - name: "viral_full_screen_plays" - type: "integer" - description: "The count of taps on the video, going into video view mode." - - - name: "viral_impressions" - type: "integer" - description: "The count of viral impressions for this activity. Viral impressions are those resulting from users sharing a sponsored update to their own network of connections - Sponsored Updates only." - - - name: "viral_landing_page_clicks" - type: "integer" - description: "The count of clicks on viral impressions to take the user to the creative landing page - Sponsored Updates only." - - - name: "viral_likes" - type: "integer" - description: "The count of likes from viral impressions for this activity - Sponsored Updates only." - - - name: "viral_one_click_lead_form_opens" - type: "integer" - description: "The count of times users opened the lead form for viral impressions from a Lead Gen campaign." - - - name: "viral_one_click_leads" - type: "integer" - description: "The count of leads generated through One Click Lead Gen from viral impressions for this activity." - - - name: "viral_other_engagements" - type: "integer" - description: "The count of user interactions with viral impressions that do not fit into any other more specific category - Sponsored Updates only." - - - name: "viral_shares" - type: "integer" - description: "The count of shares from viral impressions for this activity - Sponsored Updates only." - - - name: "viral_total_engagements" - type: "integer" - description: "The count of all user interactions with a viral ad unit - Sponsored Updates only." - - - name: "viral_video_completions" - type: "integer" - description: "The count of viral video ads that played 97-100% of the video. This includes watches that skipped to this point." - - - name: "viral_video_first_quartile_completions" - type: "integer" - description: "The count of viral video ads that played through the first quartile of the video. This includes watches that skipped to this point." - - - name: "viral_video_midpoint_completions" - type: "integer" - description: "The count of viral video ads that played through the midpoint of the video. This includes watches that skipped to this point." - - - name: "viral_video_starts" - type: "integer" - description: "The count of viral video ads that were started by users. Since viral videos are automatically played for `ON_SITE`, this will be the same as `viralImpressions` if the servingLocation is `ON_SITE`." - - - name: "viral_video_third_quartile_completions" - type: "integer" - description: "The count of viral video ads that played through the third quartile of the video. This includes watches that skipped to this point." - - - name: "viral_video_views" - type: "integer" - description: "A viral video ad playing for at least 2 continuous seconds 50% in-view, or a click on the CTA, whichever comes first. An interaction with the video (like going to full screen mode) does not count as a view." - - - name: "average_daily_reach_metrics" - type: "object" - description: "The reach metrics corresponding to the day relative to the date range." - subattributes: - - name: "approximate_cost_in_currency_per_thousand_members_reached" - type: "decimal" - description: "The average reach, or unique member accounts with at least one impression." - - - name: "approximate_reach" - type: "decimal" - description: "The average of impressions shown to each member account that received at least one impression." - - - name: "approximate_frequency" - type: "decimal" - description: "The average of spend (in the ad account currency) on your ads, divided by member accounts reached, multiplied by 1,000." - - - name: "average_previous_seven_day_reach_metrics" - type: "object" - description: "The reach metrics corresponding to the last 7 days based on the date range." - subattributes: - - name: "approximate_cost_in_currency_per_thousand_members_reached" - type: "decimal" - description: "The average reach, or unique member accounts with at least one impression." - - - name: "approximate_reach" - type: "decimal" - description: "The average of impressions shown to each member account that received at least one impression." - - - name: "approximate_frequency" - type: "decimal" - description: "The average of spend (in the ad account currency) on your ads, divided by member accounts reached, multiplied by 1,000." - - - name: "average_previous_thirty_day_reach_metrics" - type: "object" - description: "The reach metrics corresponding to the last 30 days based on the date range." - subattributes: - - name: "approximate_cost_in_currency_per_thousand_members_reached" - type: "decimal" - description: "The average reach, or unique member accounts with at least one impression." - - - name: "approximate_reach" - type: "decimal" - description: "The average of impressions shown to each member account that received at least one impression." - - - name: "approximate_frequency" - type: "decimal" - description: "The average of spend (in the ad account currency) on your ads, divided by member accounts reached, multiplied by 1,000." - - - name: "document_completions" - type: "integer" - description: "The number of times users reached 100% of the document’s length, including those that skipped to this point." - - - name: "document_first_quartile_completions" - type: "integer" - description: "The number of times users reached the first quartile of the document’s length, including those that skipped to this point." - - - name: "document_midpoint_completions" - type: "integer" - description: "The number of times users reached the second quartile of the document’s length, including those that skipped to this point." - - - name: "document_third_quartile_completions" - type: "integer" - description: "The number of times users reached the third quartile of the document’s length, including those that skipped to this point." - - - name: "download_clicks" - type: "integer" - description: "The number of times users have indicated the intent to download the media in an ad by clicking the download icon." - - - name: "job_applications" - type: "decimal" - description: "The number of times a member completed a job application after viewing or clicking on an ad." - - - name: "job_apply_clicks" - type: "decimal" - description: "The number of times a member clicked on the job’s apply button on an LinkedIn jobs page after viewing or clicking on an ad which has a LinkedIn job landing page." - - - name: "post_click_job_applications" - type: "decimal" - description: "The number of times a member completed a job application after clicking on an ad." - - - name: "post_click_job_apply_clicks" - type: "decimal" - description: "The number of times a member clicked on the job’s apply button on an LinkedIn jobs page after clicking on an ad which has a LinkedIn job landing page." - - - name: "post_click_registrations" - type: "decimal" - description: "The number of times a member has registered for an event or seminar after clicking on an ad which has a LinkedIn landing page." - - - name: "post_view_job_applications" - type: "decimal" - description: "The number of times a member completed a job application after viewing an ad." - - - name: "post_view_job_apply_clicks" - type: "decimal" - description: "The number of times a member clicked on the job’s apply button on an LinkedIn jobs page after clicking an ad which has a LinkedIn job landing page." - - - name: "post_view_registrations" - type: "decimal" - description: "The number of times a member has registered for an event or seminar after viewing an ad which has a LinkedIn event landing page." - - - name: "registrations" - type: "decimal" - description: "The number of times a member has registered for an event or seminar after viewing or clicking on an ad which has a LinkedIn event landing page." - - - name: "talent_leads" - type: "integer" - description: "The number of leads captured through a talent media campaign." - - - name: "viral_document_completions" - type: "integer" - description: "The number of times users reached 100% of the document’s length on a viral post, including those that skipped to this point." - - - name: "viral_document_first_quartile_completions" - type: "integer" - description: "The number of times users reached the first quartile of the document’s length on a viral post, including those that skipped to this point." - - - name: "viral_document_midpoint_completions" - type: "integer" - description: "The number of times users reached the second quartile of the document’s length on a viral post, including those that skipped to this point." - - - name: "viral_document_third_quartile_completions" - type: "integer" - description: "The number of times users reached the third quartile of the document’s length on a viral post, including those that skipped to this point." - - - name: "viral_download_clicks" - type: "integer" - description: "The number of times users have indicated the intent to download the media in a viral ad by clicking the download icon." - - - name: "viral_job_applications" - type: "decimal" - description: "The number of times a member completed a job application after viewing or clicking on a viral ad." - - - name: "viral_job_apply_clicks" - type: "decimal" - description: "The number of times a member clicked on the job’s apply button on an LinkedIn jobs page after viewing or clicking on a viral ad which has a LinkedIn job landing page during the date range." - - - name: "viral_post_click_job_applications" - type: "decimal" - description: "The number of times a member completed a job application after clicking on a viral ad." - - - name: "viral_post_click_job_apply_clicks" - type: "decimal" - description: "The number of times a member clicked on the job’s apply button on an LinkedIn jobs page after clicking on a viral ad which has a LinkedIn job landing page." - - - name: "viral_post_click_registrations" - type: "decimal" - description: "The number of times a member has registered for an event or seminar after clicking on a viral ad which has a LinkedIn landing page." - - - name: "viral_post_view_job_applications" - type: "decimal" - description: "The number of times a member completed a job application after viewing a viral ad." - - - name: "viral_post_view_job_apply_clicks" - type: "decimal" - description: "The number of times a member clicked on the job’s apply button on an LinkedIn jobs page after viewing a viral ad which has a LinkedIn job landing page." - - - name: "viral_post_view_registrations" - type: "decimal" - description: "The number of times a member has registered for an event or seminar after viewing a viral ad which has a LinkedIn event landing page." - - - name: "viral_registrations" - type: "decimal" - description: "The number of times a member has registered for an event or seminar after viewing or clicking on a viral ad which has a LinkedIn event landing page." ---- \ No newline at end of file diff --git a/_integration-schemas/linkedin-ads/v3/ad_analytics_by_creative.md b/_integration-schemas/linkedin-ads/v3/ad_analytics_by_creative.md deleted file mode 100644 index 90d5da96b..000000000 --- a/_integration-schemas/linkedin-ads/v3/ad_analytics_by_creative.md +++ /dev/null @@ -1,457 +0,0 @@ ---- -tap: "linkedin-ads" -version: "3" -key: "ad-analytics-creative" - -name: "ad_analytics_by_creative" -doc-link: "" -singer-schema: "https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/ad_analytics_by_creative.json" -description: | - The `{{ table.name }}` table contains info about ad analytics, segmented by creative. - - **Note**: This table is replicated using an attribution window of {{ integration.attribution-window }}. Refer to the [Replication](#replication) section for more info. - -replication-method: "Key-based Incremental" -attribution-window: true - -api-method: - name: "Analytics Finder; Creative" - doc-link: "https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads-reporting/ads-reporting?view=li-lms-2022-07&tabs=http#analytics-finder" - -attributes: - - name: "creative_id" - type: "integer" - primary-key: true - foreign-key: true - description: "The creative ID." - foreign-key-id: "creative-id" - - - name: "start_at" - type: "date-time" - primary-key: true - description: "The start of the time range for the analytics." - - - name: "end_at" - type: "date-time" - replication-key: true - description: "The end of the time range for the analytics." - - - name: "action_clicks" - type: "integer" - description: "The count of clicks on the `action` button in Sponsored InMail." - - - name: "ad_unit_clicks" - type: "integer" - description: "The count of clicks on the ad unit alongside the Sponsored InMail." - - - name: "approximate_unique_impressions" - type: "integer" - description: "The approximate reach of the campaign. The number of unique member accounts with at least one impression." - - - name: "comments" - type: "integer" - description: "The count of comments - Sponsored Updates only." - - - name: "company_page_clicks" - type: "integer" - description: "The count of clicks to view the company page." - - - name: "conversion_value_in_local_currency" - type: "number" - description: "The value of the conversions in the account's local currency." - - - name: "cost_in_local_currency" - type: "number" - description: "The cost in the account's local currency based on the pivot and timeGranularity." - - - name: "cost_in_usd" - type: "number" - description: "The cost in USD based on the pivot and timeGranularity." - - - name: "creative" - type: "string" - description: "" - - - name: "date_range" - type: "object" - description: "The date range of the report data point, specified in UTC." - subattributes: - - name: "end" - type: "object" - description: "" - subattributes: - - name: "day" - type: "integer" - description: "" - - name: "month" - type: "integer" - description: "" - - name: "year" - type: "integer" - description: "" - - name: "start" - type: "object" - description: "" - subattributes: - - name: "day" - type: "integer" - description: "" - - name: "month" - type: "integer" - description: "" - - name: "year" - type: "integer" - description: "" - - - name: "external_website_conversions" - type: "integer" - description: "The count of conversions indicated by pixel loads on an external advertiser website." - - - name: "external_website_post_click_conversions" - type: "integer" - description: "The count of post-view conversions indicated by pixel loads on an external advertiser website." - - - name: "external_website_post_view_conversions" - type: "integer" - description: "The count of post-view conversions indicated by pixel loads on an external advertiser website." - - - name: "follows" - type: "integer" - description: "The follow count - Sponsored Updates only." - - - name: "full_screen_plays" - type: "integer" - description: "The tap counts on a video going into video view mode." - - - name: "impressions" - type: "integer" - description: "This is the count of 'impressions' for Direct Ads and Sponsored Updates and 'sends' for InMails." - - - name: "lead_generation_mail_contact_info_shares" - type: "integer" - description: "" - - - name: "lead_generation_mail_interest_clicks" - type: "integer" - description: "The number of times users shared contact info through the One Click Lead Gen for Sponsored InMail - Sponsored InMail only." - - - name: "likes" - type: "integer" - description: "The count of likes - Sponsored Updates only." - - - name: "one_click_lead_form_opens" - type: "integer" - description: "The count of times users opened the lead form for a One Click Lead Gen campaign." - - - name: "one_click_leads" - type: "integer" - description: "The count of leads generated through One Click Lead Gen." - - - name: "opens" - type: "integer" - description: "The count of opens of Sponsored InMail." - - - name: "other_engagements" - type: "integer" - description: "The count of user interactions with the ad unit that do not fit into any other more specific category." - - - name: "pivot" - type: "string" - description: "" - - - name: "pivot_value" - type: "string" - description: "" - - - name: "pivot_values" - type: "null" - description: "The value of the pivots for a specific record returned." - - - name: "shares" - type: "integer" - description: "The count of sends of Sponsored InMail." - - - name: "text_url_clicks" - type: "integer" - description: "The count of clicks on any links (anchor tags) that were included in the body of the Sponsored InMail." - - - name: "total_engagements" - type: "integer" - description: "The count of all user interactions with the ad unit." - - - name: "video_completions" - type: "integer" - description: "The count of video ads that played 97-100% of the video. This includes watches that skipped to this point if the serving location is `ON_SITE`." - - - name: "video_first_quartile_completions" - type: "integer" - description: "The count of video ads that played through the first quartile of the video. This includes watches that skipped to this point if the serving location is `ON_SITE`." - - - name: "video_midpoint_completions" - type: "integer" - description: "" - - - name: "video_starts" - type: "integer" - description: "" - - - name: "video_third_quartile_completions" - type: "integer" - description: "" - - - name: "video_views" - type: "integer" - description: "The count of video ads that played through the midpoint of the video. This includes watches that skipped to this point if the serving location is `ON_SITE`." - - - name: "viral_clicks" - type: "integer" - description: "The count of clicks on viral impressions - Sponsored Updates only." - - - name: "viral_comments" - type: "integer" - description: "The count of comments from viral impressions for this activity - Sponsored Updates only." - - - name: "viral_company_page_clicks" - type: "integer" - description: "The count of clicks to view the company page from viral impressions for this activity - Sponsored Updates only." - - - name: "viral_external_website_conversions" - type: "integer" - description: "The count of conversions indicated by pixel loads on an external advertiser website driven by a viral event." - - - name: "viral_external_website_post_click_conversions" - type: "integer" - description: "The count of post-click conversions indicated by pixel loads on an external advertiser website driven by a viral click." - - - name: "viral_external_website_post_view_conversions" - type: "integer" - description: "The count of post-view conversions indicated by pixel loads on an external advertiser website driven by a viral impression." - - - name: "viral_follows" - type: "integer" - description: "The count of follows from viral impressions for this activity - Sponsored Updates only." - - - name: "viral_full_screen_plays" - type: "integer" - description: "The count of taps on the video, going into video view mode." - - - name: "viral_impressions" - type: "integer" - description: "The count of viral impressions for this activity. Viral impressions are those resulting from users sharing a sponsored update to their own network of connections - Sponsored Updates only." - - - name: "viral_landing_page_clicks" - type: "integer" - description: "The count of clicks on viral impressions to take the user to the creative landing page - Sponsored Updates only." - - - name: "viral_likes" - type: "integer" - description: "The count of likes from viral impressions for this activity - Sponsored Updates only." - - - name: "viral_one_click_lead_form_opens" - type: "integer" - description: "The count of times users opened the lead form for viral impressions from a Lead Gen campaign." - - - name: "viral_one_click_leads" - type: "integer" - description: "The count of leads generated through One Click Lead Gen from viral impressions for this activity." - - - name: "viral_other_engagements" - type: "integer" - description: "The count of user interactions with viral impressions that do not fit into any other more specific category - Sponsored Updates only." - - - name: "viral_shares" - type: "integer" - description: "The count of shares from viral impressions for this activity - Sponsored Updates only." - - - name: "viral_total_engagements" - type: "integer" - description: "The count of all user interactions with a viral ad unit - Sponsored Updates only." - - - name: "viral_video_completions" - type: "integer" - description: "The count of viral video ads that played 97-100% of the video. This includes watches that skipped to this point." - - - name: "viral_video_first_quartile_completions" - type: "integer" - description: "The count of viral video ads that played through the first quartile of the video. This includes watches that skipped to this point." - - - name: "viral_video_midpoint_completions" - type: "integer" - description: "The count of viral video ads that played through the midpoint of the video. This includes watches that skipped to this point." - - - name: "viral_video_starts" - type: "integer" - description: "The count of viral video ads that were started by users. Since viral videos are automatically played for `ON_SITE`, this will be the same as `viralImpressions` if the `servingLocation` is `ON_SITE`." - - - name: "viral_video_third_quartile_completions" - type: "integer" - description: "The count of viral video ads that played through the third quartile of the video. This includes watches that skipped to this point." - - - name: "viral_video_views" - type: "integer" - description: "A viral video ad playing for at least 2 continuous seconds 50% in-view, or a click on the CTA, whichever comes first. An interaction with the video (like going to full screen mode) does not count as a view." - - - name: "average_daily_reach_metrics" - type: "object" - description: "The reach metrics corresponding to the day relative to the date range." - subattributes: - - name: "approximate_cost_in_currency_per_thousand_members_reached" - type: "decimal" - description: "The average reach, or unique member accounts with at least one impression." - - - name: "approximate_reach" - type: "decimal" - description: "The average of impressions shown to each member account that received at least one impression." - - - name: "approximate_frequency" - type: "decimal" - description: "The average of spend (in the ad account currency) on your ads, divided by member accounts reached, multiplied by 1,000." - - - name: "average_previous_seven_day_reach_metrics" - type: "object" - description: "The reach metrics corresponding to the last 7 days based on the date range." - subattributes: - - name: "approximate_cost_in_currency_per_thousand_members_reached" - type: "decimal" - description: "The average reach, or unique member accounts with at least one impression." - - - name: "approximate_reach" - type: "decimal" - description: "The average of impressions shown to each member account that received at least one impression." - - - name: "approximate_frequency" - type: "decimal" - description: "The average of spend (in the ad account currency) on your ads, divided by member accounts reached, multiplied by 1,000." - - - name: "average_previous_thirty_day_reach_metrics" - type: "object" - description: "The reach metrics corresponding to the last 30 days based on the date range." - subattributes: - - name: "approximate_cost_in_currency_per_thousand_members_reached" - type: "decimal" - description: "The average reach, or unique member accounts with at least one impression." - - - name: "approximate_reach" - type: "decimal" - description: "The average of impressions shown to each member account that received at least one impression." - - - name: "approximate_frequency" - type: "decimal" - description: "The average of spend (in the ad account currency) on your ads, divided by member accounts reached, multiplied by 1,000." - - - name: "document_completions" - type: "integer" - description: "The number of times users reached 100% of the document’s length, including those that skipped to this point." - - - name: "document_first_quartile_completions" - type: "integer" - description: "The number of times users reached the first quartile of the document’s length, including those that skipped to this point." - - - name: "document_midpoint_completions" - type: "integer" - description: "The number of times users reached the second quartile of the document’s length, including those that skipped to this point." - - - name: "document_third_quartile_completions" - type: "integer" - description: "The number of times users reached the third quartile of the document’s length, including those that skipped to this point." - - - name: "download_clicks" - type: "integer" - description: "The number of times users have indicated the intent to download the media in an ad by clicking the download icon." - - - name: "job_applications" - type: "decimal" - description: "The number of times a member completed a job application after viewing or clicking on an ad." - - - name: "job_apply_clicks" - type: "decimal" - description: "The number of times a member clicked on the job’s apply button on an LinkedIn jobs page after viewing or clicking on an ad which has a LinkedIn job landing page." - - - name: "post_click_job_applications" - type: "decimal" - description: "The number of times a member completed a job application after clicking on an ad." - - - name: "post_click_job_apply_clicks" - type: "decimal" - description: "The number of times a member clicked on the job’s apply button on an LinkedIn jobs page after clicking on an ad which has a LinkedIn job landing page." - - - name: "post_click_registrations" - type: "decimal" - description: "The number of times a member has registered for an event or seminar after clicking on an ad which has a LinkedIn landing page." - - - name: "post_view_job_applications" - type: "decimal" - description: "The number of times a member completed a job application after viewing an ad." - - - name: "post_view_job_apply_clicks" - type: "decimal" - description: "The number of times a member clicked on the job’s apply button on an LinkedIn jobs page after clicking an ad which has a LinkedIn job landing page." - - - name: "post_view_registrations" - type: "decimal" - description: "The number of times a member has registered for an event or seminar after viewing an ad which has a LinkedIn event landing page." - - - name: "registrations" - type: "decimal" - description: "The number of times a member has registered for an event or seminar after viewing or clicking on an ad which has a LinkedIn event landing page." - - - name: "talent_leads" - type: "integer" - description: "The number of leads captured through a talent media campaign." - - - name: "viral_document_completions" - type: "integer" - description: "The number of times users reached 100% of the document’s length on a viral post, including those that skipped to this point." - - - name: "viral_document_first_quartile_completions" - type: "integer" - description: "The number of times users reached the first quartile of the document’s length on a viral post, including those that skipped to this point." - - - name: "viral_document_midpoint_completions" - type: "integer" - description: "The number of times users reached the second quartile of the document’s length on a viral post, including those that skipped to this point." - - - name: "viral_document_third_quartile_completions" - type: "integer" - description: "The number of times users reached the third quartile of the document’s length on a viral post, including those that skipped to this point." - - - name: "viral_download_clicks" - type: "integer" - description: "The number of times users have indicated the intent to download the media in a viral ad by clicking the download icon." - - - name: "viral_job_applications" - type: "decimal" - description: "The number of times a member completed a job application after viewing or clicking on a viral ad." - - - name: "viral_job_apply_clicks" - type: "decimal" - description: "The number of times a member clicked on the job’s apply button on an LinkedIn jobs page after viewing or clicking on a viral ad which has a LinkedIn job landing page during the date range." - - - name: "viral_post_click_job_applications" - type: "decimal" - description: "The number of times a member completed a job application after clicking on a viral ad." - - - name: "viral_post_click_job_apply_clicks" - type: "decimal" - description: "The number of times a member clicked on the job’s apply button on an LinkedIn jobs page after clicking on a viral ad which has a LinkedIn job landing page." - - - name: "viral_post_click_registrations" - type: "decimal" - description: "The number of times a member has registered for an event or seminar after clicking on a viral ad which has a LinkedIn landing page." - - - name: "viral_post_view_job_applications" - type: "decimal" - description: "The number of times a member completed a job application after viewing a viral ad." - - - name: "viral_post_view_job_apply_clicks" - type: "decimal" - description: "The number of times a member clicked on the job’s apply button on an LinkedIn jobs page after viewing a viral ad which has a LinkedIn job landing page." - - - name: "viral_post_view_registrations" - type: "decimal" - description: "The number of times a member has registered for an event or seminar after viewing a viral ad which has a LinkedIn event landing page." - - - name: "viral_registrations" - type: "decimal" - description: "The number of times a member has registered for an event or seminar after viewing or clicking on a viral ad which has a LinkedIn event landing page." ---- \ No newline at end of file diff --git a/_integration-schemas/linkedin-ads/v3/campaign_groups.md b/_integration-schemas/linkedin-ads/v3/campaign_groups.md deleted file mode 100644 index 5a4b68dc0..000000000 --- a/_integration-schemas/linkedin-ads/v3/campaign_groups.md +++ /dev/null @@ -1,129 +0,0 @@ ---- -tap: "linkedin-ads" -version: "3" -key: "campaign-group" - -name: "campaign_groups" -doc-link: "" -singer-schema: "https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/campaign_groups.json" -description: | - The `{{ table.name }}` table contains info about the campaign groups in your {{ integration.display_name }} account. - -replication-method: "Key-based Incremental" - -api-method: - name: "Search For Campaign Groups" - doc-link: "https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-campaign-groups?view=li-lms-2022-07&tabs=http#search-for-campaign-groups" - -attributes: - - name: "id" - type: "integer" - primary-key: true - description: "The campaign group ID." - foreign-key-id: "campaign-group-id" - - - name: "last_modified_time" - type: "date-time" - replication-key: true - description: "The time the campaign group was last modified." - - - name: "account" - type: "string" - description: "URN identifying the advertising account associated with the campaign." - - - name: "account_id" - type: "integer" - description: "The ID of the account associated with the campaign group." - foreign-key-id: "account-id" - - - name: "backfilled" - type: "boolean" - description: "Indicates whether the campaign group was created organically or to backfill existing campaigns." - - - name: "change_audit_stamps" - type: "object" - description: "" - subattributes: - - name: "created" - type: "object" - description: "" - subattributes: - - name: "time" - type: "date-time" - description: "" - - name: "last_modified" - type: "object" - description: "" - subattributes: - - name: "time" - type: "date-time" - description: "" - - - name: "created_time" - type: "date-time" - description: "The time the campaign group was created." - - - name: "name" - type: "string" - description: "The name of the campaign group used to make it easier to reference a campaign group and recall its purpose." - - - name: "run_schedule" - type: "object" - description: "Details about the campaign group's run schedule." - subattributes: - - name: "end" - type: "date-time" - description: "Represents the exclusive (strictly less than) date when to stop running the associated campaigns under this campaign group. If this field is unset, it indicates an open range with no end date." - - - name: "start" - type: "date-time" - description: "Represents the inclusive (greater than or equal to) date when to start running the associated campaigns under this campaign group." - - - name: "serving_statuses" - type: "array" - description: "Array of enums that determine whether or not campaigns within the campaign group may be served." - subattributes: - - name: "value" - type: "string" - description: "The serving status." - - - name: "status" - type: "string" - description: | - The status of campaign group. Possible values are: - - - `ACTIVE` - Denotes that the campaign group is capable of serving ads, subject to run date and budget limitations (as well as any other limitations at the account or campaign level). - - `ARCHIVED` - Denotes that the campaign group is presently inactive, and should mostly be hidden in the UI until un-archived. - - `CANCELED` - Denotes that the campaign group has been permanently canceled and cannot be reactivated. - - `DRAFT` - Denotes that the campaign group is in a preliminary state and should temporarily not be served. - - `PAUSED` - Denotes that the campaign group meets all requirements to be served, but temporarily should not be. - - - name: "total_budget" - type: "object" - description: "" - subattributes: - - name: "currency_code" - type: "string" - description: "The ISO currency code." - - - name: "amount" - type: "decimal" - description: "The maximum amount to spend across all associated campaigns and creatives for duration of the campaign group." - - - name: "test" - type: "boolean" - description: "Indicates whether this campaign group is a test campaign group." - - - name: "allowed_campaign_types" - type: "array" - description: "Array of enums that indicates allowed campaign types within the specific campaign group." - subattributes: - - name: "items" - type: "string" - description: | - The campaign type. The value can be: - - `TEXT_AD` - - `SPONSORED_UPDATES` - - `SPONSORED_INMAILS` - - `DYNAMIC` ---- \ No newline at end of file diff --git a/_integration-schemas/linkedin-ads/v3/campaigns.md b/_integration-schemas/linkedin-ads/v3/campaigns.md deleted file mode 100644 index 795628830..000000000 --- a/_integration-schemas/linkedin-ads/v3/campaigns.md +++ /dev/null @@ -1,301 +0,0 @@ ---- -tap: "linkedin-ads" -version: "3" -key: "campaign" - -name: "campaigns" -doc-link: "" -singer-schema: "https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/campaigns.json" -description: | - The `{{ table.name }}` table contains info about the campaigns in your {{ integration.display_name }} account. - -replication-method: "Key-based Incremental" - -api-method: - name: "Search For Campaigns" - doc-link: "https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-campaigns?view=li-lms-2022-07&tabs=http#search-for-campaigns" - -attributes: - - name: "id" - type: "integer" - primary-key: true - description: "The campaign ID." - foreign-key-id: "campaign-id" - - - name: "last_modified_time" - type: "date-time" - replication-key: true - description: "The time the campaign was last modified." - - - name: "account" - type: "string" - description: "URN identifying the advertising account associated with the campaign." - - - name: "account_id" - type: "integer" - description: "The ID of the account associated with the campaign." - foreign-key-id: "account-id" - - - name: "associated_entity" - type: "string" - description: "An URN identifying the intended beneficiary of the advertising campaign such as a specific company or member." - - - name: "associated_entity_organization_id" - type: "integer" - description: "" - - - name: "associated_entity_person_id" - type: "string" - description: "" - - - name: "audience_expansion_enabled" - type: "boolean" - description: "Indicates if Audience Expansion is enabled for the campaign provides query expansion for certain targeting criteria." - - - name: "campaign_group" - type: "string" - description: "URN identifying the campaign group associated with the campaign. If the campaign group is not specified, the campaign is assigned to account's default campaign group." - - - name: "campaign_group_id" - type: "integer" - description: "The ID of the campaign group associated with the campaign." - foreign-key-id: "campaign-group-id" - - - name: "change_audit_stamps" - type: "object" - description: "" - subattributes: - - name: "created" - type: "object" - description: "" - subattributes: - - name: "time" - type: "date-time" - description: "" - - name: "last_modified" - type: "object" - description: "" - subattributes: - - name: "time" - type: "date-time" - description: "" - - - name: "cost_type" - type: "string" - description: "The cost type - `CPM`, `CPC`, or `CPV`." - - - name: "created_time" - type: "date-time" - description: "" - - - name: "creative_selection" - type: "string" - description: "The creative selection - `ROUND_ROBIN` or `OPTIMIZED`." - - - name: "daily_budget" - type: "object" - description: "Details about the budget for the campaign." - subattributes: - - name: "amount" - type: "number" - description: "Maximum amount to spend per day UTC. The amount of money as a real number string." - - - name: "currency_code" - type: "string" - description: "The ISO currency code. The currency must match that of the parent account." - - - name: "locale" - type: "object" - description: "Details about the campaign's locale." - subattributes: - - name: "country" - type: "string" - description: "Locale of the campaign. An uppercase two-letter country code as defined by ISO-3166." - - name: "language" - type: "string" - description: "Locale of the campaign. A lowercase two-letter language code as defined by ISO-639." - - - name: "name" - type: "string" - description: "The name of the campaign." - - - name: "offsite_delivery_enabled" - type: "boolean" - description: "Indicates if offsite delivery is enabled for the campaign." - - - name: "optimization_target_type" - type: "string" - description: | - Determines how this campaign is optimized for spending. If this is not set, there is no optimization. Refer to [{{ integration.display_name }}' documentation](https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-campaigns#optimization-of-campaigns){:target="new"} for more info. - - - name: "run_schedule" - type: "object" - description: "Details about the campaign's run schedule." - subattributes: - - name: "end" - type: "date-time" - description: "Scheduled date range to stop associated creatives. Represents the exclusive (strictly less than) value in which to end the range." - - name: "start" - type: "date-time" - description: "Scheduled date range to run associated creatives." - - - name: "serving_statuses" - type: "null" - description: "The serving status of the campaign." - - - name: "status" - type: "string" - description: | - The status of the campaign. Possible values are: - - - `ACTIVE` - Denotes that the campaign is fully servable. - - `PAUSED` - Denotes that the campaign meets all requirements to be served, but temporarily should not be. - - `ARCHIVED` - Denotes that the campaign is presently inactive, and should mostly be hidden in the UI until un-archived. - - `COMPLETED` - Denotes that the campaign has reached a specified budgetary or chronological limit. - - `CANCELED` - Denotes that the campaign has been permanently canceled, such as when an advertising account is permanently closed. - - `DRAFT` - Denotes that the campaign is still being edited and not eligible for serving. Some validation will be postponed until the campaign is activated. - - - name: "targeting" - type: "object" - description: "**Deprecated by {{ integration.display_name }}**. Use `targeting_criteria` instead." - subattributes: - - name: "excluded_targeting_facets" - type: "null" - description: "**Deprecated by {{ integration.display_name }}**. Use `targeting_criteria` instead." - - name: "included_targeting_facets" - type: "null" - description: "**Deprecated by {{ integration.display_name }}**. Use `targeting_criteria` instead." - - - name: "targeting_criteria" - type: "object" - description: | - Specifies targeting criteria that the member should match. Refer to [{{ integration.display_name }}' documentation](https://docs.microsoft.com/en-us/linkedin/shared/references/v2/ads/targeting-criteria){:target="new"} for more info. - doc-link: "https://docs.microsoft.com/en-us/linkedin/shared/references/v2/ads/targeting-criteria" - subattributes: - - name: "exclude" - type: "null" - description: "" - - name: "include" - type: "object" - description: "" - subattributes: - - name: "and" - type: "null" - description: "" - - - name: "type" - type: "string" - description: | - The type of the campaign. Possible values are: - - - `TEXT_AD` - Text-based ads that show up in the right column or top of the page on LinkedIn. - - `SPONSORED_UPDATES` - Native ads that promote a company's content updates in the LinkedIn feed. - - `SPONSORED_INMAILS` - Personalized messages with a call-to-action button delivered to a LinkedIn's member inbox. - - `DYNAMIC` - Ads that are dynamically personalized. - - - name: "unit_cost" - type: "object" - description: "Amount to bid per click, impression, or other event depending on the pricing model." - subattributes: - - name: "amount" - type: "number" - description: "The amount to bid to the associated account." - - name: "currency_code" - type: "string" - description: "The ISO currency code to the associated account." - - - name: "version" - type: "object" - description: "Details about the campaign's version." - subattributes: - - name: "version_tag" - type: "string" - description: "Each entity has a version tag associated with it. The version tag is initiated to 1 when the entity is created. Each single update to the entity increases its version tag by 1." - - - name: "total_budget" - type: "object" - description: "" - subattributes: - - name: "currency_code" - type: "string" - description: "The ISO currency code." - - - name: "amount" - type: "decimal" - description: "The maximum amount to spend over the life of the campaign." - - - name: "version_tag" - type: "string" - description: "The version tag associated with the entity." - - - name: "objective_type" - type: "string" - description: | - The Campaign Objective type values. The value can be: - - `BRAND_AWARENESS` - - `ENGAGEMENT` - - `JOB_APPLICANTS` - - `LEAD_GENERATION` - - `WEBSITE_CONVERSIONS` - - `WEBSITE_VISITS` - - `VIDEO_VIEWS` - - - name: "offsite_preferences" - type: "object" - description: "The offsite preferences that an advertiser specifies for this campaign." - subattributes: - - name: "iab_categories" - type: "object" - description: "The set of IAB (Interactive Advertising Bureau) categories that this campaign may be served/excluded from, based on where the ad request is from. Mobile Apps, Mobile Web, and Desktop Inventory are all classified into one or more of these categories." - subattributes: - - name: "exclude" - type: "array" - description: "The excluded list of IAB categories." - subattributes: - - name: "items" - type: "string" - description: "" - - - name: "include" - type: "array" - description: "The included list of IAB categories." - subattributes: - - name: "items" - type: "string" - description: "" - - - name: "publisher_restriction_files" - type: "object" - description: "This field contains one or more files that have been uploaded by an advertiser. Each file contains a list of web domains/app store URLs." - subattributes: - - name: "exclude" - type: "array" - description: "The list of publisher file IDs to whom ad requests may not be served." - subattributes: - - name: "items" - type: "string" - description: "" - - - name: "test" - type: "boolean" - description: "Indicates whether this campaign is a test campaign." - - - name: "format" - type: "string" - description: | - The ad format on campaign level. The value can be: - - `CAROUSEL` - - `FOLLOW_COMPANY` - - `JOBS` - - `SINGLE_VIDEO` - - `SPONSORED_INMAIL` - - `SPONSORED_MESSAGE` - - `SPOTLIGHT` - - `STANDARD_UPDATE` - - `TEXT_AD` - - `UNSUPPORTED` - - - name: "pacing_strategy" - type: "string" - description: "The pacing option used for the campaign." ---- \ No newline at end of file diff --git a/_integration-schemas/linkedin-ads/v3/creatives.md b/_integration-schemas/linkedin-ads/v3/creatives.md deleted file mode 100644 index ecba42408..000000000 --- a/_integration-schemas/linkedin-ads/v3/creatives.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -tap: "linkedin-ads" -version: "3" -key: "creatives" - -name: "creatives" -doc-link: "https://learn.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-creatives?view=li-lms-2023-01&tabs=http#search-for-creatives" -singer-schema: "https://github.com/singer-io/tap-linkedin-ads/tree/master/tap_linkedin_ads/schemas/creatives.json" -description: "The Creatives API contains all the data and information for visually rendering an ad." - -replication-method: "Key-based Incremental" - -attributes: - - name: "account" - type: "string" - description: "URN identifying the advertising account associated with the creative." - - - name: "account_id" - type: "integer" - description: "ID identifying the advertising account associated with the creative." - - - name: "campaign" - type: "string" - description: "URN identifying the campaign associated with the creative" - - - name: "campaign_id" - type: "integer" - description: "ID identifying the campaign associated with the creative" - - - name: "content" - type: "object" - description: "Content sponsored in the creative." - subattributes: - - name: "reference" - type: "string" - description: "A reference must be a adInMailContent{id}, share{id}, or ugcPost{id}." - - - name: "text_ad" - type: "object" - description: "Text ads include a headline, brief text, and an image." - subattributes: - - name: "headline" - type: "string" - description: "The main message seen by the target audience on the ad. Use up to 25 characters, including spaces" - - - name: "description" - type: "string" - description: "The description that provides more information about the ad. Use up to 75 characters, including spaces." - - - name: "landing_page" - type: "string" - description: "The URL where the member should be redirected to, on clicking the text ad." - - - name: "created_at" - type: "string" - format: "date-time" - description: "Creation time" - - - name: "created_by" - type: "string" - description: "Entity (e.g., a person URN) that developed the creative" - - - name: "id" - type: "string" - description: "Unique ID for a creative (e.g.,SponsoredCreativeUrn)." - primary-key: true - - - name: "intended_status" - type: "string" - description: "Creative user intended status." - - - name: "is_serving" - type: "boolean" - description: "This indicates whether the creative is currently being served or not." - - - name: "is_test" - type: "boolean" - description: "True returns creatives only under test accounts. False returns creatives only under non-test accounts." - - - name: "last_modified_at" - type: "string" - format: "date-time" - description: "Time at which the creative was last modified." - replication-key: true - - - name: "last_modified_by" - type: "string" - description: "The entity (e.g., person URN) who modified the creative" - - - name: "serving_hold_reasons" - type: "array" - description: "Array that contains all the reasons why the creative is not serving." - subattributes: - - name: "items" - type: "string" - description: "Contains different reasons." ---- \ No newline at end of file diff --git a/_integration-schemas/linkedin-ads/v3/foreign-keys.md b/_integration-schemas/linkedin-ads/v3/foreign-keys.md deleted file mode 100644 index cd2841ef9..000000000 --- a/_integration-schemas/linkedin-ads/v3/foreign-keys.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -# -------------------------- # -# USING THIS TEMPLATE # -# -------------------------- # - -## NEED HELP USING THIS TEMPLATE? SEE: -## https://docs-about-stitch-docs.netlify.com/reference/integration-templates/saas-foreign-keys/ -## FOR INSTRUCTIONS & REFERENCE INFO - -tap-reference: "linkedin-ads" - -version: "3" - -foreign-keys: - - id: "account-id" - table: "accounts" - attribute: "id" - all-foreign-keys: - - table: "account_users" - join-on: "account_id" - - table: "accounts" - join-on: "id" - - table: "campaigns" - join-on: "account_id" - - table: "campaign_groups" - join-on: "account_id" - - table: "video_ads" - join-on: "account_id" - - - id: "reference-organization-id" - table: "" - attribute: "" - all-foreign-keys: - - table: "accounts" - join-on: "reference_organization_id" - - - id: "reference-person-id" - table: "" - attribute: "" - all-foreign-keys: - - table: "accounts" - join-on: "reference_person_id" - - - id: "user-id" - table: "account_users" - attribute: "user_person_id" - all-foreign-keys: - - table: "account_users" - join-on: "user_person_id" - - - id: "campaign-group-id" - table: "campaign_groups" - attribute: "id" - all-foreign-keys: - - table: "campaign_groups" - join-on: "id" - - table: "campaigns" - join-on: "campaign_group_id" - - - id: "campaign-id" - table: "campaigns" - attribute: "id" - all-foreign-keys: - - table: "campaigns" - join-on: "id" - - table: "creatives" - join-on: "campaign_id" - - table: "ad_analytics_by_campaign" - join-on: "campaign_id" - - - id: "creative-id" - table: "creatives" - attribute: "id" - all-foreign-keys: - - table: "creatives" - join-on: "id" - - table: "ad_analytics_by_creative" - join-on: "creative_id" - - - id: "owner-organization-id" - table: "" - attribute: "" - all-foreign-keys: - - table: "video_ads" - join-on: "owner_organization_id" - - - id: "content-reference" - table: "video_ads" - attribute: "content_reference" - all-foreign-keys: - - table: "video_ads" - join-on: "content_reference" ---- \ No newline at end of file diff --git a/_integration-schemas/linkedin-ads/v3/video_ads.md b/_integration-schemas/linkedin-ads/v3/video_ads.md deleted file mode 100644 index e7517bb4f..000000000 --- a/_integration-schemas/linkedin-ads/v3/video_ads.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -tap: "linkedin-ads" -version: "3" -key: "video-ad" - -name: "video_ads" -doc-link: "" -singer-schema: "https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/video_ads.json" -description: | - The `{{ table.name }}` table contains info about the video ads in your {{ integration.display_name }} account. - -replication-method: "Key-based Incremental" - -api-method: - name: "Account Finder; Sponsored Contents" - doc-link: "https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/advertising-targeting/create-and-manage-video?view=li-lms-unversioned&tabs=http&viewFallbackFrom=li-lms-2022-07#finders" - -attributes: - - name: "account" - type: "string" - description: "" - - - name: "account_id" - type: "integer" - description: "" - - - name: "ad_context" - type: "object" - description: "" - subattributes: - - name: "dsc_status" - type: "string" - description: "" - - - name: "dsc_name" - type: "string" - description: "" - - - name: "dsc_ad_type" - type: "string" - description: "" - - - name: "dsc_ad_account" - type: "string" - description: "" - - - - name: "author" - type: "string" - description: "" - - - name: "created_at" - type: "date-time" - description: "" - - - name: "id" - type: "string" - description: "" - primary-key: true - - - name: "last_modified_at" - type: "date-time" - description: "" - replication-key: true - - - name: "name" - type: "string" - description: "" - - - name: "status" - type: "string" - description: "" - - - name: "type" - type: "string" - description: "" ---- \ No newline at end of file From 55ed2768ebf776af419fb6f715e338caa4c800e9 Mon Sep 17 00:00:00 2001 From: Lucie Milan Date: Mon, 4 Dec 2023 11:37:57 +0100 Subject: [PATCH 6/7] added v3 --- .../linkedin-ads/v3/json/account_users.json | 96 +++ .../linkedin-ads/v3/json/accounts.json | 199 +++++ .../v3/json/ad_analytics_by_campaign.json | 754 ++++++++++++++++++ .../v3/json/ad_analytics_by_creative.json | 754 ++++++++++++++++++ .../linkedin-ads/v3/json/campaign_groups.json | 169 ++++ .../linkedin-ads/v3/json/campaigns.json | 590 ++++++++++++++ .../linkedin-ads/v3/json/creatives.json | 135 ++++ .../linkedin-ads/v3/json/video_ads.json | 96 +++ .../v3/linkedin-ads-v3-foreign-keys.yml | 188 +++++ .../v3/linkedin-ads-v3-tables.yml | 112 +++ 10 files changed, 3093 insertions(+) create mode 100644 _data/taps/schemas/linkedin-ads/v3/json/account_users.json create mode 100644 _data/taps/schemas/linkedin-ads/v3/json/accounts.json create mode 100644 _data/taps/schemas/linkedin-ads/v3/json/ad_analytics_by_campaign.json create mode 100644 _data/taps/schemas/linkedin-ads/v3/json/ad_analytics_by_creative.json create mode 100644 _data/taps/schemas/linkedin-ads/v3/json/campaign_groups.json create mode 100644 _data/taps/schemas/linkedin-ads/v3/json/campaigns.json create mode 100644 _data/taps/schemas/linkedin-ads/v3/json/creatives.json create mode 100644 _data/taps/schemas/linkedin-ads/v3/json/video_ads.json create mode 100644 _data/taps/schemas/linkedin-ads/v3/linkedin-ads-v3-foreign-keys.yml create mode 100644 _data/taps/schemas/linkedin-ads/v3/linkedin-ads-v3-tables.yml diff --git a/_data/taps/schemas/linkedin-ads/v3/json/account_users.json b/_data/taps/schemas/linkedin-ads/v3/json/account_users.json new file mode 100644 index 000000000..bbf717804 --- /dev/null +++ b/_data/taps/schemas/linkedin-ads/v3/json/account_users.json @@ -0,0 +1,96 @@ +{ + "additionalProperties": false, + "properties": { + "account": { + "type": [ + "null", + "string" + ] + }, + "account_id": { + "type": [ + "null", + "integer" + ] + }, + "campaign_contact": { + "type": [ + "null", + "boolean" + ] + }, + "change_audit_stamps": { + "additionalProperties": false, + "properties": { + "created": { + "additionalProperties": false, + "properties": { + "time": { + "type": [ + "null", + "date-time" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "last_modified": { + "additionalProperties": false, + "properties": { + "time": { + "type": [ + "null", + "date-time" + ] + } + }, + "type": [ + "null", + "object" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "created_time": { + "type": [ + "null", + "date-time" + ] + }, + "last_modified_time": { + "type": [ + "null", + "date-time" + ] + }, + "role": { + "type": [ + "null", + "string" + ] + }, + "user": { + "type": [ + "null", + "string" + ] + }, + "user_person_id": { + "type": [ + "null", + "string" + ] + } + }, + "type": [ + "null", + "object" + ] +} \ No newline at end of file diff --git a/_data/taps/schemas/linkedin-ads/v3/json/accounts.json b/_data/taps/schemas/linkedin-ads/v3/json/accounts.json new file mode 100644 index 000000000..b34feea53 --- /dev/null +++ b/_data/taps/schemas/linkedin-ads/v3/json/accounts.json @@ -0,0 +1,199 @@ +{ + "additionalProperties": false, + "properties": { + "change_audit_stamps": { + "additionalProperties": false, + "properties": { + "created": { + "additionalProperties": false, + "properties": { + "time": { + "type": [ + "null", + "date-time" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "last_modified": { + "additionalProperties": false, + "properties": { + "time": { + "type": [ + "null", + "date-time" + ] + } + }, + "type": [ + "null", + "object" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "created_time": { + "type": [ + "null", + "date-time" + ] + }, + "currency": { + "type": [ + "null", + "string" + ] + }, + "id": { + "type": [ + "null", + "integer" + ] + }, + "last_modified_time": { + "type": [ + "null", + "date-time" + ] + }, + "name": { + "type": [ + "null", + "string" + ] + }, + "notified_on_campaign_optimization": { + "type": [ + "null", + "boolean" + ] + }, + "notified_on_creative_approval": { + "type": [ + "null", + "boolean" + ] + }, + "notified_on_creative_rejection": { + "type": [ + "null", + "boolean" + ] + }, + "notified_on_end_of_campaign": { + "type": [ + "null", + "boolean" + ] + }, + "notified_on_new_features_enabled": { + "type": [ + "null", + "boolean" + ] + }, + "reference": { + "type": [ + "null", + "string" + ] + }, + "reference_organization_id": { + "type": [ + "null", + "integer" + ] + }, + "reference_person_id": { + "type": [ + "null", + "string" + ] + }, + "serving_statuses": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "status": { + "type": [ + "null", + "string" + ] + }, + "test": { + "type": [ + "null", + "boolean" + ] + }, + "total_budget": { + "additionalProperties": false, + "properties": { + "amount": { + "type": [ + "null", + "number" + ] + }, + "currency_code": { + "type": [ + "null", + "string" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "total_budget_ends_at": { + "type": [ + "null", + "date-time" + ] + }, + "type": { + "type": [ + "null", + "string" + ] + }, + "version": { + "additionalProperties": false, + "properties": { + "version_tag": { + "type": [ + "null", + "string" + ] + } + }, + "type": [ + "null", + "object" + ] + } + }, + "type": [ + "null", + "object" + ] +} \ No newline at end of file diff --git a/_data/taps/schemas/linkedin-ads/v3/json/ad_analytics_by_campaign.json b/_data/taps/schemas/linkedin-ads/v3/json/ad_analytics_by_campaign.json new file mode 100644 index 000000000..b7b7f5577 --- /dev/null +++ b/_data/taps/schemas/linkedin-ads/v3/json/ad_analytics_by_campaign.json @@ -0,0 +1,754 @@ +{ + "additionalProperties": false, + "properties": { + "action_clicks": { + "type": [ + "null", + "integer" + ] + }, + "ad_unit_clicks": { + "type": [ + "null", + "integer" + ] + }, + "approximate_unique_impressions": { + "type": [ + "null", + "integer" + ] + }, + "average_daily_reach_metrics": { + "additionalProperties": false, + "properties": { + "approximate_cost_in_currency_per_thousand_members_reached": { + "type": [ + "null", + "number" + ] + }, + "approximate_frequency": { + "type": [ + "null", + "number" + ] + }, + "approximate_reach": { + "type": [ + "null", + "number" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "average_previous_seven_day_reach_metrics": { + "additionalProperties": false, + "properties": { + "approximate_cost_in_currency_per_thousand_members_reached": { + "type": [ + "null", + "number" + ] + }, + "approximate_frequency": { + "type": [ + "null", + "number" + ] + }, + "approximate_reach": { + "type": [ + "null", + "number" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "average_previous_thirty_day_reach_metrics": { + "additionalProperties": false, + "properties": { + "approximate_cost_in_currency_per_thousand_members_reached": { + "type": [ + "null", + "number" + ] + }, + "approximate_frequency": { + "type": [ + "null", + "number" + ] + }, + "approximate_reach": { + "type": [ + "null", + "number" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "campaign": { + "type": [ + "null", + "string" + ] + }, + "campaign_id": { + "type": [ + "null", + "integer" + ] + }, + "card_clicks": { + "type": [ + "null", + "integer" + ] + }, + "card_impressions": { + "type": [ + "null", + "integer" + ] + }, + "clicks": { + "type": [ + "null", + "integer" + ] + }, + "comment_likes": { + "type": [ + "null", + "integer" + ] + }, + "comments": { + "type": [ + "null", + "integer" + ] + }, + "company_page_clicks": { + "type": [ + "null", + "integer" + ] + }, + "conversion_value_in_local_currency": { + "type": [ + "null", + "number" + ] + }, + "cost_in_local_currency": { + "type": [ + "null", + "number" + ] + }, + "cost_in_usd": { + "type": [ + "null", + "number" + ] + }, + "date_range": { + "additionalProperties": false, + "properties": { + "end": { + "additionalProperties": false, + "properties": { + "day": { + "type": [ + "null", + "integer" + ] + }, + "month": { + "type": [ + "null", + "integer" + ] + }, + "year": { + "type": [ + "null", + "integer" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "start": { + "additionalProperties": false, + "properties": { + "day": { + "type": [ + "null", + "integer" + ] + }, + "month": { + "type": [ + "null", + "integer" + ] + }, + "year": { + "type": [ + "null", + "integer" + ] + } + }, + "type": [ + "null", + "object" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "document_completions": { + "type": [ + "null", + "integer" + ] + }, + "document_first_quartile_completions": { + "type": [ + "null", + "integer" + ] + }, + "document_midpoint_completions": { + "type": [ + "null", + "integer" + ] + }, + "document_third_quartile_completions": { + "type": [ + "null", + "integer" + ] + }, + "download_clicks": { + "type": [ + "null", + "integer" + ] + }, + "end_at": { + "type": [ + "null", + "date-time" + ] + }, + "external_website_conversions": { + "type": [ + "null", + "integer" + ] + }, + "external_website_post_click_conversions": { + "type": [ + "null", + "integer" + ] + }, + "external_website_post_view_conversions": { + "type": [ + "null", + "integer" + ] + }, + "follows": { + "type": [ + "null", + "integer" + ] + }, + "full_screen_plays": { + "type": [ + "null", + "integer" + ] + }, + "impressions": { + "type": [ + "null", + "integer" + ] + }, + "job_applications": { + "type": [ + "null", + "number" + ] + }, + "job_apply_clicks": { + "type": [ + "null", + "number" + ] + }, + "landing_page_clicks": { + "type": [ + "null", + "integer" + ] + }, + "lead_generation_mail_contact_info_shares": { + "type": [ + "null", + "integer" + ] + }, + "lead_generation_mail_interested_clicks": { + "type": [ + "null", + "integer" + ] + }, + "likes": { + "type": [ + "null", + "integer" + ] + }, + "one_click_lead_form_opens": { + "type": [ + "null", + "integer" + ] + }, + "one_click_leads": { + "type": [ + "null", + "integer" + ] + }, + "opens": { + "type": [ + "null", + "integer" + ] + }, + "other_engagements": { + "type": [ + "null", + "integer" + ] + }, + "pivot": { + "type": [ + "null", + "string" + ] + }, + "pivot_value": { + "type": [ + "null", + "string" + ] + }, + "pivot_values": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "post_click_job_applications": { + "type": [ + "null", + "number" + ] + }, + "post_click_job_apply_clicks": { + "type": [ + "null", + "number" + ] + }, + "post_click_registrations": { + "type": [ + "null", + "number" + ] + }, + "post_view_job_applications": { + "type": [ + "null", + "number" + ] + }, + "post_view_job_apply_clicks": { + "type": [ + "null", + "number" + ] + }, + "post_view_registrations": { + "type": [ + "null", + "number" + ] + }, + "reactions": { + "type": [ + "null", + "integer" + ] + }, + "registrations": { + "type": [ + "null", + "number" + ] + }, + "sends": { + "type": [ + "null", + "integer" + ] + }, + "shares": { + "type": [ + "null", + "integer" + ] + }, + "start_at": { + "type": [ + "null", + "date-time" + ] + }, + "talent_leads": { + "type": [ + "null", + "integer" + ] + }, + "text_url_clicks": { + "type": [ + "null", + "integer" + ] + }, + "total_engagements": { + "type": [ + "null", + "integer" + ] + }, + "video_completions": { + "type": [ + "null", + "integer" + ] + }, + "video_first_quartile_completions": { + "type": [ + "null", + "integer" + ] + }, + "video_midpoint_completions": { + "type": [ + "null", + "integer" + ] + }, + "video_starts": { + "type": [ + "null", + "integer" + ] + }, + "video_third_quartile_completions": { + "type": [ + "null", + "integer" + ] + }, + "video_views": { + "type": [ + "null", + "integer" + ] + }, + "viral_card_clicks": { + "type": [ + "null", + "integer" + ] + }, + "viral_card_impressions": { + "type": [ + "null", + "integer" + ] + }, + "viral_clicks": { + "type": [ + "null", + "integer" + ] + }, + "viral_comment_likes": { + "type": [ + "null", + "integer" + ] + }, + "viral_comments": { + "type": [ + "null", + "integer" + ] + }, + "viral_company_page_clicks": { + "type": [ + "null", + "integer" + ] + }, + "viral_document_completions": { + "type": [ + "null", + "integer" + ] + }, + "viral_document_first_quartile_completions": { + "type": [ + "null", + "integer" + ] + }, + "viral_document_midpoint_completions": { + "type": [ + "null", + "integer" + ] + }, + "viral_document_third_quartile_completions": { + "type": [ + "null", + "integer" + ] + }, + "viral_download_clicks": { + "type": [ + "null", + "integer" + ] + }, + "viral_external_website_conversions": { + "type": [ + "null", + "integer" + ] + }, + "viral_external_website_post_click_conversions": { + "type": [ + "null", + "integer" + ] + }, + "viral_external_website_post_view_conversions": { + "type": [ + "null", + "integer" + ] + }, + "viral_follows": { + "type": [ + "null", + "integer" + ] + }, + "viral_full_screen_plays": { + "type": [ + "null", + "integer" + ] + }, + "viral_impressions": { + "type": [ + "null", + "integer" + ] + }, + "viral_job_applications": { + "type": [ + "null", + "number" + ] + }, + "viral_job_apply_clicks": { + "type": [ + "null", + "number" + ] + }, + "viral_landing_page_clicks": { + "type": [ + "null", + "integer" + ] + }, + "viral_likes": { + "type": [ + "null", + "integer" + ] + }, + "viral_one_click_lead_form_opens": { + "type": [ + "null", + "integer" + ] + }, + "viral_one_click_leads": { + "type": [ + "null", + "integer" + ] + }, + "viral_other_engagements": { + "type": [ + "null", + "integer" + ] + }, + "viral_post_click_job_applications": { + "type": [ + "null", + "number" + ] + }, + "viral_post_click_job_apply_clicks": { + "type": [ + "null", + "number" + ] + }, + "viral_post_click_registrations": { + "type": [ + "null", + "number" + ] + }, + "viral_post_view_job_applications": { + "type": [ + "null", + "number" + ] + }, + "viral_post_view_job_apply_clicks": { + "type": [ + "null", + "number" + ] + }, + "viral_post_view_registrations": { + "type": [ + "null", + "number" + ] + }, + "viral_reactions": { + "type": [ + "null", + "integer" + ] + }, + "viral_registrations": { + "type": [ + "null", + "number" + ] + }, + "viral_shares": { + "type": [ + "null", + "integer" + ] + }, + "viral_total_engagements": { + "type": [ + "null", + "integer" + ] + }, + "viral_video_completions": { + "type": [ + "null", + "integer" + ] + }, + "viral_video_first_quartile_completions": { + "type": [ + "null", + "integer" + ] + }, + "viral_video_midpoint_completions": { + "type": [ + "null", + "integer" + ] + }, + "viral_video_starts": { + "type": [ + "null", + "integer" + ] + }, + "viral_video_third_quartile_completions": { + "type": [ + "null", + "integer" + ] + }, + "viral_video_views": { + "type": [ + "null", + "integer" + ] + } + }, + "type": [ + "null", + "object" + ] +} \ No newline at end of file diff --git a/_data/taps/schemas/linkedin-ads/v3/json/ad_analytics_by_creative.json b/_data/taps/schemas/linkedin-ads/v3/json/ad_analytics_by_creative.json new file mode 100644 index 000000000..d1307c70f --- /dev/null +++ b/_data/taps/schemas/linkedin-ads/v3/json/ad_analytics_by_creative.json @@ -0,0 +1,754 @@ +{ + "additionalProperties": false, + "properties": { + "action_clicks": { + "type": [ + "null", + "integer" + ] + }, + "ad_unit_clicks": { + "type": [ + "null", + "integer" + ] + }, + "approximate_unique_impressions": { + "type": [ + "null", + "integer" + ] + }, + "average_daily_reach_metrics": { + "additionalProperties": false, + "properties": { + "approximate_cost_in_currency_per_thousand_members_reached": { + "type": [ + "null", + "number" + ] + }, + "approximate_frequency": { + "type": [ + "null", + "number" + ] + }, + "approximate_reach": { + "type": [ + "null", + "number" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "average_previous_seven_day_reach_metrics": { + "additionalProperties": false, + "properties": { + "approximate_cost_in_currency_per_thousand_members_reached": { + "type": [ + "null", + "number" + ] + }, + "approximate_frequency": { + "type": [ + "null", + "number" + ] + }, + "approximate_reach": { + "type": [ + "null", + "number" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "average_previous_thirty_day_reach_metrics": { + "additionalProperties": false, + "properties": { + "approximate_cost_in_currency_per_thousand_members_reached": { + "type": [ + "null", + "number" + ] + }, + "approximate_frequency": { + "type": [ + "null", + "number" + ] + }, + "approximate_reach": { + "type": [ + "null", + "number" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "card_clicks": { + "type": [ + "null", + "integer" + ] + }, + "card_impressions": { + "type": [ + "null", + "integer" + ] + }, + "clicks": { + "type": [ + "null", + "integer" + ] + }, + "comment_likes": { + "type": [ + "null", + "integer" + ] + }, + "comments": { + "type": [ + "null", + "integer" + ] + }, + "company_page_clicks": { + "type": [ + "null", + "integer" + ] + }, + "conversion_value_in_local_currency": { + "type": [ + "null", + "number" + ] + }, + "cost_in_local_currency": { + "type": [ + "null", + "number" + ] + }, + "cost_in_usd": { + "type": [ + "null", + "number" + ] + }, + "creative": { + "type": [ + "null", + "string" + ] + }, + "creative_id": { + "type": [ + "null", + "integer" + ] + }, + "date_range": { + "additionalProperties": false, + "properties": { + "end": { + "additionalProperties": false, + "properties": { + "day": { + "type": [ + "null", + "integer" + ] + }, + "month": { + "type": [ + "null", + "integer" + ] + }, + "year": { + "type": [ + "null", + "integer" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "start": { + "additionalProperties": false, + "properties": { + "day": { + "type": [ + "null", + "integer" + ] + }, + "month": { + "type": [ + "null", + "integer" + ] + }, + "year": { + "type": [ + "null", + "integer" + ] + } + }, + "type": [ + "null", + "object" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "document_completions": { + "type": [ + "null", + "integer" + ] + }, + "document_first_quartile_completions": { + "type": [ + "null", + "integer" + ] + }, + "document_midpoint_completions": { + "type": [ + "null", + "integer" + ] + }, + "document_third_quartile_completions": { + "type": [ + "null", + "integer" + ] + }, + "download_clicks": { + "type": [ + "null", + "integer" + ] + }, + "end_at": { + "type": [ + "null", + "date-time" + ] + }, + "external_website_conversions": { + "type": [ + "null", + "integer" + ] + }, + "external_website_post_click_conversions": { + "type": [ + "null", + "integer" + ] + }, + "external_website_post_view_conversions": { + "type": [ + "null", + "integer" + ] + }, + "follows": { + "type": [ + "null", + "integer" + ] + }, + "full_screen_plays": { + "type": [ + "null", + "integer" + ] + }, + "impressions": { + "type": [ + "null", + "integer" + ] + }, + "job_applications": { + "type": [ + "null", + "number" + ] + }, + "job_apply_clicks": { + "type": [ + "null", + "number" + ] + }, + "landing_page_clicks": { + "type": [ + "null", + "integer" + ] + }, + "lead_generation_mail_contact_info_shares": { + "type": [ + "null", + "integer" + ] + }, + "lead_generation_mail_interested_clicks": { + "type": [ + "null", + "integer" + ] + }, + "likes": { + "type": [ + "null", + "integer" + ] + }, + "one_click_lead_form_opens": { + "type": [ + "null", + "integer" + ] + }, + "one_click_leads": { + "type": [ + "null", + "integer" + ] + }, + "opens": { + "type": [ + "null", + "integer" + ] + }, + "other_engagements": { + "type": [ + "null", + "integer" + ] + }, + "pivot": { + "type": [ + "null", + "string" + ] + }, + "pivot_value": { + "type": [ + "null", + "string" + ] + }, + "pivot_values": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "post_click_job_applications": { + "type": [ + "null", + "number" + ] + }, + "post_click_job_apply_clicks": { + "type": [ + "null", + "number" + ] + }, + "post_click_registrations": { + "type": [ + "null", + "number" + ] + }, + "post_view_job_applications": { + "type": [ + "null", + "number" + ] + }, + "post_view_job_apply_clicks": { + "type": [ + "null", + "number" + ] + }, + "post_view_registrations": { + "type": [ + "null", + "number" + ] + }, + "reactions": { + "type": [ + "null", + "integer" + ] + }, + "registrations": { + "type": [ + "null", + "number" + ] + }, + "sends": { + "type": [ + "null", + "integer" + ] + }, + "shares": { + "type": [ + "null", + "integer" + ] + }, + "start_at": { + "type": [ + "null", + "date-time" + ] + }, + "talent_leads": { + "type": [ + "null", + "integer" + ] + }, + "text_url_clicks": { + "type": [ + "null", + "integer" + ] + }, + "total_engagements": { + "type": [ + "null", + "integer" + ] + }, + "video_completions": { + "type": [ + "null", + "integer" + ] + }, + "video_first_quartile_completions": { + "type": [ + "null", + "integer" + ] + }, + "video_midpoint_completions": { + "type": [ + "null", + "integer" + ] + }, + "video_starts": { + "type": [ + "null", + "integer" + ] + }, + "video_third_quartile_completions": { + "type": [ + "null", + "integer" + ] + }, + "video_views": { + "type": [ + "null", + "integer" + ] + }, + "viral_card_clicks": { + "type": [ + "null", + "integer" + ] + }, + "viral_card_impressions": { + "type": [ + "null", + "integer" + ] + }, + "viral_clicks": { + "type": [ + "null", + "integer" + ] + }, + "viral_comment_likes": { + "type": [ + "null", + "integer" + ] + }, + "viral_comments": { + "type": [ + "null", + "integer" + ] + }, + "viral_company_page_clicks": { + "type": [ + "null", + "integer" + ] + }, + "viral_document_completions": { + "type": [ + "null", + "integer" + ] + }, + "viral_document_first_quartile_completions": { + "type": [ + "null", + "integer" + ] + }, + "viral_document_midpoint_completions": { + "type": [ + "null", + "integer" + ] + }, + "viral_document_third_quartile_completions": { + "type": [ + "null", + "integer" + ] + }, + "viral_download_clicks": { + "type": [ + "null", + "integer" + ] + }, + "viral_external_website_conversions": { + "type": [ + "null", + "integer" + ] + }, + "viral_external_website_post_click_conversions": { + "type": [ + "null", + "integer" + ] + }, + "viral_external_website_post_view_conversions": { + "type": [ + "null", + "integer" + ] + }, + "viral_follows": { + "type": [ + "null", + "integer" + ] + }, + "viral_full_screen_plays": { + "type": [ + "null", + "integer" + ] + }, + "viral_impressions": { + "type": [ + "null", + "integer" + ] + }, + "viral_job_applications": { + "type": [ + "null", + "number" + ] + }, + "viral_job_apply_clicks": { + "type": [ + "null", + "number" + ] + }, + "viral_landing_page_clicks": { + "type": [ + "null", + "integer" + ] + }, + "viral_likes": { + "type": [ + "null", + "integer" + ] + }, + "viral_one_click_lead_form_opens": { + "type": [ + "null", + "integer" + ] + }, + "viral_one_click_leads": { + "type": [ + "null", + "integer" + ] + }, + "viral_other_engagements": { + "type": [ + "null", + "integer" + ] + }, + "viral_post_click_job_applications": { + "type": [ + "null", + "number" + ] + }, + "viral_post_click_job_apply_clicks": { + "type": [ + "null", + "number" + ] + }, + "viral_post_click_registrations": { + "type": [ + "null", + "number" + ] + }, + "viral_post_view_job_applications": { + "type": [ + "null", + "number" + ] + }, + "viral_post_view_job_apply_clicks": { + "type": [ + "null", + "number" + ] + }, + "viral_post_view_registrations": { + "type": [ + "null", + "number" + ] + }, + "viral_reactions": { + "type": [ + "null", + "integer" + ] + }, + "viral_registrations": { + "type": [ + "null", + "integer" + ] + }, + "viral_shares": { + "type": [ + "null", + "integer" + ] + }, + "viral_total_engagements": { + "type": [ + "null", + "integer" + ] + }, + "viral_video_completions": { + "type": [ + "null", + "integer" + ] + }, + "viral_video_first_quartile_completions": { + "type": [ + "null", + "integer" + ] + }, + "viral_video_midpoint_completions": { + "type": [ + "null", + "integer" + ] + }, + "viral_video_starts": { + "type": [ + "null", + "integer" + ] + }, + "viral_video_third_quartile_completions": { + "type": [ + "null", + "integer" + ] + }, + "viral_video_views": { + "type": [ + "null", + "integer" + ] + } + }, + "type": [ + "null", + "object" + ] +} \ No newline at end of file diff --git a/_data/taps/schemas/linkedin-ads/v3/json/campaign_groups.json b/_data/taps/schemas/linkedin-ads/v3/json/campaign_groups.json new file mode 100644 index 000000000..2c7f0819d --- /dev/null +++ b/_data/taps/schemas/linkedin-ads/v3/json/campaign_groups.json @@ -0,0 +1,169 @@ +{ + "additionalProperties": false, + "properties": { + "account": { + "type": [ + "null", + "string" + ] + }, + "account_id": { + "type": [ + "null", + "integer" + ] + }, + "allowed_campaign_types": { + "items": { + "type": [ + "null", + "string" + ] + }, + "type": [ + "null", + "array" + ] + }, + "backfilled": { + "type": [ + "null", + "boolean" + ] + }, + "change_audit_stamps": { + "additionalProperties": false, + "properties": { + "created": { + "additionalProperties": false, + "properties": { + "time": { + "type": [ + "null", + "date-time" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "last_modified": { + "additionalProperties": false, + "properties": { + "time": { + "type": [ + "null", + "date-time" + ] + } + }, + "type": [ + "null", + "object" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "created_time": { + "type": [ + "null", + "date-time" + ] + }, + "id": { + "type": [ + "null", + "integer" + ] + }, + "last_modified_time": { + "type": [ + "null", + "date-time" + ] + }, + "name": { + "type": [ + "null", + "string" + ] + }, + "run_schedule": { + "additionalProperties": false, + "properties": { + "end": { + "type": [ + "null", + "date-time" + ] + }, + "start": { + "type": [ + "null", + "date-time" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "serving_statuses": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "status": { + "type": [ + "null", + "string" + ] + }, + "test": { + "type": [ + "null", + "boolean" + ] + }, + "total_budget": { + "additionalProperties": false, + "properties": { + "amount": { + "type": [ + "null", + "number" + ] + }, + "currency_code": { + "type": [ + "null", + "string" + ] + } + }, + "type": [ + "null", + "object" + ] + } + }, + "type": [ + "null", + "object" + ] +} \ No newline at end of file diff --git a/_data/taps/schemas/linkedin-ads/v3/json/campaigns.json b/_data/taps/schemas/linkedin-ads/v3/json/campaigns.json new file mode 100644 index 000000000..70b7c8dc8 --- /dev/null +++ b/_data/taps/schemas/linkedin-ads/v3/json/campaigns.json @@ -0,0 +1,590 @@ +{ + "additionalProperties": false, + "properties": { + "account": { + "type": [ + "null", + "string" + ] + }, + "account_id": { + "type": [ + "null", + "integer" + ] + }, + "associated_entity": { + "type": [ + "null", + "string" + ] + }, + "associated_entity_organization_id": { + "type": [ + "null", + "integer" + ] + }, + "associated_entity_person_id": { + "type": [ + "null", + "string" + ] + }, + "audience_expansion_enabled": { + "type": [ + "null", + "boolean" + ] + }, + "campaign_group": { + "type": [ + "null", + "string" + ] + }, + "campaign_group_id": { + "type": [ + "null", + "integer" + ] + }, + "change_audit_stamps": { + "additionalProperties": false, + "properties": { + "created": { + "additionalProperties": false, + "properties": { + "time": { + "type": [ + "null", + "date-time" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "last_modified": { + "additionalProperties": false, + "properties": { + "time": { + "type": [ + "null", + "date-time" + ] + } + }, + "type": [ + "null", + "object" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "cost_type": { + "type": [ + "null", + "string" + ] + }, + "created_time": { + "type": [ + "null", + "date-time" + ] + }, + "creative_selection": { + "type": [ + "null", + "string" + ] + }, + "daily_budget": { + "additionalProperties": false, + "properties": { + "amount": { + "type": [ + "null", + "number" + ] + }, + "currency_code": { + "type": [ + "null", + "string" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "format": { + "type": [ + "null", + "string" + ] + }, + "id": { + "type": [ + "null", + "integer" + ] + }, + "last_modified_time": { + "type": [ + "null", + "date-time" + ] + }, + "locale": { + "additionalProperties": false, + "properties": { + "country": { + "type": [ + "null", + "string" + ] + }, + "language": { + "type": [ + "null", + "string" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "name": { + "type": [ + "null", + "string" + ] + }, + "objective_type": { + "type": [ + "null", + "string" + ] + }, + "offsite_delivery_enabled": { + "type": [ + "null", + "boolean" + ] + }, + "offsite_preferences": { + "additionalProperties": false, + "properties": { + "iab_categories": { + "additionalProperties": false, + "properties": { + "exclude": { + "additionalProperties": false, + "items": { + "type": [ + "null", + "string" + ] + }, + "type": [ + "null", + "array" + ] + }, + "include": { + "additionalProperties": false, + "items": { + "type": [ + "null", + "string" + ] + }, + "type": [ + "null", + "array" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "publisher_restriction_files": { + "additionalProperties": false, + "properties": { + "exclude": { + "additionalProperties": false, + "items": { + "type": [ + "null", + "string" + ] + }, + "type": [ + "null", + "array" + ] + } + }, + "type": [ + "null", + "object" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "optimization_target_type": { + "type": [ + "null", + "string" + ] + }, + "pacing_strategy": { + "type": [ + "null", + "string" + ] + }, + "run_schedule": { + "additionalProperties": false, + "properties": { + "end": { + "type": [ + "null", + "date-time" + ] + }, + "start": { + "type": [ + "null", + "date-time" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "serving_statuses": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "status": { + "type": [ + "null", + "string" + ] + }, + "targeting": { + "additionalProperties": false, + "properties": { + "excluded_targeting_facets": { + "anyOf": [ + { + "items": { + "additionalProperties": false, + "properties": { + "type": { + "type": [ + "null", + "string" + ] + }, + "values": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "included_targeting_facets": { + "anyOf": [ + { + "items": { + "additionalProperties": false, + "properties": { + "type": { + "type": [ + "null", + "string" + ] + }, + "values": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "type": "array" + }, + { + "type": "null" + } + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "targeting_criteria": { + "additionalProperties": false, + "properties": { + "exclude": { + "properties": { + "or": { + "properties": { + "urn:li:ad_targeting_facet:followed_companies": { + "items": { + "type": [ + "null", + "string" + ] + }, + "type": [ + "null", + "array" + ] + }, + "urn:li:ad_targeting_facet:seniorities": { + "items": { + "type": [ + "null", + "string" + ] + }, + "type": [ + "null", + "array" + ] + }, + "urn:li:ad_targeting_facet:staff_count_ranges": { + "items": { + "type": [ + "null", + "string" + ] + }, + "type": [ + "null", + "array" + ] + }, + "urn:li:ad_targeting_facet:titles": { + "items": { + "type": [ + "null", + "string" + ] + }, + "type": [ + "null", + "array" + ] + } + }, + "type": [ + "null", + "object" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "include": { + "additionalProperties": false, + "properties": { + "and": { + "anyOf": [ + { + "items": { + "additionalProperties": false, + "properties": { + "type": { + "type": [ + "null", + "string" + ] + }, + "values": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "type": "array" + }, + { + "type": "null" + } + ] + } + }, + "type": [ + "null", + "object" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "test": { + "type": [ + "null", + "boolean" + ] + }, + "total_budget": { + "additionalProperties": false, + "properties": { + "amount": { + "type": [ + "null", + "number" + ] + }, + "currency_code": { + "type": [ + "null", + "string" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "type": { + "type": [ + "null", + "string" + ] + }, + "unit_cost": { + "additionalProperties": false, + "properties": { + "amount": { + "type": [ + "null", + "number" + ] + }, + "currency_code": { + "type": [ + "null", + "string" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "version": { + "additionalProperties": false, + "properties": { + "version_tag": { + "type": [ + "null", + "string" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "version_tag": { + "type": [ + "null", + "string" + ] + } + }, + "type": [ + "null", + "object" + ] +} \ No newline at end of file diff --git a/_data/taps/schemas/linkedin-ads/v3/json/creatives.json b/_data/taps/schemas/linkedin-ads/v3/json/creatives.json new file mode 100644 index 000000000..bdc32f8c7 --- /dev/null +++ b/_data/taps/schemas/linkedin-ads/v3/json/creatives.json @@ -0,0 +1,135 @@ +{ + "additionalProperties": false, + "properties": { + "account": { + "type": [ + "null", + "string" + ] + }, + "account_id": { + "type": [ + "null", + "integer" + ] + }, + "campaign": { + "type": [ + "null", + "string" + ] + }, + "campaign_id": { + "type": [ + "null", + "integer" + ] + }, + "content": { + "additionalProperties": false, + "properties": { + "reference": { + "type": [ + "null", + "string" + ] + }, + "text_ad": { + "additionalProperties": false, + "properties": { + "description": { + "type": [ + "null", + "string" + ] + }, + "headline": { + "type": [ + "null", + "string" + ] + }, + "landing_page": { + "type": [ + "null", + "string" + ] + } + }, + "type": [ + "null", + "object" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "created_at": { + "type": [ + "null", + "date-time" + ] + }, + "created_by": { + "type": [ + "null", + "string" + ] + }, + "id": { + "type": [ + "null", + "string" + ] + }, + "intended_status": { + "type": [ + "null", + "string" + ] + }, + "is_serving": { + "type": [ + "null", + "boolean" + ] + }, + "is_test": { + "type": [ + "null", + "boolean" + ] + }, + "last_modified_at": { + "type": [ + "null", + "date-time" + ] + }, + "last_modified_by": { + "type": [ + "null", + "string" + ] + }, + "serving_hold_reasons": { + "items": { + "type": [ + "null", + "string" + ] + }, + "type": [ + "null", + "array" + ] + } + }, + "type": [ + "null", + "object" + ] +} \ No newline at end of file diff --git a/_data/taps/schemas/linkedin-ads/v3/json/video_ads.json b/_data/taps/schemas/linkedin-ads/v3/json/video_ads.json new file mode 100644 index 000000000..8e445d32b --- /dev/null +++ b/_data/taps/schemas/linkedin-ads/v3/json/video_ads.json @@ -0,0 +1,96 @@ +{ + "additionalProperties": false, + "properties": { + "account": { + "type": [ + "null", + "string" + ] + }, + "account_id": { + "type": [ + "null", + "integer" + ] + }, + "ad_context": { + "additionalProperties": false, + "properties": { + "dsc_ad_account": { + "type": [ + "null", + "string" + ] + }, + "dsc_ad_type": { + "type": [ + "null", + "string" + ] + }, + "dsc_name": { + "type": [ + "null", + "string" + ] + }, + "dsc_status": { + "type": [ + "null", + "string" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "author": { + "type": [ + "null", + "string" + ] + }, + "created_at": { + "type": [ + "null", + "date-time" + ] + }, + "id": { + "type": [ + "null", + "string" + ] + }, + "last_modified_at": { + "type": [ + "null", + "date-time" + ] + }, + "name": { + "type": [ + "null", + "string" + ] + }, + "status": { + "type": [ + "null", + "string" + ] + }, + "type": { + "type": [ + "null", + "string" + ] + } + }, + "type": [ + "null", + "object" + ] +} \ No newline at end of file diff --git a/_data/taps/schemas/linkedin-ads/v3/linkedin-ads-v3-foreign-keys.yml b/_data/taps/schemas/linkedin-ads/v3/linkedin-ads-v3-foreign-keys.yml new file mode 100644 index 000000000..ac9694e11 --- /dev/null +++ b/_data/taps/schemas/linkedin-ads/v3/linkedin-ads-v3-foreign-keys.yml @@ -0,0 +1,188 @@ +tap: linkedin-ads +version: '2' +keys: + accounts_id: + - table: account_users + keys: + - account_id + - table: accounts + keys: + - id + - table: campaigns + keys: + - account_id + - table: campaign_groups + keys: + - account_id + - table: video_ads + keys: + - account_id + _: + - table: video_ads + keys: + - owner_organization_id + account_users_user_person_id: + - table: account_users + keys: + - user_person_id + campaign_groups_id: + - table: campaign_groups + keys: + - id + - table: campaigns + keys: + - campaign_group_id + campaigns_id: + - table: campaigns + keys: + - id + - table: creatives + keys: + - campaign_id + - table: ad_analytics_by_campaign + keys: + - campaign_id + creatives_id: + - table: creatives + keys: + - id + - table: ad_analytics_by_creative + keys: + - creative_id + video_ads_content_reference: + - table: video_ads + keys: + - content_reference +tables: +- table-name: account_users + join: + - table-name: accounts + keys: + - key: account_id + foreign-key: id + - table-name: campaigns + keys: + - key: account_id + foreign-key: account_id + - table-name: campaign_groups + keys: + - key: account_id + foreign-key: account_id + - table-name: video_ads + keys: + - key: account_id + foreign-key: account_id +- table-name: accounts + join: + - table-name: account_users + keys: + - key: id + foreign-key: account_id + - table-name: campaigns + keys: + - key: id + foreign-key: account_id + - table-name: campaign_groups + keys: + - key: id + foreign-key: account_id + - table-name: video_ads + keys: + - key: id + foreign-key: account_id +- table-name: campaigns + join: + - table-name: account_users + keys: + - key: account_id + foreign-key: account_id + - table-name: accounts + keys: + - key: account_id + foreign-key: id + - table-name: campaign_groups + keys: + - key: account_id + foreign-key: account_id + - key: campaign_group_id + foreign-key: id + - table-name: video_ads + keys: + - key: account_id + foreign-key: account_id + - table-name: creatives + keys: + - key: id + foreign-key: campaign_id + - table-name: ad_analytics_by_campaign + keys: + - key: id + foreign-key: campaign_id +- table-name: campaign_groups + join: + - table-name: account_users + keys: + - key: account_id + foreign-key: account_id + - table-name: accounts + keys: + - key: account_id + foreign-key: id + - table-name: campaigns + keys: + - key: account_id + foreign-key: account_id + - key: id + foreign-key: campaign_group_id + - table-name: video_ads + keys: + - key: account_id + foreign-key: account_id +- table-name: video_ads + join: + - table-name: account_users + keys: + - key: account_id + foreign-key: account_id + - table-name: accounts + keys: + - key: account_id + foreign-key: id + - table-name: campaigns + keys: + - key: account_id + foreign-key: account_id + - table-name: campaign_groups + keys: + - key: account_id + foreign-key: account_id +- table-name: creatives + join: + - table-name: campaigns + keys: + - key: campaign_id + foreign-key: id + - table-name: ad_analytics_by_campaign + keys: + - key: campaign_id + foreign-key: campaign_id + - table-name: ad_analytics_by_creative + keys: + - key: id + foreign-key: creative_id +- table-name: ad_analytics_by_campaign + join: + - table-name: campaigns + keys: + - key: campaign_id + foreign-key: id + - table-name: creatives + keys: + - key: campaign_id + foreign-key: campaign_id +- table-name: ad_analytics_by_creative + join: + - table-name: creatives + keys: + - key: creative_id + foreign-key: id diff --git a/_data/taps/schemas/linkedin-ads/v3/linkedin-ads-v3-tables.yml b/_data/taps/schemas/linkedin-ads/v3/linkedin-ads-v3-tables.yml new file mode 100644 index 000000000..3fd624e3d --- /dev/null +++ b/_data/taps/schemas/linkedin-ads/v3/linkedin-ads-v3-tables.yml @@ -0,0 +1,112 @@ +tap: linkedin-ads +version: '2' +tap-repo-schemas: true +tables: +- name: accounts + description: 'The `{{ table.name }}` table contains info about your {{ integration.display_name + }} ad accounts. + + ' + links: + singer-schema: https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/accounts.json + api-method: https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-accounts?view=li-lms-2022-07&tabs=http#search-for-accounts + table-details: + replication-method: Key-based Incremental + primary-key: id + replication-key: last_modified_time +- name: account_users + description: 'The `{{ table.name }}` table contains info about the users who have + permissions to an ad account. + + ' + links: + singer-schema: https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/account_users.json + api-method: https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-account-users?view=li-lms-2022-07&tabs=http#find-ad-account-users-by-accounts + table-details: + replication-method: Key-based Incremental + primary-keys: + - account_id + - user_person_id + replication-key: last_modified_time +- name: ad_analytics_by_campaign + description: 'The `{{ table.name }}` table contains analytics data for ads, segmented + by campaign. + + + **Note**: This table is replicated using an attribution window of {{ integration.attribution-window + }}. Refer to the [Replication](#replication) section for more info. + + ' + links: + singer-schema: https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/ad_analytics_by_campaign.json + api-method: https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads-reporting/ads-reporting?view=li-lms-2022-07&tabs=http#analytics-finder + table-details: + replication-method: Key-based Incremental + primary-keys: + - campaign_id + - start_at + replication-key: end_at +- name: ad_analytics_by_creative + description: 'The `{{ table.name }}` table contains info about ad analytics, segmented + by creative. + + + **Note**: This table is replicated using an attribution window of {{ integration.attribution-window + }}. Refer to the [Replication](#replication) section for more info. + + ' + links: + singer-schema: https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/ad_analytics_by_creative.json + api-method: https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads-reporting/ads-reporting?view=li-lms-2022-07&tabs=http#analytics-finder + table-details: + replication-method: Key-based Incremental + primary-keys: + - creative_id + - start_at + replication-key: end_at +- name: campaigns + description: 'The `{{ table.name }}` table contains info about the campaigns in + your {{ integration.display_name }} account. + + ' + links: + singer-schema: https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/campaigns.json + api-method: https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-campaigns?view=li-lms-2022-07&tabs=http#search-for-campaigns + table-details: + replication-method: Key-based Incremental + primary-key: id + replication-key: last_modified_time +- name: campaign_groups + description: 'The `{{ table.name }}` table contains info about the campaign groups + in your {{ integration.display_name }} account. + + ' + links: + singer-schema: https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/campaign_groups.json + api-method: https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-campaign-groups?view=li-lms-2022-07&tabs=http#search-for-campaign-groups + table-details: + replication-method: Key-based Incremental + primary-key: id + replication-key: last_modified_time +- name: creatives + description: The Creatives API contains all the data and information for visually + rendering an ad. + links: + doc-link: https://learn.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-creatives?view=li-lms-2023-01&tabs=http#search-for-creatives + singer-schema: https://github.com/singer-io/tap-linkedin-ads/tree/master/tap_linkedin_ads/schemas/creatives.json + table-details: + replication-method: Key-based Incremental + primary-key: id + replication-key: last_modified_at +- name: video_ads + description: 'The `{{ table.name }}` table contains info about the video ads in + your {{ integration.display_name }} account. + + ' + links: + singer-schema: https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/video_ads.json + api-method: https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/advertising-targeting/create-and-manage-video?view=li-lms-unversioned&tabs=http&viewFallbackFrom=li-lms-2022-07#finders + table-details: + replication-method: Key-based Incremental + primary-key: id + replication-key: last_modified_at From a016039b9c2d8e902941a73ee33a96076d9edba5 Mon Sep 17 00:00:00 2001 From: Lucie Milan Date: Mon, 4 Dec 2023 11:39:10 +0100 Subject: [PATCH 7/7] fixed versions --- .../schemas/linkedin-ads/v3/linkedin-ads-v3-foreign-keys.yml | 2 +- _data/taps/schemas/linkedin-ads/v3/linkedin-ads-v3-tables.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/_data/taps/schemas/linkedin-ads/v3/linkedin-ads-v3-foreign-keys.yml b/_data/taps/schemas/linkedin-ads/v3/linkedin-ads-v3-foreign-keys.yml index ac9694e11..5de6810b9 100644 --- a/_data/taps/schemas/linkedin-ads/v3/linkedin-ads-v3-foreign-keys.yml +++ b/_data/taps/schemas/linkedin-ads/v3/linkedin-ads-v3-foreign-keys.yml @@ -1,5 +1,5 @@ tap: linkedin-ads -version: '2' +version: '3' keys: accounts_id: - table: account_users diff --git a/_data/taps/schemas/linkedin-ads/v3/linkedin-ads-v3-tables.yml b/_data/taps/schemas/linkedin-ads/v3/linkedin-ads-v3-tables.yml index 3fd624e3d..dd7ec6958 100644 --- a/_data/taps/schemas/linkedin-ads/v3/linkedin-ads-v3-tables.yml +++ b/_data/taps/schemas/linkedin-ads/v3/linkedin-ads-v3-tables.yml @@ -1,5 +1,5 @@ tap: linkedin-ads -version: '2' +version: '3' tap-repo-schemas: true tables: - name: accounts