{"sourceDefinitionId": "253487c0-2246-43ba-a21f-5116b20a2c50", "name": "Google Ads", "dockerRepository": "airbyte/source-google-ads", "dockerImageTag": "4.1.6-preview.6a49204", "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-ads", "icon": "google-adwords.svg", "iconUrl": "https://connectors.airbyte.com/files/metadata/airbyte/source-google-ads/latest/icon.svg", "sourceType": "api", "spec": {"connectionSpecification": {"$schema": "http://json-schema.org/draft-07/schema#", "title": "Google Ads Spec", "type": "object", "required": ["credentials"], "additionalProperties": true, "properties": {"credentials": {"type": "object", "description": "", "title": "Google Credentials", "order": 0, "required": ["developer_token", "client_id", "client_secret", "refresh_token"], "properties": {"developer_token": {"type": "string", "title": "Developer Token", "order": 0, "description": "The Developer Token granted by Google to use their APIs. For detailed instructions on finding this value, refer to our documentation.", "airbyte_secret": true}, "client_id": {"type": "string", "title": "Client ID", "order": 1, "description": "The Client ID of your Google Ads developer application. For detailed instructions on finding this value, refer to our documentation."}, "client_secret": {"type": "string", "title": "Client Secret", "order": 2, "description": "The Client Secret of your Google Ads developer application. For detailed instructions on finding this value, refer to our documentation.", "airbyte_secret": true}, "refresh_token": {"type": "string", "title": "Refresh Token", "order": 3, "description": "The token used to obtain a new Access Token. For detailed instructions on finding this value, refer to our documentation.", "airbyte_secret": true}, "access_token": {"type": "string", "title": "Access Token", "order": 4, "description": "The Access Token for making authenticated requests. For detailed instructions on finding this value, refer to our documentation.", "airbyte_secret": true}}}, "customer_id": {"title": "Customer ID(s)", "type": "string", "description": "Comma-separated list of (client) customer IDs. Each customer ID must be specified as a 10-digit number without dashes. For detailed instructions on finding this value, refer to our documentation.", "pattern": "^[0-9]{10}(,[0-9]{10})*$", "pattern_descriptor": "The customer ID must be 10 digits. Separate multiple customer IDs using commas.", "examples": ["6783948572,5839201945"], "order": 1}, "customer_status_filter": {"title": "Customer Statuses Filter", "description": "A list of customer statuses to filter on. For detailed info about what each status mean refer to Google Ads documentation.", "default": [], "order": 2, "type": "array", "items": {"title": "CustomerStatus", "description": "An enumeration.", "enum": ["UNKNOWN", "ENABLED", "CANCELED", "SUSPENDED", "CLOSED"]}}, "start_date": {"type": "string", "title": "Start Date", "description": "UTC date in the format YYYY-MM-DD. Any data before this date will not be replicated. (Default value of two years ago is used if not set)", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", "pattern_descriptor": "YYYY-MM-DD", "examples": ["2017-01-25"], "order": 3, "format": "date"}, "end_date": {"type": "string", "title": "End Date", "description": "UTC date in the format YYYY-MM-DD. Any data after this date will not be replicated. (Default value of today is used if not set)", "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}$", "pattern_descriptor": "YYYY-MM-DD", "examples": ["2017-01-30"], "order": 4, "format": "date"}, "custom_queries_array": {"type": "array", "title": "Custom GAQL Queries", "description": "", "order": 5, "items": {"type": "object", "required": ["query", "table_name"], "properties": {"query": {"type": "string", "multiline": true, "title": "Custom Query", "description": "A custom defined GAQL query for building the report. Avoid including the segments.date field; wherever possible, Airbyte will automatically include it for incremental syncs. For more information, refer to Google's documentation.", "examples": ["SELECT segments.ad_destination_type, campaign.advertising_channel_sub_type FROM campaign WHERE campaign.status = 'PAUSED'"]}, "table_name": {"type": "string", "title": "Destination Table Name", "description": "The table name in your destination database for the chosen query."}}}}, "conversion_window_days": {"title": "Conversion Window", "type": "integer", "description": "A conversion window is the number of days after an ad interaction (such as an ad click or video view) during which a conversion, such as a purchase, is recorded in Google Ads. For more information, see Google's documentation.", "minimum": 0, "maximum": 1095, "default": 14, "examples": [14], "order": 6}, "num_workers": {"type": "integer", "title": "Number of Concurrent Workers", "description": "The number of concurrent workers to use for syncing. Increasing this value may speed up syncs for accounts with many customers or streams. Adjust based on your API usage and rate limits.", "minimum": 2, "maximum": 25, "default": 3, "examples": [2, 3, 5], "order": 7}}}, "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-ads", "supportsNormalization": false, "supportsDBT": false, "advanced_auth": {"auth_flow_type": "oauth2.0", "oauth_config_specification": {"complete_oauth_output_specification": {"type": "object", "properties": {"access_token": {"type": "string", "path_in_connector_config": ["credentials", "access_token"]}, "refresh_token": {"type": "string", "path_in_connector_config": ["credentials", "refresh_token"]}}}, "complete_oauth_server_input_specification": {"type": "object", "properties": {"client_id": {"type": "string"}, "client_secret": {"type": "string"}}}, "complete_oauth_server_output_specification": {"type": "object", "properties": {"client_id": {"type": "string", "path_in_connector_config": ["credentials", "client_id"]}, "client_secret": {"type": "string", "path_in_connector_config": ["credentials", "client_secret"]}, "developer_token": {"type": "string", "path_in_connector_config": ["credentials", "developer_token"]}}}}}}, "tombstone": false, "public": true, "custom": false, "releaseStage": "generally_available", "supportLevel": "certified", "allowedHosts": {"hosts": ["accounts.google.com", "googleads.googleapis.com"]}, "suggestedStreams": {"streams": ["campaigns", "accounts", "ad_group_ads", "ad_group_ad_report", "ad_groups", "click_view", "account_performance_report", "keyword_report", "campaign_labels", "ad_group_labels", "ad_group_ad_labels", "user_location_report", "geographic_report", "display_keyword_performance_report", "shopping_performance_report", "display_topics_performance_report"]}, "maxSecondsBetweenMessages": 86400, "releases": {"rolloutConfiguration": {"enableProgressiveRollout": false, "initialPercentage": 0, "maxPercentage": 50, "advanceDelayMinutes": 10}, "breakingChanges": {"1.0.0": {"upgradeDeadline": "2023-10-31", "message": "This release introduces fixes to custom query schema creation. Users should refresh the source schema and reset affected streams after upgrading to ensure uninterrupted syncs.", "migrationDocumentationUrl": "https://docs.airbyte.com/integrations/sources/google-ads-migrations#1.0.0"}, "2.0.0": {"upgradeDeadline": "2023-11-30", "message": "This release updates the Source Google Ads connector so that its default streams and stream names match the related resources in Google Ads API. Users should refresh the source schema and reset affected streams after upgrading to ensure uninterrupted syncs.", "migrationDocumentationUrl": "https://docs.airbyte.com/integrations/sources/google-ads-migrations#2.0.0"}, "3.0.0": {"upgradeDeadline": "2024-01-12", "message": "Google is deprecating v13 of the Google Ads API in January. This release upgrades the Google Ads API to the latest version (v15), which causes changes in several schemas. Users should refresh the source schema and reset affected streams after upgrading to ensure uninterrupted syncs.", "migrationDocumentationUrl": "https://docs.airbyte.com/integrations/sources/google-ads-migrations#3.0.0"}, "4.0.0": {"upgradeDeadline": "2025-08-19", "message": "Google is deprecating v18 of the Google Ads API August 20. This release upgrades the Google Ads API to the latest version (v20), which causes changes in several schemas. Users should refresh the source schema and reset affected streams after upgrading to ensure uninterrupted syncs.", "migrationDocumentationUrl": "https://docs.airbyte.com/integrations/sources/google-ads-migrations#4.0.0"}}, "migrationDocumentationUrl": "https://docs.airbyte.com/integrations/sources/google-ads-migrations"}, "ab_internal": {"sl": 300, "ql": 400, "isEnterprise": false, "requireVersionIncrementsInPullRequests": true}, "generated": {"git": {"commit_sha": "5f04e53045cf22aa3fe829c5536f7bac51673291", "commit_timestamp": "2026-02-27T09:38:44+00:00", "commit_author": "Devin AI", "commit_author_email": "158243242+devin-ai-integration[bot]@users.noreply.github.com"}, "source_file_info": {"metadata_file_path": "metadata/airbyte/source-google-ads/4.1.6-preview.6a49204/metadata.yaml", "metadata_bucket_name": "prod-airbyte-cloud-connector-metadata-service", "metadata_last_modified": "2026-02-27T14:48:09.123000+00:00", "registry_entry_generated_at": "2026-02-27T14:49:13.788986"}, "sbomUrl": "https://connectors.airbyte.com/files/sbom/airbyte/source-google-ads/4.1.6-preview.6a49204.spdx.json"}, "packageInfo": {"cdk_version": "python:7.10.1.post4.dev22489445491"}, "language": "python", "supportsFileTransfer": false, "supportsDataActivation": false, "externalDocumentationUrls": [{"title": "Release notes", "type": "api_release_history", "url": "https://developers.google.com/google-ads/api/docs/release-notes"}, {"title": "Developer blog", "url": "https://ads-developers.googleblog.com/"}], "tags": ["language:python", "cdk:low-code"], "remoteRegistries": {"pypi": {"enabled": true, "packageName": "airbyte-source-google-ads"}}, "license": "Elv2", "connectorTestSuitesOptions": [{"suite": "unitTests"}, {"suite": "integrationTests", "testSecrets": [{"fileName": "config_click_view.json", "name": "SECRET_SOURCE-GOOGLE-ADS_CLICK_VIEW__CREDS", "secretStore": {"alias": "airbyte-connector-testing-secret-store", "type": "GSM"}}, {"fileName": "incremental_config.json", "name": "SECRET_SOURCE-GOOGLE-ADS_INCREMENTAL__CREDS", "secretStore": {"alias": "airbyte-connector-testing-secret-store", "type": "GSM"}}, {"fileName": "config_manager_account.json", "name": "SECRET_SOURCE-GOOGLE-ADS_MANAGER_ACCOUNT_CREDS", "secretStore": {"alias": "airbyte-connector-testing-secret-store", "type": "GSM"}}, {"fileName": "config.json", "name": "SECRET_SOURCE-GOOGLE-ADS__CREDS", "secretStore": {"alias": "airbyte-connector-testing-secret-store", "type": "GSM"}}]}, {"suite": "acceptanceTests", "testSecrets": [{"fileName": "config_click_view.json", "name": "SECRET_SOURCE-GOOGLE-ADS_CLICK_VIEW__CREDS", "secretStore": {"alias": "airbyte-connector-testing-secret-store", "type": "GSM"}}, {"fileName": "incremental_config.json", "name": "SECRET_SOURCE-GOOGLE-ADS_INCREMENTAL__CREDS", "secretStore": {"alias": "airbyte-connector-testing-secret-store", "type": "GSM"}}, {"fileName": "config_manager_account.json", "name": "SECRET_SOURCE-GOOGLE-ADS_MANAGER_ACCOUNT_CREDS", "secretStore": {"alias": "airbyte-connector-testing-secret-store", "type": "GSM"}}, {"fileName": "config.json", "name": "SECRET_SOURCE-GOOGLE-ADS__CREDS", "secretStore": {"alias": "airbyte-connector-testing-secret-store", "type": "GSM"}}]}], "connectorBuildOptions": {"baseImage": "docker.io/airbyte/python-connector-base:4.0.2@sha256:9fdb1888c4264cf6fee473649ecb593f56f58e5d0096a87ee0b231777e2e3e73"}, "githubIssueLabel": "source-google-ads"}