airbyte-source-google-search-console 1.4.0__py3-none-any.whl → 1.4.3__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (21) hide show
  1. {airbyte_source_google_search_console-1.4.0.dist-info → airbyte_source_google_search_console-1.4.3.dist-info}/METADATA +26 -12
  2. airbyte_source_google_search_console-1.4.3.dist-info/RECORD +26 -0
  3. source_google_search_console/schemas/search_analytics_all_fields.json +11 -0
  4. source_google_search_console/schemas/search_analytics_by_country.json +8 -0
  5. source_google_search_console/schemas/search_analytics_by_date.json +7 -0
  6. source_google_search_console/schemas/search_analytics_by_device.json +8 -0
  7. source_google_search_console/schemas/search_analytics_by_page.json +8 -0
  8. source_google_search_console/schemas/search_analytics_by_query.json +8 -0
  9. source_google_search_console/schemas/search_analytics_keyword_page_report.json +11 -0
  10. source_google_search_console/schemas/search_analytics_keyword_site_report_by_page.json +10 -0
  11. source_google_search_console/schemas/search_analytics_keyword_site_report_by_site.json +10 -0
  12. source_google_search_console/schemas/search_analytics_page_report.json +10 -0
  13. source_google_search_console/schemas/search_analytics_site_report_by_page.json +9 -0
  14. source_google_search_console/schemas/search_analytics_site_report_by_site.json +9 -0
  15. source_google_search_console/schemas/sitemaps.json +12 -0
  16. source_google_search_console/schemas/sites.json +2 -0
  17. source_google_search_console/source.py +1 -1
  18. source_google_search_console/streams.py +3 -3
  19. airbyte_source_google_search_console-1.4.0.dist-info/RECORD +0 -26
  20. {airbyte_source_google_search_console-1.4.0.dist-info → airbyte_source_google_search_console-1.4.3.dist-info}/WHEEL +0 -0
  21. {airbyte_source_google_search_console-1.4.0.dist-info → airbyte_source_google_search_console-1.4.3.dist-info}/entry_points.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: airbyte-source-google-search-console
3
- Version: 1.4.0
3
+ Version: 1.4.3
4
4
  Summary: Source implementation for Google Search Console.
5
5
  Home-page: https://airbyte.com
6
6
  License: Elv2
@@ -12,7 +12,7 @@ Classifier: Programming Language :: Python :: 3
12
12
  Classifier: Programming Language :: Python :: 3.9
13
13
  Classifier: Programming Language :: Python :: 3.10
14
14
  Classifier: Programming Language :: Python :: 3.11
15
- Requires-Dist: airbyte-cdk (>=0,<1)
15
+ Requires-Dist: airbyte-cdk (==0.90.0)
16
16
  Requires-Dist: google-api-python-client (==2.105.0)
17
17
  Requires-Dist: google-auth (==2.23.3)
18
18
  Project-URL: Documentation, https://docs.airbyte.com/integrations/sources/google-search-console
@@ -21,32 +21,33 @@ Description-Content-Type: text/markdown
21
21
 
22
22
  # Google-Search-Console source connector
23
23
 
24
-
25
24
  This is the repository for the Google-Search-Console source connector, written in Python.
26
25
  For information about how to use this connector within Airbyte, see [the documentation](https://docs.airbyte.com/integrations/sources/google-search-console).
27
26
 
28
27
  ## Local development
29
28
 
30
29
  ### Prerequisites
31
- * Python (~=3.9)
32
- * Poetry (~=1.7) - installation instructions [here](https://python-poetry.org/docs/#installation)
33
30
 
31
+ - Python (~=3.9)
32
+ - Poetry (~=1.7) - installation instructions [here](https://python-poetry.org/docs/#installation)
34
33
 
35
34
  ### Installing the connector
35
+
36
36
  From this connector directory, run:
37
+
37
38
  ```bash
38
39
  poetry install --with dev
39
40
  ```
40
41
 
41
-
42
42
  ### Create credentials
43
+
43
44
  **If you are a community contributor**, follow the instructions in the [documentation](https://docs.airbyte.com/integrations/sources/google-search-console)
44
45
  to generate the necessary credentials. Then create a file `secrets/config.json` conforming to the `source_google_search_console/spec.yaml` file.
45
46
  Note that any directory named `secrets` is gitignored across the entire Airbyte repo, so there is no danger of accidentally checking in sensitive information.
46
47
  See `sample_files/sample_config.json` for a sample config file.
47
48
 
48
-
49
49
  ### Locally running the connector
50
+
50
51
  ```
51
52
  poetry run source-google-search-console spec
52
53
  poetry run source-google-search-console check --config secrets/config.json
@@ -55,23 +56,28 @@ poetry run source-google-search-console read --config secrets/config.json --cata
55
56
  ```
56
57
 
57
58
  ### Running unit tests
59
+
58
60
  To run unit tests locally, from the connector directory run:
61
+
59
62
  ```
60
63
  poetry run pytest unit_tests
61
64
  ```
62
65
 
63
66
  ### Building the docker image
67
+
64
68
  1. Install [`airbyte-ci`](https://github.com/airbytehq/airbyte/blob/master/airbyte-ci/connectors/pipelines/README.md)
65
69
  2. Run the following command to build the docker image:
70
+
66
71
  ```bash
67
72
  airbyte-ci connectors --name=source-google-search-console build
68
73
  ```
69
74
 
70
75
  An image will be available on your host with the tag `airbyte/source-google-search-console:dev`.
71
76
 
72
-
73
77
  ### Running as a docker container
78
+
74
79
  Then run any of the connector commands as follows:
80
+
75
81
  ```
76
82
  docker run --rm airbyte/source-google-search-console:dev spec
77
83
  docker run --rm -v $(pwd)/secrets:/secrets airbyte/source-google-search-console:dev check --config /secrets/config.json
@@ -80,18 +86,23 @@ docker run --rm -v $(pwd)/secrets:/secrets -v $(pwd)/integration_tests:/integrat
80
86
  ```
81
87
 
82
88
  ### Running our CI test suite
89
+
83
90
  You can run our full test suite locally using [`airbyte-ci`](https://github.com/airbytehq/airbyte/blob/master/airbyte-ci/connectors/pipelines/README.md):
91
+
84
92
  ```bash
85
93
  airbyte-ci connectors --name=source-google-search-console test
86
94
  ```
87
95
 
88
96
  ### Customizing acceptance Tests
97
+
89
98
  Customize `acceptance-test-config.yml` file to configure acceptance tests. See [Connector Acceptance Tests](https://docs.airbyte.com/connector-development/testing-connectors/connector-acceptance-tests-reference) for more information.
90
99
  If your connector requires to create or destroy resources for use during acceptance tests create fixtures for it and place them inside integration_tests/acceptance.py.
91
100
 
92
101
  ### Dependency Management
93
- All of your dependencies should be managed via Poetry.
102
+
103
+ All of your dependencies should be managed via Poetry.
94
104
  To add a new dependency, run:
105
+
95
106
  ```bash
96
107
  poetry add <package-name>
97
108
  ```
@@ -99,14 +110,17 @@ poetry add <package-name>
99
110
  Please commit the changes to `pyproject.toml` and `poetry.lock` files.
100
111
 
101
112
  ## Publishing a new version of the connector
113
+
102
114
  You've checked out the repo, implemented a million dollar feature, and you're ready to share your changes with the world. Now what?
115
+
103
116
  1. Make sure your changes are passing our test suite: `airbyte-ci connectors --name=source-google-search-console test`
104
- 2. Bump the connector version (please follow [semantic versioning for connectors](https://docs.airbyte.com/contributing-to-airbyte/resources/pull-requests-handbook/#semantic-versioning-for-connectors)):
105
- - bump the `dockerImageTag` value in in `metadata.yaml`
106
- - bump the `version` value in `pyproject.toml`
117
+ 2. Bump the connector version (please follow [semantic versioning for connectors](https://docs.airbyte.com/contributing-to-airbyte/resources/pull-requests-handbook/#semantic-versioning-for-connectors)):
118
+ - bump the `dockerImageTag` value in in `metadata.yaml`
119
+ - bump the `version` value in `pyproject.toml`
107
120
  3. Make sure the `metadata.yaml` content is up to date.
108
121
  4. Make sure the connector documentation and its changelog is up to date (`docs/integrations/sources/google-search-console.md`).
109
122
  5. Create a Pull Request: use [our PR naming conventions](https://docs.airbyte.com/contributing-to-airbyte/resources/pull-requests-handbook/#pull-request-title-convention).
110
123
  6. Pat yourself on the back for being an awesome contributor.
111
124
  7. Someone from Airbyte will take a look at your PR and iterate with you to merge it into master.
112
125
  8. Once your PR is merged, the new version of the connector will be automatically published to Docker Hub and our connector registry.
126
+
@@ -0,0 +1,26 @@
1
+ source_google_search_console/__init__.py,sha256=HQCPu-CK7XmVDtP9rmTdB2XyraVCc6pv9pw38-O8y48,1191
2
+ source_google_search_console/config_migrations.py,sha256=IdiV5EHazAA4hMFm8S1Dqhb-8DMERriEvaYVMsPzs4U,4134
3
+ source_google_search_console/exceptions.py,sha256=iD3jYC4WxVCEKGsqQ7Vaj1tbjhJZ4S5mnSDnwFJdsIQ,1097
4
+ source_google_search_console/run.py,sha256=q6O2iXoxtrdgtodCaanqTO2eKzUvXF2iDCfmCxaPE24,462
5
+ source_google_search_console/schemas/search_analytics_all_fields.json,sha256=iQxRh_c_yz3uGofqpo1KX571TMmzYjKScb0PtI6SN_Q,1729
6
+ source_google_search_console/schemas/search_analytics_by_country.json,sha256=xvUVjGRy63dsc7c0O-Kg7DUzybRpD-r_-VYhPmDBw_o,1491
7
+ source_google_search_console/schemas/search_analytics_by_date.json,sha256=meCbWDayc1y0q-Lu-CAdjQVnsM8xZBX3BdF129UC1P8,1388
8
+ source_google_search_console/schemas/search_analytics_by_device.json,sha256=VtoFjmmv9rx-uhSFaRn0wm4LeSxRIaexrxg2Spvbneo,1525
9
+ source_google_search_console/schemas/search_analytics_by_page.json,sha256=KyUojZc4Lv3hPswxIJzUL5QDNsbvSugGjl_uHGF7Am4,1473
10
+ source_google_search_console/schemas/search_analytics_by_query.json,sha256=mYc1Fu1A5TWLZCApZSjjfs_urW5BRUCPQI3rw3yQjt4,1439
11
+ source_google_search_console/schemas/search_analytics_keyword_page_report.json,sha256=hCQZbpW9UNiCOrnUMkj4oQdzY0k8Hqoh1XkuKHvyvZw,1681
12
+ source_google_search_console/schemas/search_analytics_keyword_site_report_by_page.json,sha256=lFpbShmTQhFyySc_JCdIOqMP9RfOIA15fpQN9xNXtTI,1626
13
+ source_google_search_console/schemas/search_analytics_keyword_site_report_by_site.json,sha256=AVUl5x9jLL0FcStbTR-FMy-_A7uM-VlrJ-kdCBXWz_g,1755
14
+ source_google_search_console/schemas/search_analytics_page_report.json,sha256=-b0Y0LenTchS0q9A2aQ4hIjUjXkYF8erOtyrTMhf6MM,1776
15
+ source_google_search_console/schemas/search_analytics_site_report_by_page.json,sha256=hWKHkm1reqGGu1dNcWBe6_XkZ5tK-UaiymrYRVgxRxI,1515
16
+ source_google_search_console/schemas/search_analytics_site_report_by_site.json,sha256=rAh6LuNy7nCrrNM9MTd0qxAVc886ecQaqWRgV63OfyA,1408
17
+ source_google_search_console/schemas/sitemaps.json,sha256=coyPSZCAfzMheybfRp4WPAZCp5JF2KGRF2rWK8oC080,1775
18
+ source_google_search_console/schemas/sites.json,sha256=WNiCRuStPL1YkJiFa8FEbNJmqaERAOf9Yow6ygIumvo,383
19
+ source_google_search_console/service_account_authenticator.py,sha256=ocSisT5IYegoZf4atsGm9u2lJCdmeSf_9o4q7YN3vD4,1225
20
+ source_google_search_console/source.py,sha256=s-ZFiZ0iDL_OGOndO9tyBAoiiLSPtCf5kVmHWsxE25k,10029
21
+ source_google_search_console/spec.json,sha256=WYtFvaSqWYGm1Dt2yV9G92U78Q94rh9oarbxJe3H7xo,8470
22
+ source_google_search_console/streams.py,sha256=8uj_SjdDykkb6vf-gcDqP6j6Ve7bu8rw3NT_LFtUQxE,18331
23
+ airbyte_source_google_search_console-1.4.3.dist-info/METADATA,sha256=WtR81PaRJEnP739ng6YWj1Og_fF4uzY9HTPddEqIoQM,5619
24
+ airbyte_source_google_search_console-1.4.3.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
25
+ airbyte_source_google_search_console-1.4.3.dist-info/entry_points.txt,sha256=DMcgc9bCX-Vt6hm_68pa77qS3eGdeMhg-UdlFc-XKUM,85
26
+ airbyte_source_google_search_console-1.4.3.dist-info/RECORD,,
@@ -3,38 +3,49 @@
3
3
  "type": "object",
4
4
  "properties": {
5
5
  "site_url": {
6
+ "description": "The URL of the site from which the data originates.",
6
7
  "type": ["null", "string"]
7
8
  },
8
9
  "search_type": {
10
+ "description": "The type of search (e.g., web, image, video) that triggered the search result.",
9
11
  "type": ["null", "string"]
10
12
  },
11
13
  "date": {
14
+ "description": "The date when the search query occurred.",
12
15
  "type": ["null", "string"],
13
16
  "format": "date"
14
17
  },
15
18
  "country": {
19
+ "description": "The country from which the search query originated.",
16
20
  "type": ["null", "string"]
17
21
  },
18
22
  "device": {
23
+ "description": "The type of device used by the user (e.g., desktop, mobile).",
19
24
  "type": ["null", "string"]
20
25
  },
21
26
  "page": {
27
+ "description": "The page URL that appeared in the search results.",
22
28
  "type": ["null", "string"]
23
29
  },
24
30
  "query": {
31
+ "description": "The search query entered by the user.",
25
32
  "type": ["null", "string"]
26
33
  },
27
34
  "clicks": {
35
+ "description": "The number of times users clicked on the search result for a specific query.",
28
36
  "type": ["null", "integer"]
29
37
  },
30
38
  "impressions": {
39
+ "description": "The number of times a search result appeared in response to a query.",
31
40
  "type": ["null", "integer"]
32
41
  },
33
42
  "ctr": {
43
+ "description": "Click-through rate, calculated as clicks divided by impressions.",
34
44
  "type": ["null", "number"],
35
45
  "multipleOf": 1e-25
36
46
  },
37
47
  "position": {
48
+ "description": "The average position of the search result on the search engine results page.",
38
49
  "type": ["null", "number"],
39
50
  "multipleOf": 1e-25
40
51
  }
@@ -3,29 +3,37 @@
3
3
  "type": "object",
4
4
  "properties": {
5
5
  "site_url": {
6
+ "description": "The URL of the site for which the search analytics data is being reported.",
6
7
  "type": ["null", "string"]
7
8
  },
8
9
  "search_type": {
10
+ "description": "The type of search (web search, image search, video search, etc.) for which the data is being reported.",
9
11
  "type": ["null", "string"]
10
12
  },
11
13
  "date": {
14
+ "description": "The date for which the search analytics data is being reported.",
12
15
  "type": ["null", "string"],
13
16
  "format": "date"
14
17
  },
15
18
  "country": {
19
+ "description": "The country for which the search analytics data is being reported.",
16
20
  "type": ["null", "string"]
17
21
  },
18
22
  "clicks": {
23
+ "description": "The number of times users clicked on the search result for a specific country.",
19
24
  "type": ["null", "integer"]
20
25
  },
21
26
  "impressions": {
27
+ "description": "The total number of times a search result was shown in search results for a specific country.",
22
28
  "type": ["null", "integer"]
23
29
  },
24
30
  "ctr": {
31
+ "description": "The click-through rate, i.e., the ratio of clicks to impressions for a specific country.",
25
32
  "type": ["null", "number"],
26
33
  "multipleOf": 1e-25
27
34
  },
28
35
  "position": {
36
+ "description": "The average position at which the site's search result appeared for a specific country.",
29
37
  "type": ["null", "number"],
30
38
  "multipleOf": 1e-25
31
39
  }
@@ -3,26 +3,33 @@
3
3
  "type": "object",
4
4
  "properties": {
5
5
  "site_url": {
6
+ "description": "The URL of the site for which the search analytics data is being reported.",
6
7
  "type": ["null", "string"]
7
8
  },
8
9
  "search_type": {
10
+ "description": "The type of search query (e.g., web, image, video) that generated the search analytics data.",
9
11
  "type": ["null", "string"]
10
12
  },
11
13
  "date": {
14
+ "description": "The date for which the search analytics data is being reported.",
12
15
  "type": ["null", "string"],
13
16
  "format": "date"
14
17
  },
15
18
  "clicks": {
19
+ "description": "The total number of times users clicked on the search result for the site URL on the specific date.",
16
20
  "type": ["null", "integer"]
17
21
  },
18
22
  "impressions": {
23
+ "description": "The number of times the site URL was displayed in the search results to users on the specific date.",
19
24
  "type": ["null", "integer"]
20
25
  },
21
26
  "ctr": {
27
+ "description": "The click-through rate (CTR) represents the percentage of total impressions that resulted in a click to the site URL.",
22
28
  "type": ["null", "number"],
23
29
  "multipleOf": 1e-25
24
30
  },
25
31
  "position": {
32
+ "description": "The average position of the site URL in the search results pages for the specific date.",
26
33
  "type": ["null", "number"],
27
34
  "multipleOf": 1e-25
28
35
  }
@@ -3,29 +3,37 @@
3
3
  "type": "object",
4
4
  "properties": {
5
5
  "site_url": {
6
+ "description": "The URL of the site for which search analytics data is being provided.",
6
7
  "type": ["null", "string"]
7
8
  },
8
9
  "search_type": {
10
+ "description": "The type of search performed (e.g., web search, image search, video search).",
9
11
  "type": ["null", "string"]
10
12
  },
11
13
  "date": {
14
+ "description": "The date for which the search analytics data is provided.",
12
15
  "type": ["null", "string"],
13
16
  "format": "date"
14
17
  },
15
18
  "device": {
19
+ "description": "The type of device used by the user for the search query (e.g., desktop, mobile).",
16
20
  "type": ["null", "string"]
17
21
  },
18
22
  "clicks": {
23
+ "description": "The total number of times a user clicked on a search result linking to the target site.",
19
24
  "type": ["null", "integer"]
20
25
  },
21
26
  "impressions": {
27
+ "description": "The total number of times a user saw a link to the target site in search results.",
22
28
  "type": ["null", "integer"]
23
29
  },
24
30
  "ctr": {
31
+ "description": "Click-through rate represents the ratio of clicks to impressions, showing the effectiveness of your site in attracting clicks from search results.",
25
32
  "type": ["null", "number"],
26
33
  "multipleOf": 1e-25
27
34
  },
28
35
  "position": {
36
+ "description": "The average position of the site's URLs in search results for the given query or queries.",
29
37
  "type": ["null", "number"],
30
38
  "multipleOf": 1e-25
31
39
  }
@@ -3,29 +3,37 @@
3
3
  "type": "object",
4
4
  "properties": {
5
5
  "site_url": {
6
+ "description": "The URL of the site for which the search analytics data is being reported.",
6
7
  "type": ["null", "string"]
7
8
  },
8
9
  "search_type": {
10
+ "description": "The type of search query that led to the page being displayed in search results.",
9
11
  "type": ["null", "string"]
10
12
  },
11
13
  "date": {
14
+ "description": "The date for which the search analytics data is reported.",
12
15
  "type": ["null", "string"],
13
16
  "format": "date"
14
17
  },
15
18
  "page": {
19
+ "description": "The URL of the specific page being analyzed for search analytics data.",
16
20
  "type": ["null", "string"]
17
21
  },
18
22
  "clicks": {
23
+ "description": "The number of times a user clicked on the search result linking to the page.",
19
24
  "type": ["null", "integer"]
20
25
  },
21
26
  "impressions": {
27
+ "description": "The number of times a page from the site appeared in the search results viewed by users.",
22
28
  "type": ["null", "integer"]
23
29
  },
24
30
  "ctr": {
31
+ "description": "Click-through rate (CTR) is the ratio of clicks to impressions, indicating the effectiveness of the page in generating clicks.",
25
32
  "type": ["null", "number"],
26
33
  "multipleOf": 1e-25
27
34
  },
28
35
  "position": {
36
+ "description": "The average position at which the page appeared in search results.",
29
37
  "type": ["null", "number"],
30
38
  "multipleOf": 1e-25
31
39
  }
@@ -3,29 +3,37 @@
3
3
  "type": "object",
4
4
  "properties": {
5
5
  "site_url": {
6
+ "description": "The URL of the site for which the search analytics data is captured.",
6
7
  "type": ["null", "string"]
7
8
  },
8
9
  "search_type": {
10
+ "description": "The type of search result (e.g., web, image, video) for the specific query.",
9
11
  "type": ["null", "string"]
10
12
  },
11
13
  "date": {
14
+ "description": "The date for which the search analytics data is recorded.",
12
15
  "type": ["null", "string"],
13
16
  "format": "date"
14
17
  },
15
18
  "query": {
19
+ "description": "The search query for which the search analytics data is recorded.",
16
20
  "type": ["null", "string"]
17
21
  },
18
22
  "clicks": {
23
+ "description": "The number of times users clicked on the search result for the specific query.",
19
24
  "type": ["null", "integer"]
20
25
  },
21
26
  "impressions": {
27
+ "description": "The number of times the search result was displayed for the specific query.",
22
28
  "type": ["null", "integer"]
23
29
  },
24
30
  "ctr": {
31
+ "description": "The click-through rate (percentage) for the specific query, calculated as clicks divided by impressions.",
25
32
  "type": ["null", "number"],
26
33
  "multipleOf": 1e-25
27
34
  },
28
35
  "position": {
36
+ "description": "The average position at which the search result appeared for the specific query.",
29
37
  "type": ["null", "number"],
30
38
  "multipleOf": 1e-25
31
39
  }
@@ -4,38 +4,49 @@
4
4
  "additionalProperties": true,
5
5
  "properties": {
6
6
  "site_url": {
7
+ "description": "The URL of the website being monitored.",
7
8
  "type": ["null", "string"]
8
9
  },
9
10
  "search_type": {
11
+ "description": "The type of search (e.g., web, image, video).",
10
12
  "type": ["null", "string"]
11
13
  },
12
14
  "date": {
15
+ "description": "The date of the search data collected.",
13
16
  "type": ["null", "string"],
14
17
  "format": "date"
15
18
  },
16
19
  "country": {
20
+ "description": "The country where the search is made.",
17
21
  "type": ["null", "string"]
18
22
  },
19
23
  "device": {
24
+ "description": "The device type used for the search (e.g., desktop, mobile).",
20
25
  "type": ["null", "string"]
21
26
  },
22
27
  "page": {
28
+ "description": "The page URL on which the keyword appears in search results.",
23
29
  "type": ["null", "string"]
24
30
  },
25
31
  "query": {
32
+ "description": "The search query used to find the site.",
26
33
  "type": ["null", "string"]
27
34
  },
28
35
  "clicks": {
36
+ "description": "The number of clicks for the keyword on a specific page.",
29
37
  "type": ["null", "integer"]
30
38
  },
31
39
  "impressions": {
40
+ "description": "The number of times the keyword appeared in search results.",
32
41
  "type": ["null", "integer"]
33
42
  },
34
43
  "ctr": {
44
+ "description": "Click-through rate which is the percentage of clicks divided by impressions.",
35
45
  "type": ["null", "number"],
36
46
  "multipleOf": 1e-25
37
47
  },
38
48
  "position": {
49
+ "description": "The average position of the keyword on search results pages.",
39
50
  "type": ["null", "number"],
40
51
  "multipleOf": 1e-25
41
52
  }
@@ -4,35 +4,45 @@
4
4
  "additionalProperties": true,
5
5
  "properties": {
6
6
  "site_url": {
7
+ "description": "The URL of the website for which the search analytics data is retrieved.",
7
8
  "type": ["null", "string"]
8
9
  },
9
10
  "search_type": {
11
+ "description": "The type of search conducted (e.g., web, image, video).",
10
12
  "type": ["null", "string"]
11
13
  },
12
14
  "date": {
15
+ "description": "The date when the search data was recorded.",
13
16
  "type": ["null", "string"],
14
17
  "format": "date"
15
18
  },
16
19
  "country": {
20
+ "description": "The country from which the search query originated.",
17
21
  "type": ["null", "string"]
18
22
  },
19
23
  "device": {
24
+ "description": "The device type used for the search query (e.g., desktop, mobile).",
20
25
  "type": ["null", "string"]
21
26
  },
22
27
  "query": {
28
+ "description": "The search query used by the user.",
23
29
  "type": ["null", "string"]
24
30
  },
25
31
  "clicks": {
32
+ "description": "The number of times users clicked on your website link in search results.",
26
33
  "type": ["null", "integer"]
27
34
  },
28
35
  "impressions": {
36
+ "description": "The number of times your website link appeared in search results.",
29
37
  "type": ["null", "integer"]
30
38
  },
31
39
  "ctr": {
40
+ "description": "Click-through rate: Number of clicks divided by the number of impressions.",
32
41
  "type": ["null", "number"],
33
42
  "multipleOf": 1e-25
34
43
  },
35
44
  "position": {
45
+ "description": "The average position of your website link in search results.",
36
46
  "type": ["null", "number"],
37
47
  "multipleOf": 1e-25
38
48
  }
@@ -4,35 +4,45 @@
4
4
  "additionalProperties": true,
5
5
  "properties": {
6
6
  "site_url": {
7
+ "description": "The URL of the site for which the search analytics data is recorded.",
7
8
  "type": ["null", "string"]
8
9
  },
9
10
  "search_type": {
11
+ "description": "The type of search (e.g., web search, image search) that generated the analytics data.",
10
12
  "type": ["null", "string"]
11
13
  },
12
14
  "date": {
15
+ "description": "The date for which the search analytics data is recorded.",
13
16
  "type": ["null", "string"],
14
17
  "format": "date"
15
18
  },
16
19
  "country": {
20
+ "description": "The country from which the search originated.",
17
21
  "type": ["null", "string"]
18
22
  },
19
23
  "device": {
24
+ "description": "The type of device used by the user during the search (e.g., desktop, mobile).",
20
25
  "type": ["null", "string"]
21
26
  },
22
27
  "query": {
28
+ "description": "The search query used by the user to find the site in search results.",
23
29
  "type": ["null", "string"]
24
30
  },
25
31
  "clicks": {
32
+ "description": "The number of times users clicked on the search result linking to the site.",
26
33
  "type": ["null", "integer"]
27
34
  },
28
35
  "impressions": {
36
+ "description": "The number of times the site was shown in search results to users.",
29
37
  "type": ["null", "integer"]
30
38
  },
31
39
  "ctr": {
40
+ "description": "Click-through rate represents the percentage of users who clicked on the site's link after seeing it in search results.",
32
41
  "type": ["null", "number"],
33
42
  "multipleOf": 1e-25
34
43
  },
35
44
  "position": {
45
+ "description": "The average ranking position of the site in search results.",
36
46
  "type": ["null", "number"],
37
47
  "multipleOf": 1e-25
38
48
  }
@@ -4,35 +4,45 @@
4
4
  "additionalProperties": true,
5
5
  "properties": {
6
6
  "site_url": {
7
+ "description": "The URL of the website for which the search analytics data is being reported.",
7
8
  "type": ["null", "string"]
8
9
  },
9
10
  "search_type": {
11
+ "description": "The type of search (e.g., web, image, video) that led users to the website.",
10
12
  "type": ["null", "string"]
11
13
  },
12
14
  "date": {
15
+ "description": "The date when the search data was recorded.",
13
16
  "type": ["null", "string"],
14
17
  "format": "date"
15
18
  },
16
19
  "country": {
20
+ "description": "The country from which the search originated.",
17
21
  "type": ["null", "string"]
18
22
  },
19
23
  "page": {
24
+ "description": "The specific page URL within the website that appeared in search results.",
20
25
  "type": ["null", "string"]
21
26
  },
22
27
  "device": {
28
+ "description": "The type of device used by the user for the search query (e.g., desktop, mobile).",
23
29
  "type": ["null", "string"]
24
30
  },
25
31
  "clicks": {
32
+ "description": "The total number of times users clicked on search results that led to the linked website.",
26
33
  "type": ["null", "integer"]
27
34
  },
28
35
  "impressions": {
36
+ "description": "The total number of times a search result from the linked website was shown to users.",
29
37
  "type": ["null", "integer"]
30
38
  },
31
39
  "ctr": {
40
+ "description": "Click-through rate: The percentage of clicks out of the total impressions for a given search query.",
32
41
  "type": ["null", "number"],
33
42
  "multipleOf": 1e-25
34
43
  },
35
44
  "position": {
45
+ "description": "The average position at which the website's search results appeared to users.",
36
46
  "type": ["null", "number"],
37
47
  "multipleOf": 1e-25
38
48
  }
@@ -4,32 +4,41 @@
4
4
  "additionalProperties": true,
5
5
  "properties": {
6
6
  "site_url": {
7
+ "description": "The URL of the page on the site that is being reported.",
7
8
  "type": ["null", "string"]
8
9
  },
9
10
  "search_type": {
11
+ "description": "The type of search query that led to the page being shown.",
10
12
  "type": ["null", "string"]
11
13
  },
12
14
  "date": {
15
+ "description": "The date for which the data is being reported.",
13
16
  "type": ["null", "string"],
14
17
  "format": "date"
15
18
  },
16
19
  "country": {
20
+ "description": "The country from which the search traffic originated.",
17
21
  "type": ["null", "string"]
18
22
  },
19
23
  "device": {
24
+ "description": "The type of device used by the searcher (e.g., desktop, mobile).",
20
25
  "type": ["null", "string"]
21
26
  },
22
27
  "clicks": {
28
+ "description": "The total number of clicks received by the page from search results.",
23
29
  "type": ["null", "integer"]
24
30
  },
25
31
  "impressions": {
32
+ "description": "The total number of times the page appeared in search results.",
26
33
  "type": ["null", "integer"]
27
34
  },
28
35
  "ctr": {
36
+ "description": "The click-through rate, i.e., the percentage of total impressions that resulted in clicks.",
29
37
  "type": ["null", "number"],
30
38
  "multipleOf": 1e-25
31
39
  },
32
40
  "position": {
41
+ "description": "The average position at which the page appeared in search results.",
33
42
  "type": ["null", "number"],
34
43
  "multipleOf": 1e-25
35
44
  }
@@ -4,32 +4,41 @@
4
4
  "additionalProperties": true,
5
5
  "properties": {
6
6
  "site_url": {
7
+ "description": "The URL of the site being analyzed",
7
8
  "type": ["null", "string"]
8
9
  },
9
10
  "search_type": {
11
+ "description": "The type of search (e.g., web, image, video)",
10
12
  "type": ["null", "string"]
11
13
  },
12
14
  "date": {
15
+ "description": "The date of the search analytics data",
13
16
  "type": ["null", "string"],
14
17
  "format": "date"
15
18
  },
16
19
  "country": {
20
+ "description": "The country where the search took place",
17
21
  "type": ["null", "string"]
18
22
  },
19
23
  "device": {
24
+ "description": "The type of device used for the search (e.g., mobile, desktop)",
20
25
  "type": ["null", "string"]
21
26
  },
22
27
  "clicks": {
28
+ "description": "The number of times users clicked on a search result linking to the site",
23
29
  "type": ["null", "integer"]
24
30
  },
25
31
  "impressions": {
32
+ "description": "The number of times the site appeared in search results",
26
33
  "type": ["null", "integer"]
27
34
  },
28
35
  "ctr": {
36
+ "description": "Click-through rate calculated as clicks divided by impressions",
29
37
  "type": ["null", "number"],
30
38
  "multipleOf": 1e-25
31
39
  },
32
40
  "position": {
41
+ "description": "The average position of the site in search results",
33
42
  "type": ["null", "number"],
34
43
  "multipleOf": 1e-25
35
44
  }
@@ -3,43 +3,55 @@
3
3
  "type": "object",
4
4
  "properties": {
5
5
  "path": {
6
+ "description": "Path to the sitemap file",
6
7
  "type": ["null", "string"]
7
8
  },
8
9
  "lastSubmitted": {
10
+ "description": "Timestamp when the sitemap was last submitted",
9
11
  "type": ["null", "string"],
10
12
  "format": "date-time"
11
13
  },
12
14
  "isPending": {
15
+ "description": "Flag indicating if the sitemap is pending for processing",
13
16
  "type": ["null", "boolean"]
14
17
  },
15
18
  "isSitemapsIndex": {
19
+ "description": "Flag indicating if the data represents a sitemap index",
16
20
  "type": ["null", "boolean"]
17
21
  },
18
22
  "type": {
23
+ "description": "Type of the sitemap",
19
24
  "type": ["null", "string"]
20
25
  },
21
26
  "lastDownloaded": {
27
+ "description": "Timestamp when the sitemap was last downloaded",
22
28
  "type": ["null", "string"],
23
29
  "format": "date-time"
24
30
  },
25
31
  "warnings": {
32
+ "description": "Warnings encountered while processing the sitemaps",
26
33
  "type": ["null", "string"]
27
34
  },
28
35
  "errors": {
36
+ "description": "Errors encountered while processing the sitemaps",
29
37
  "type": ["null", "string"]
30
38
  },
31
39
  "contents": {
40
+ "description": "Data related to the sitemap contents",
32
41
  "type": "array",
33
42
  "items": {
34
43
  "type": "object",
35
44
  "properties": {
36
45
  "type": {
46
+ "description": "Type of the sitemap content",
37
47
  "type": ["null", "string"]
38
48
  },
39
49
  "submitted": {
50
+ "description": "Number of submitted sitemap URLs",
40
51
  "type": ["null", "string"]
41
52
  },
42
53
  "indexed": {
54
+ "description": "Number of indexed sitemap URLs",
43
55
  "type": ["null", "string"]
44
56
  }
45
57
  }
@@ -3,9 +3,11 @@
3
3
  "type": "object",
4
4
  "properties": {
5
5
  "siteUrl": {
6
+ "description": "The URL of the site data being fetched",
6
7
  "type": ["null", "string"]
7
8
  },
8
9
  "permissionLevel": {
10
+ "description": "The user's permission level for the site (owner, full, restricted, etc.)",
9
11
  "type": ["null", "string"]
10
12
  }
11
13
  }
@@ -13,7 +13,7 @@ from airbyte_cdk.logger import AirbyteLogger
13
13
  from airbyte_cdk.models import FailureType, SyncMode
14
14
  from airbyte_cdk.sources import AbstractSource
15
15
  from airbyte_cdk.sources.streams import Stream
16
- from airbyte_cdk.sources.streams.http.auth import Oauth2Authenticator
16
+ from airbyte_cdk.sources.streams.http.requests_native_auth import Oauth2Authenticator
17
17
  from airbyte_cdk.utils import AirbyteTracedException
18
18
  from source_google_search_console.exceptions import (
19
19
  InvalidSiteURLValidationError,
@@ -11,7 +11,7 @@ import pendulum
11
11
  import requests
12
12
  from airbyte_cdk.models import SyncMode
13
13
  from airbyte_cdk.sources.streams.http import HttpStream
14
- from airbyte_cdk.sources.streams.http.auth import HttpAuthenticator
14
+ from requests.auth import AuthBase
15
15
 
16
16
  BASE_URL = "https://www.googleapis.com/webmasters/v3/"
17
17
  ROW_LIMIT = 25000
@@ -30,7 +30,7 @@ class GoogleSearchConsole(HttpStream, ABC):
30
30
 
31
31
  def __init__(
32
32
  self,
33
- authenticator: Union[HttpAuthenticator, requests.auth.AuthBase],
33
+ authenticator: AuthBase,
34
34
  site_urls: list,
35
35
  start_date: str,
36
36
  end_date: str,
@@ -366,7 +366,7 @@ class SearchByKeyword(SearchAnalytics):
366
366
  ) -> Optional[Union[Dict[str, Any], str]]:
367
367
  data = super().request_body_json(stream_state, stream_slice, next_page_token)
368
368
 
369
- stream = SearchAppearance(self.authenticator, self._site_urls, self._start_date, self._end_date)
369
+ stream = SearchAppearance(self._session.auth, self._site_urls, self._start_date, self._end_date)
370
370
  keywords_records = stream.read_records(sync_mode=SyncMode.full_refresh, stream_state=stream_state, stream_slice=stream_slice)
371
371
  keywords = {record["searchAppearance"] for record in keywords_records}
372
372
  filters = []
@@ -1,26 +0,0 @@
1
- source_google_search_console/__init__.py,sha256=HQCPu-CK7XmVDtP9rmTdB2XyraVCc6pv9pw38-O8y48,1191
2
- source_google_search_console/config_migrations.py,sha256=IdiV5EHazAA4hMFm8S1Dqhb-8DMERriEvaYVMsPzs4U,4134
3
- source_google_search_console/exceptions.py,sha256=iD3jYC4WxVCEKGsqQ7Vaj1tbjhJZ4S5mnSDnwFJdsIQ,1097
4
- source_google_search_console/run.py,sha256=q6O2iXoxtrdgtodCaanqTO2eKzUvXF2iDCfmCxaPE24,462
5
- source_google_search_console/schemas/search_analytics_all_fields.json,sha256=tyqmMuF1mTU94EE0nM0RMJ40Qqpa6AhTbGERdNC075g,804
6
- source_google_search_console/schemas/search_analytics_by_country.json,sha256=JdlBPe8xCiqLOLvZqrbIogQyjcXqKdl6l9Nde9Hd9go,639
7
- source_google_search_console/schemas/search_analytics_by_date.json,sha256=_LhzCePVWJ0fe782Ktnm2eNyPxAHbSoO1AS-FtvP4Yg,582
8
- source_google_search_console/schemas/search_analytics_by_device.json,sha256=5C6Pc0MVJBSLJIw9pJGPPNoKp4dSYfYTXCDIh37-2NQ,638
9
- source_google_search_console/schemas/search_analytics_by_page.json,sha256=EIY-6HQZFKqP8OehJmLS8g6kgUyuXi4OP6JWYgzlv3Q,636
10
- source_google_search_console/schemas/search_analytics_by_query.json,sha256=v8X43HtVCq-G-En9lU20jCxsg7FZktlU3KxUCjR8Nc8,637
11
- source_google_search_console/schemas/search_analytics_keyword_page_report.json,sha256=EMoww91e5Tv2MUBOxU_faLbn9sNNeeo3L349rH6jvd8,837
12
- source_google_search_console/schemas/search_analytics_keyword_site_report_by_page.json,sha256=0Cu-r0KUQjIm2paiIAYIpJyirjAbbnsjO3b_mePaGIM,783
13
- source_google_search_console/schemas/search_analytics_keyword_site_report_by_site.json,sha256=0Cu-r0KUQjIm2paiIAYIpJyirjAbbnsjO3b_mePaGIM,783
14
- source_google_search_console/schemas/search_analytics_page_report.json,sha256=FR-Ii7BMre3DuwMw3vMKjVtSAOe0iy3tkusWrtBGV7k,782
15
- source_google_search_console/schemas/search_analytics_site_report_by_page.json,sha256=bg3eHS06Z8YTGD6v0bsyHNRmh5v9lvSWl_TlbNuEJZ4,728
16
- source_google_search_console/schemas/search_analytics_site_report_by_site.json,sha256=bg3eHS06Z8YTGD6v0bsyHNRmh5v9lvSWl_TlbNuEJZ4,728
17
- source_google_search_console/schemas/sitemaps.json,sha256=-Wf7ilaD_c7pKVKl8SF4lmBgalnRwW4V_aSOCEXgWbg,990
18
- source_google_search_console/schemas/sites.json,sha256=9H1tBakHEwNGLRmLzcTlGwOCo59HedgzUc-iccSVxT4,223
19
- source_google_search_console/service_account_authenticator.py,sha256=ocSisT5IYegoZf4atsGm9u2lJCdmeSf_9o4q7YN3vD4,1225
20
- source_google_search_console/source.py,sha256=TEqjXQr_X_8J0fPrLhQVIzIIgfspF7sgLUjAjKNtY-Q,10013
21
- source_google_search_console/spec.json,sha256=WYtFvaSqWYGm1Dt2yV9G92U78Q94rh9oarbxJe3H7xo,8470
22
- source_google_search_console/streams.py,sha256=IyJ2lvLkC9axG-OS5cPzYantmIAwci8ltwDzy10kTdI,18404
23
- airbyte_source_google_search_console-1.4.0.dist-info/METADATA,sha256=N0frLau2qsTktf7cBESR53RG1fIia8QLTaLAr6tzJyg,5607
24
- airbyte_source_google_search_console-1.4.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
25
- airbyte_source_google_search_console-1.4.0.dist-info/entry_points.txt,sha256=DMcgc9bCX-Vt6hm_68pa77qS3eGdeMhg-UdlFc-XKUM,85
26
- airbyte_source_google_search_console-1.4.0.dist-info/RECORD,,