{"id":8128,"date":"2019-10-09T20:22:28","date_gmt":"2019-10-09T20:22:28","guid":{"rendered":"https:\/\/zappysys.com\/blog\/?p=8128"},"modified":"2019-10-11T16:29:10","modified_gmt":"2019-10-11T16:29:10","slug":"get-data-google-search-console-api-ssis-odbc-drivers","status":"publish","type":"post","link":"https:\/\/zappysys.com\/blog\/get-data-google-search-console-api-ssis-odbc-drivers\/","title":{"rendered":"Get data from Google Search Console API in SSIS and ODBC Apps"},"content":{"rendered":"<h2>Introduction<\/h2>\n<p>In our previous few posts we saw how to call various <a href=\"https:\/\/zappysys.com\/blog\/category\/google-api\/\" target=\"_blank\" rel=\"noopener\">google apis<\/a> in SSIS.\u00a0 In this post lets learn how to call Google Search Console API in SSIS or other ODBC Compatible Apps such as Power BI, Informatica, SSRS using <a href=\"https:\/\/zappysys.com\/products\/odbc-powerpack\/\">API Drivers for ODBC<\/a><\/p>\n<div class=\"content_block\" id=\"custom_post_widget-2523\"><h2><span id=\"Prerequisites\">Prerequisites<\/span><\/h2>\r\nBefore we perform the steps listed in this article, you will need to make sure the following prerequisites are met:\r\n<ol style=\"margin-left: 1.5em;\">\r\n \t<li><abbr title=\"SQL Server Integration Services\">SSIS<\/abbr> designer installed.\u00a0Sometimes it is referred to as <abbr title=\"Business Intelligence Development Studio\">BIDS<\/abbr> or <abbr title=\"SQL Server Data Tools\">SSDT<\/abbr> (<a href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/ssdt\/download-sql-server-data-tools-ssdt\" target=\"_blank\" rel=\"noopener\">download it from the Microsoft site<\/a>).<\/li>\r\n \t<li>Basic knowledge of SSIS package\u00a0development using\u00a0<em>Microsoft SQL Server Integration Services<\/em>.<\/li>\r\n \t<li>Make sure\u00a0<span style=\"text-decoration: underline;\"><a href=\"https:\/\/zappysys.com\/products\/ssis-powerpack\/\" target=\"_blank\" rel=\"noopener\">ZappySys SSIS PowerPack<\/a><\/span>\u00a0is installed (<a href=\"https:\/\/zappysys.com\/products\/ssis-powerpack\/download\/\" target=\"_blank\" rel=\"noopener\">download it<\/a>, if you haven't already).<\/li>\r\n \t<li>(<em>Optional step<\/em>)<em>.<\/em>\u00a0<a href=\"https:\/\/zappysys.zendesk.com\/hc\/en-us\/articles\/360035974593\" target=\"_blank\" rel=\"noopener\">Read this article<\/a>, if you are planning to deploy packages to a server and schedule their execution later.<\/li>\r\n<\/ol><\/div>\n<h2>About Google Search Console API (Google Webmaster API)<\/h2>\n<p>If you are new to Google Search Console API (i.e. Webmaster API) then start <a href=\"https:\/\/developers.google.com\/webmaster-tools\/search-console-api-original\/v3\/prereqs\" target=\"_blank\" rel=\"noopener\">from this link<\/a>. You can also <a href=\"https:\/\/developers.google.com\/apis-explorer\/#p\/webmasters\/v3\/\" target=\"_blank\" rel=\"noopener\">check API Explorer<\/a> here to test API requests.<\/p>\n<p>Search API can be called by supplying either <a href=\"https:\/\/developers.google.com\/webmaster-tools\/search-console-api-original\/v3\/how-tos\/authorizing#APIKey\" target=\"_blank\" rel=\"noopener\">API key<\/a> in URL\u00a0 or <a href=\"https:\/\/zappysys.com\/blog\/register-google-oauth-application-get-clientid-clientsecret\/\">use OAuth<\/a><\/p>\n<p>Search Console V3 Covers following APIs (May add more in future)<\/p>\n<div class=\"su-table su-table-alternate\">\n<table class=\"NYYWNC-h-b\">\n<tbody>\n<tr>\n<td><strong><span class=\"gwt-InlineLabel\">API Name<\/span><\/strong><\/td>\n<td><strong><span class=\"gwt-InlineLabel\">Description<\/span><\/strong><\/td>\n<\/tr>\n<tr>\n<td class=\"NYYWNC-h-c\"><span class=\"gwt-InlineLabel\">webmasters.searchanalytics.query<\/span><\/td>\n<td class=\"NYYWNC-h-a\"><span class=\"gwt-InlineLabel\">Query your data with filters and parameters that you define. Returns zero or more rows grouped by the row keys that you define. You must define a date range of one or more days. When date is one of the group by values, any days without data are omitted from the result list. If you need to know which days have data, issue a broad date range query grouped by date for any metric, and see which day rows are returned.<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"NYYWNC-h-c\"><span class=\"gwt-InlineLabel\">webmasters.sitemaps.delete<\/span><\/td>\n<td class=\"NYYWNC-h-a\"><span class=\"gwt-InlineLabel\">Deletes a sitemap from this site.<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"NYYWNC-h-c\"><span class=\"gwt-InlineLabel\">webmasters.sitemaps.get<\/span><\/td>\n<td class=\"NYYWNC-h-a\"><span class=\"gwt-InlineLabel\">Retrieves information about a specific sitemap.<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"NYYWNC-h-c\"><span class=\"gwt-InlineLabel\">webmasters.sitemaps.list<\/span><\/td>\n<td class=\"NYYWNC-h-a\"><span class=\"gwt-InlineLabel\">Lists the sitemaps-entries submitted for this site, or included in the sitemap index file (if sitemapIndex is specified in the request).<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"NYYWNC-h-c\"><span class=\"gwt-InlineLabel\">webmasters.sitemaps.submit<\/span><\/td>\n<td class=\"NYYWNC-h-a\"><span class=\"gwt-InlineLabel\">Submits a sitemap for a site.<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"NYYWNC-h-c\"><span class=\"gwt-InlineLabel\">webmasters.sites.add<\/span><\/td>\n<td class=\"NYYWNC-h-a\"><span class=\"gwt-InlineLabel\">Adds a site to the set of the user&#8217;s sites in Search Console.<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"NYYWNC-h-c\"><span class=\"gwt-InlineLabel\">webmasters.sites.delete<\/span><\/td>\n<td class=\"NYYWNC-h-a\"><span class=\"gwt-InlineLabel\">Removes a site from the set of the user&#8217;s Search Console sites.<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"NYYWNC-h-c\"><span class=\"gwt-InlineLabel\">webmasters.sites.get<\/span><\/td>\n<td class=\"NYYWNC-h-a\"><span class=\"gwt-InlineLabel\">Retrieves information about specific site.<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"NYYWNC-h-c\"><span class=\"gwt-InlineLabel\">webmasters.sites.list<\/span><\/td>\n<td class=\"NYYWNC-h-a\"><span class=\"gwt-InlineLabel\">Lists the user&#8217;s Search Console sites.<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p><strong>Search Console API Call Example<\/strong><\/p>\n<p>Here is simple example of Search Console API call. Below example returns all sites you added under your search console account.<\/p>\n<p><strong>Request<\/strong><\/p>\n<pre class=\"lang:default decode:true\">GET https:\/\/www.googleapis.com\/webmasters\/v3\/sites?key={YOUR_API_KEY}<\/pre>\n<p><strong>Response<\/strong><\/p>\n<pre class=\"lang:default highlight:0 decode:true\">{\r\n \"siteEntry\": [\r\n  {\r\n   \"siteUrl\": \"https:\/\/my-google-search-api-1.com\/\",\r\n   \"permissionLevel\": \"siteOwner\"\r\n  },\r\n  {\r\n   \"siteUrl\": \"https:\/\/www.my-google-search-api-1.com\/\",\r\n   \"permissionLevel\": \"siteOwner\"\r\n  },\r\n  {\r\n   \"siteUrl\": \"https:\/\/my-google-search-api-2.com\/\",\r\n   \"permissionLevel\": \"siteOwner\"\r\n  },\r\n  {\r\n   \"siteUrl\": \"https:\/\/www.my-google-search-api-2.com\/\",\r\n   \"permissionLevel\": \"siteOwner\"\r\n  }\r\n ]\r\n}\r\n\r\n<\/pre>\n<p>&nbsp;<\/p>\n<h2>Step-By-Step &#8211; Call Search Console API in SSIS<\/h2>\n<p>Now lets look at very simple API call to <a href=\"https:\/\/developers.google.com\/webmaster-tools\/search-console-api-original\/v3\/sites\/list\" target=\"_blank\" rel=\"noopener\">list search console sites<\/a><\/p>\n<ol>\n<li>Open SSIS Package<\/li>\n<li>Drag and drop ZS REST API Task from SSIS tool box\n<div style=\"width: 565px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full\" src=\"https:\/\/zappysys.com\/onlinehelp\/ssis-powerpack\/scr\/images\/rest-api-task\/ssis-rest-api-web-service-task-drag.png\" alt=\"Drag and Drop ZS REST API Task from SSIS Toolbox\" width=\"555\" height=\"199\" \/><p class=\"wp-caption-text\">Drag and Drop ZS REST API Task from SSIS Toolbox<\/p><\/div><\/li>\n<li>Now double click REST API Task and configure (Skip <strong>Step 5<\/strong>\u00a0if you use <a href=\"https:\/\/developers.google.com\/webmaster-tools\/search-console-api-original\/v3\/how-tos\/authorizing#APIKey\" target=\"_blank\" rel=\"noopener\">API Key<\/a> instead of OAuth).<\/li>\n<li>Enter API URL you like to call. For This example we will use simple URL as below<br \/>\n<strong>OAuth based Authentication<\/strong><\/p>\n<pre class=\"lang:default highlight:0 decode:true\">https:\/\/www.googleapis.com\/webmasters\/v3\/sites\/<\/pre>\n<p><strong>API Key based Authentication<\/strong><\/p>\n<pre class=\"lang:default highlight:0 decode:true\">https:\/\/www.googleapis.com\/webmasters\/v3\/sites\/?key={YOUR_API_KEY}<\/pre>\n<\/li>\n<li>If you want to use OAuth based credentials then perform the following steps\n<ol>\n<li>Select <strong>URL from Connection\u00a0<\/strong><\/li>\n<li>Click <strong>New ZS-OAUTH<\/strong>\u00a0connection from Dropdown<\/li>\n<li>On the OAuth UI select <strong>Google as Provider<\/strong><\/li>\n<li>Enter Scopes as below\n<pre class=\"lang:default highlight:0 decode:true\">https:\/\/www.googleapis.com\/auth\/webmasters\r\nhttps:\/\/www.googleapis.com\/auth\/webmasters.readonly<\/pre>\n<\/li>\n<li>Click Generate Token. When you get Login Prompt enter your Google Account information and <strong>click Accept<\/strong><\/li>\n<li>Click OK to Save OAuth UI<\/li>\n<\/ol>\n<\/li>\n<li>This is how it will look like if you use OAuth Connection\n<div id=\"attachment_8131\" style=\"width: 1037px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2019\/10\/call-google-search-api-using-oauth-ssis-rest-api-task.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8131\" class=\"size-full wp-image-8131\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2019\/10\/call-google-search-api-using-oauth-ssis-rest-api-task.png\" alt=\"Call Google Search Console API using SSIS REST API Task (OAuth Authentication)\" width=\"1027\" height=\"869\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2019\/10\/call-google-search-api-using-oauth-ssis-rest-api-task.png 1027w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2019\/10\/call-google-search-api-using-oauth-ssis-rest-api-task-300x254.png 300w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2019\/10\/call-google-search-api-using-oauth-ssis-rest-api-task-768x650.png 768w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2019\/10\/call-google-search-api-using-oauth-ssis-rest-api-task-1024x866.png 1024w\" sizes=\"(max-width: 1027px) 100vw, 1027px\" \/><\/a><p id=\"caption-attachment-8131\" class=\"wp-caption-text\">Call Google Search Console API using SSIS REST API Task (OAuth Authentication)<\/p><\/div><\/li>\n<li>Now click Test Request \/ Response to check if its working. You should get response like below<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<h2>Read from Search Console Analytics API (query)<\/h2>\n<p>Now let&#8217;s look at how to <a href=\"https:\/\/developers.google.com\/webmaster-tools\/search-console-api-original\/v3\/searchanalytics\/query\" target=\"_blank\" rel=\"noopener\">call Search Console Analytics API (i.e. query)<\/a> for Specified Site and extract data in tabular format using <a href=\"https:\/\/zappysys.com\/products\/ssis-powerpack\/ssis-json-file-source\/\" target=\"_blank\" rel=\"noopener\">ZS JSON Source<\/a>. In below example we will obtain search Impression, clicks, position etc for specified site. We will aggregate this over date and country (dimensions).<\/p>\n<p>In this section you will learn how to use JSON Source Adapter to extract data from JSON file (In this case its Web URL).<\/p>\n<ol>\n<li>Firstly, You need to\u00a0<b>Download and Install<\/b>\u00a0SSIS\u00a0<a href=\"https:\/\/zappysys.com\/products\/ssis-powerpack\/download\/\" target=\"_blank\" rel=\"noopener\">ZappySys PowerPack.<\/a><\/li>\n<li>Once you finished first step, Open Visual Studio and Create New SSIS Package Project.<\/li>\n<li>Now, Drag and Drop SSIS\u00a0<b>Data Flow Task<\/b>\u00a0from SSIS Toolbox.<br \/>\n<img decoding=\"async\" class=\"figureimage\" title=\"SSIS Data Flow Task - Drag and Drop\" src=\"https:\/\/zappysys.com\/onlinehelp\/ssis-powerpack\/scr\/images\/drag-and-drop-data-flow-task.png\" alt=\"SSIS Data Flow Task - Drag and Drop\" \/><\/li>\n<li>Double click on the Data Flow task to see Data Flow designer surface.<\/li>\n<li>From the SSIS toolbox drag and drop JSON Source on the Data Flow designer surface.<br \/>\n<img decoding=\"async\" class=\"figureimage\" title=\"SSIS JSON Source - Drag and Drop\" src=\"https:\/\/zappysys.com\/onlinehelp\/ssis-powerpack\/scr\/images\/json-source\/ssis-json-source-adapter-drag.png\" alt=\"SSIS JSON Source - Drag and Drop\" \/><\/li>\n<li>Double click JSON Source and configure like below\n<ol>\n<li>Enter URL as below. Notice two things, first we used <strong>&lt;&lt;somedata,FUN_URLENC&gt;&gt;<\/strong> <a href=\"https:\/\/zappysys.com\/onlinehelp\/ssis-powerpack\/scr\/ssis-format-specifiers.htm\" target=\"_blank\" rel=\"noopener\">placeholder function<\/a> to encode <strong>:<\/strong> and <strong>\/\/<\/strong> in the URL so it <a href=\"https:\/\/zappysys.zendesk.com\/hc\/en-us\/articles\/360012261713\">become %2F %3A<\/a>. We use <span class=\"lang:default decode:true crayon-inline \">&#8211;dont-escape&#8211;<\/span>\u00a0 suffix at the end.<br \/>\n<strong>For OAuth based Credentials<\/strong><\/p>\n<pre class=\"lang:default highlight:0 decode:true\">https:\/\/www.googleapis.com\/webmasters\/v3\/sites\/&lt;&lt;https:\/\/mysite.com,FUN_URLENC&gt;&gt;\/searchAnalytics\/query--dont-escape--<\/pre>\n<p><strong>For API Key based Credentials<\/strong><\/p>\n<pre class=\"lang:default highlight:0 decode:true\">https:\/\/www.googleapis.com\/webmasters\/v3\/sites\/&lt;&lt;https:\/\/mysite.com,FUN_URLENC&gt;&gt;\/searchAnalytics\/query\/?key={YOUR_API_KEY}--dont-escape--<\/pre>\n<\/li>\n<li>Check Use Credentials and select OAuth connection (created earlier) (if you are using API key in URL then skip this step).<\/li>\n<li>Select <strong>POST<\/strong> as HTTP Method<\/li>\n<li>Enter Body for Query. Here are <a href=\"https:\/\/developers.google.com\/webmaster-tools\/search-console-api-original\/v3\/how-tos\/search_analytics\" target=\"_blank\" rel=\"noopener\">some examples<\/a> for various queries you can use. For our case we want to group by date and country so use below\n<pre class=\"lang:default highlight:0 decode:true\">{\r\n\"startDate\": \"2019-01-01\",\r\n\"endDate\": \"2019-01-10\",\r\n\"dimensions\" : [\"date\",\"country\"]\r\n}<\/pre>\n<\/li>\n<li>Select <strong>Content Type<\/strong> as <span class=\"lang:default highlight:0 decode:true crayon-inline\">application\/json<\/span>\u00a0 from Content Type drop down.<\/li>\n<li>Select Filter or enter as\u00a0 <span class=\"lang:default highlight:0 decode:true crayon-inline \">$.rows[*]<\/span><\/li>\n<li>Now go to Extract Multiple Arrays Tab and <strong>Check Array Flattening Option<\/strong> (on older version it was on the different Tab)<\/li>\n<\/ol>\n<\/li>\n<li>Click Preview and you will see your Google Search Console API data as below.\n<div id=\"attachment_8138\" style=\"width: 914px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2019\/10\/read-google-search-console-api-example.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8138\" class=\"size-full wp-image-8138\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2019\/10\/read-google-search-console-api-example.png\" alt=\"Read from Google Search API Console (Analytics Query Endpoint) - JSON Source\" width=\"904\" height=\"827\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2019\/10\/read-google-search-console-api-example.png 904w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2019\/10\/read-google-search-console-api-example-300x274.png 300w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2019\/10\/read-google-search-console-api-example-768x703.png 768w\" sizes=\"(max-width: 904px) 100vw, 904px\" \/><\/a><p id=\"caption-attachment-8138\" class=\"wp-caption-text\">Read from Google Search API Console (Analytics Query Endpoint) &#8211; JSON Source<\/p><\/div><\/li>\n<\/ol>\n<h2>Loading Google Search Console API data into SQL Server \/ Other Target<\/h2>\n<div class=\"content_block\" id=\"custom_post_widget-5617\"><p>ZappySys SSIS PowerPack makes it easy to load data from various sources such as REST, SOAP, JSON, XML, CSV or from other source into SQL Server, or PostgreSQL, or Amazon Redshift, or other  targets. The <strong>Upsert Destination<\/strong> component allows you to automatically insert new records and update existing ones based on key columns. Below are the detailed steps to configure it.<\/p>\r\n<h3>Step 1: Add Upsert Destination to Data Flow<\/h3>\r\n<ol>\r\n<li>Drag and drop the <strong>Upsert Destination<\/strong> component from the SSIS Toolbox.<\/li>\r\n<li>Connect your source component (e.g., JSON \/ REST \/ Other Source) to the Upsert Destination.<\/li>\r\n<\/ol>\r\n<div class=\"wp-caption aligncenter\">\r\n<a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/08\/ssis-data-flow-drag-drop-upsert-destination.png\">\r\n<img loading=\"lazy\" decoding=\"async\" class=\"size-full\" alt=\"\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/08\/ssis-data-flow-drag-drop-upsert-destination.png\" \/><\/a>\r\n<p class=\"wp-caption-text\">SSIS - Data Flow - Drang and Drop Upsert Destination Component<\/p>\r\n<\/div>\r\n<h3>Step 2: Configure Target Connection<\/h3>\r\n<ol>\r\n<li>Double-click the <strong>Upsert Destination<\/strong> component to open the configuration window.<\/li>\r\n<li>Under <strong>Connection<\/strong>, select an existing target connection or click <strong>NEW<\/strong> to create a new connection.\r\n<ul>\r\n<li>Example: SQL Server, or PostgreSQL, or Amazon Redshift.<\/li>\r\n<\/ul>\r\n<\/li>\r\n<\/ol>\r\n<h3>Step 3: Select or Create Target Table<\/h3>\r\n<ol>\r\n<li>In the <strong>Target Table<\/strong> dropdown, select the table where you want to load data.<\/li>\r\n<li>Optionally, click <strong>NEW<\/strong> to create a new table based on the source columns.<\/li>\r\n<\/ol>\r\n<div class=\"wp-caption aligncenter\">\r\n<a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2020\/09\/upsert-destination-configuration.png\">\r\n<img loading=\"lazy\" decoding=\"async\" class=\"size-full\" alt=\"\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2020\/09\/upsert-destination-configuration.png\" \/><\/a>\r\n<p class=\"wp-caption-text\">Configure SSIS Upsert Destination Connection - Loading data (REST \/ SOAP \/ JSON \/ XML \/CSV) into SQL Server or other target using SSIS<\/p>\r\n<\/div>\r\n<h3>Step 4: Map Columns<\/h3>\r\n<ol>\r\n<li>Go to the <strong>Mappings<\/strong> tab.<\/li>\r\n<li>Click <strong>Auto Map<\/strong> to map source columns to target columns by name.<\/li>\r\n<li>Ensure you <strong>check the Primary key column(s)<\/strong> that will determine whether a record is inserted or updated.<\/li>\r\n<li>You can manually adjust the mappings if necessary.<\/li>\r\n<\/ol>\r\n <div class=\"wp-caption aligncenter\">\r\n<a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2020\/09\/upsert-destination-key.png\">\r\n<img loading=\"lazy\" decoding=\"async\" class=\"size-full\" alt=\"\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2020\/09\/upsert-destination-key.png\" \/><\/a>\r\n<p class=\"wp-caption-text\">SSIS Upsert Destination - Columns Mappings<\/p>\r\n<\/div>\r\n<h3>Step 5: Save Settings<\/h3>\r\n<ul>\r\n<li>Click <strong>OK<\/strong> to save the Upsert Destination configuration.<\/li>\r\n<\/ul>\r\n<h3>Step 6: Optional: Add Logging or Analysis<\/h3>\r\n<ul>\r\n<li>You may add extra destination components to log the number of inserted vs. updated records for monitoring or auditing purposes.<\/li>\r\n<\/ul>\r\n<h3>Step 7: Execute the Package<\/h3>\r\n<ul>\r\n<li>Run your SSIS package and verify that the data is correctly inserted and updated in the target table.<\/li>\r\n<\/ul>\r\n<div class=\"wp-caption aligncenter\">\r\n<a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/12\/ssis-upsert-destination-execute.png\">\r\n<img loading=\"lazy\" decoding=\"async\" class=\"size-full\" alt=\"\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/12\/ssis-upsert-destination-execute.png\" \/><\/a>\r\n<p class=\"wp-caption-text\">SSIS Upsert Destination Execution<\/p>\r\n<\/div><\/div>\n<p>&nbsp;<\/p>\n<h2>Import Google Search Console API data in Reporting \/ other ETL tools (ODBC Usecase)<\/h2>\n<p>There will be a time when you dont want to use SSIS connector like mentioned in previous sections but extract Google Search API data in Reporting Tools \/ Other ETL Platform.\u00a0 Good news is you can use <a href=\"https:\/\/zappysys.com\/products\/odbc-powerpack\/odbc-json-rest-api-driver\/\" target=\"_blank\" rel=\"noopener\">ZappySys ODBC Driver for JSON \/ REST API<\/a> in ODBC Apps. See few popular ODBC Apps below.<\/p>\n<ul>\n<li>Power BI connection for Google Search Console API<\/li>\n<li>Excel connection for Google Search Console API<\/li>\n<li>Informatica connection for Google Search Console API<\/li>\n<li>MS Access connection for Google Search Console API<\/li>\n<li>C# , PowerShell, VB.net connection for Google Search Console API<\/li>\n<\/ul>\n<div id=\"attachment_6416\" style=\"width: 766px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2019\/01\/odbc-json-driver-generate-quickbooks-query.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-6416\" class=\"size-full wp-image-6416\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2019\/01\/odbc-json-driver-generate-quickbooks-query.png\" alt=\"Preview \/ Generate Query in JSON Driver \/ XML Driver\" width=\"756\" height=\"432\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2019\/01\/odbc-json-driver-generate-quickbooks-query.png 756w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2019\/01\/odbc-json-driver-generate-quickbooks-query-300x171.png 300w\" sizes=\"(max-width: 756px) 100vw, 756px\" \/><\/a><p id=\"caption-attachment-6416\" class=\"wp-caption-text\">Preview \/ Generate Query in JSON Driver \/ XML Driver<\/p><\/div>\n<h2><\/h2>\n<h2>Load Google Search Console API in SQL Server without any ETL<\/h2>\n<p>Now let&#8217;s look at even more interesting integration scenario. If you have SQL Server and like to load Google Search Console API without any ETL then you can use <a href=\"https:\/\/zappysys.com\/products\/odbc-powerpack\/data-gateway\/\" target=\"_blank\" rel=\"noopener\">Data Gateway<\/a><\/p>\n<p>Read this article to learn how to <a href=\"https:\/\/zappysys.com\/blog\/import-rest-api-json-sql-server\/\" target=\"_blank\" rel=\"noopener\">load REST API in SQL Server<\/a> without any coding (Use just T-SQL) .<\/p>\n<p>You can write query like below to load data inside SQL Table.<\/p>\n<pre class=\"lang:default decode:true\">SELECT * FROM OPENQUERY([MY_LINKED_SERVER]\r\n, 'SELECT * FROM $\r\nWITH(\r\n\t Src=''https:\/\/www.googleapis.com\/webmasters\/v3\/sites\/&lt;&lt;https:\/\/mysite.com,FUN_URLENC&gt;&gt;\/searchAnalytics\/query\/?key={YOUR_API_KEY}--dont-escape--''\r\n\t,Filter=''$.rows[*]''\r\n\t,RequestData=''{\r\n\"startDate\": \"2019-01-01\",\r\n\"endDate\": \"2019-01-10\",\r\n\"dimensions\" : [\"date\",\"country\"]\r\n}''\r\n\t,RequestContentTypeCode=''ApplicationJson''\r\n\t,Header=''cache-control: no-cache || Accept: *\/*''\r\n\t,RequestMethod=''POST''\r\n\t,EnableArrayFlattening=''True''\r\n)')<\/pre>\n<div id=\"attachment_5293\" style=\"width: 899px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/11\/query-rest-api-sql-server-linked-server-openquery-zappysys-data-gateway.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-5293\" class=\"size-full wp-image-5293\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/11\/query-rest-api-sql-server-linked-server-openquery-zappysys-data-gateway.png\" alt=\"SSMS Output - Query REST API via Linked Server OPENQUERY statement (Connect to ZappySys Data Gateway)\" width=\"889\" height=\"481\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/11\/query-rest-api-sql-server-linked-server-openquery-zappysys-data-gateway.png 889w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/11\/query-rest-api-sql-server-linked-server-openquery-zappysys-data-gateway-300x162.png 300w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/11\/query-rest-api-sql-server-linked-server-openquery-zappysys-data-gateway-768x416.png 768w\" sizes=\"(max-width: 889px) 100vw, 889px\" \/><\/a><p id=\"caption-attachment-5293\" class=\"wp-caption-text\">SSMS Output &#8211; Query REST API via Linked Server OPENQUERY statement (Connect to ZappySys Data Gateway)<\/p><\/div>\n<h2>Conclusion<\/h2>\n<p>So in this post we saw how easy it is to achieve total REST API integration in SSIS using JSON Connector. We also saw how to use ODBC Drivers to query REST API data inside Apps like Excel, MS Access, Informatica and other ODBC Apps using ODBC JSON \/ REST API driver. If you are SSIS User download <a href=\"https:\/\/zappysys.com\/products\/ssis-powerpack\/\">SSIS PowerPack and try for FREE<\/a>\u00a0and if you don&#8217;t have SSIS in house and want to try more generic approach then <a href=\"https:\/\/zappysys.com\/products\/odbc-powerpack\/\" target=\"_blank\" rel=\"noopener\">Download ODBC PowerPack Drivers for FREE Trial<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction In our previous few posts we saw how to call various google apis in SSIS.\u00a0 In this post lets learn how to call Google Search Console API in SSIS or other ODBC Compatible Apps such as Power BI, Informatica, SSRS using API Drivers for ODBC About Google Search Console API (Google Webmaster API) If [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":8131,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[277,380,276,17,10],"tags":[56,60],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\r\n<title>Get data from Google Search Console API in SSIS and ODBC Apps | ZappySys Blog<\/title>\r\n<meta name=\"description\" content=\"Learn how to load Google Search Console API in SSIS, Import in SQL Server, and integrate in ODBC Apps (e.g. Excel, Power BI, Informatica, C#, JAVA and more)\" \/>\r\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\r\n<link rel=\"canonical\" href=\"https:\/\/zappysys.com\/blog\/get-data-google-search-console-api-ssis-odbc-drivers\/\" \/>\r\n<meta property=\"og:locale\" content=\"en_US\" \/>\r\n<meta property=\"og:type\" content=\"article\" \/>\r\n<meta property=\"og:title\" content=\"Get data from Google Search Console API in SSIS and ODBC Apps | ZappySys Blog\" \/>\r\n<meta property=\"og:description\" content=\"Learn how to load Google Search Console API in SSIS, Import in SQL Server, and integrate in ODBC Apps (e.g. Excel, Power BI, Informatica, C#, JAVA and more)\" \/>\r\n<meta property=\"og:url\" content=\"https:\/\/zappysys.com\/blog\/get-data-google-search-console-api-ssis-odbc-drivers\/\" \/>\r\n<meta property=\"og:site_name\" content=\"ZappySys Blog\" \/>\r\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/ZappySys\/\" \/>\r\n<meta property=\"article:published_time\" content=\"2019-10-09T20:22:28+00:00\" \/>\r\n<meta property=\"article:modified_time\" content=\"2019-10-11T16:29:10+00:00\" \/>\r\n<meta property=\"og:image\" content=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2019\/10\/call-google-search-api-using-oauth-ssis-rest-api-task.png\" \/>\r\n\t<meta property=\"og:image:width\" content=\"1027\" \/>\r\n\t<meta property=\"og:image:height\" content=\"869\" \/>\r\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\r\n<meta name=\"author\" content=\"ZappySys\" \/>\r\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\r\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/zappysys\/\" \/>\r\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"ZappySys\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\r\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/zappysys.com\/blog\/get-data-google-search-console-api-ssis-odbc-drivers\/\",\"url\":\"https:\/\/zappysys.com\/blog\/get-data-google-search-console-api-ssis-odbc-drivers\/\",\"name\":\"Get data from Google Search Console API in SSIS and ODBC Apps | ZappySys Blog\",\"isPartOf\":{\"@id\":\"https:\/\/zappysys.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/zappysys.com\/blog\/get-data-google-search-console-api-ssis-odbc-drivers\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/zappysys.com\/blog\/get-data-google-search-console-api-ssis-odbc-drivers\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2019\/10\/call-google-search-api-using-oauth-ssis-rest-api-task.png\",\"datePublished\":\"2019-10-09T20:22:28+00:00\",\"dateModified\":\"2019-10-11T16:29:10+00:00\",\"author\":{\"@id\":\"https:\/\/zappysys.com\/blog\/#\/schema\/person\/2756c237457fbc95d82cb38962f81f82\"},\"description\":\"Learn how to load Google Search Console API in SSIS, Import in SQL Server, and integrate in ODBC Apps (e.g. Excel, Power BI, Informatica, C#, JAVA and more)\",\"breadcrumb\":{\"@id\":\"https:\/\/zappysys.com\/blog\/get-data-google-search-console-api-ssis-odbc-drivers\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/zappysys.com\/blog\/get-data-google-search-console-api-ssis-odbc-drivers\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/zappysys.com\/blog\/get-data-google-search-console-api-ssis-odbc-drivers\/#primaryimage\",\"url\":\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2019\/10\/call-google-search-api-using-oauth-ssis-rest-api-task.png\",\"contentUrl\":\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2019\/10\/call-google-search-api-using-oauth-ssis-rest-api-task.png\",\"width\":1027,\"height\":869,\"caption\":\"Call Google Search Console API using SSIS REST API Task (OAuth Authentication)\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/zappysys.com\/blog\/get-data-google-search-console-api-ssis-odbc-drivers\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/zappysys.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Get data from Google Search Console API in SSIS and ODBC Apps\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/zappysys.com\/blog\/#website\",\"url\":\"https:\/\/zappysys.com\/blog\/\",\"name\":\"ZappySys Blog\",\"description\":\"SSIS \/ ODBC Drivers \/ API Connectors for JSON, XML, Azure, Amazon AWS, Salesforce, MongoDB and more\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/zappysys.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/zappysys.com\/blog\/#\/schema\/person\/2756c237457fbc95d82cb38962f81f82\",\"name\":\"ZappySys\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/zappysys.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5c9be148088ba9b8af8e955c5f7c22b5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/5c9be148088ba9b8af8e955c5f7c22b5?s=96&d=mm&r=g\",\"caption\":\"ZappySys\"},\"sameAs\":[\"http:\/\/www.zappysys.com\/\",\"https:\/\/www.facebook.com\/ZappySys\/\",\"https:\/\/twitter.com\/https:\/\/twitter.com\/zappysys\/\"],\"url\":\"https:\/\/zappysys.com\/blog\/author\/admin\/\"}]}<\/script>\r\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Get data from Google Search Console API in SSIS and ODBC Apps | ZappySys Blog","description":"Learn how to load Google Search Console API in SSIS, Import in SQL Server, and integrate in ODBC Apps (e.g. Excel, Power BI, Informatica, C#, JAVA and more)","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/zappysys.com\/blog\/get-data-google-search-console-api-ssis-odbc-drivers\/","og_locale":"en_US","og_type":"article","og_title":"Get data from Google Search Console API in SSIS and ODBC Apps | ZappySys Blog","og_description":"Learn how to load Google Search Console API in SSIS, Import in SQL Server, and integrate in ODBC Apps (e.g. Excel, Power BI, Informatica, C#, JAVA and more)","og_url":"https:\/\/zappysys.com\/blog\/get-data-google-search-console-api-ssis-odbc-drivers\/","og_site_name":"ZappySys Blog","article_author":"https:\/\/www.facebook.com\/ZappySys\/","article_published_time":"2019-10-09T20:22:28+00:00","article_modified_time":"2019-10-11T16:29:10+00:00","og_image":[{"width":1027,"height":869,"url":"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2019\/10\/call-google-search-api-using-oauth-ssis-rest-api-task.png","type":"image\/png"}],"author":"ZappySys","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/zappysys\/","twitter_misc":{"Written by":"ZappySys","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/zappysys.com\/blog\/get-data-google-search-console-api-ssis-odbc-drivers\/","url":"https:\/\/zappysys.com\/blog\/get-data-google-search-console-api-ssis-odbc-drivers\/","name":"Get data from Google Search Console API in SSIS and ODBC Apps | ZappySys Blog","isPartOf":{"@id":"https:\/\/zappysys.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/zappysys.com\/blog\/get-data-google-search-console-api-ssis-odbc-drivers\/#primaryimage"},"image":{"@id":"https:\/\/zappysys.com\/blog\/get-data-google-search-console-api-ssis-odbc-drivers\/#primaryimage"},"thumbnailUrl":"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2019\/10\/call-google-search-api-using-oauth-ssis-rest-api-task.png","datePublished":"2019-10-09T20:22:28+00:00","dateModified":"2019-10-11T16:29:10+00:00","author":{"@id":"https:\/\/zappysys.com\/blog\/#\/schema\/person\/2756c237457fbc95d82cb38962f81f82"},"description":"Learn how to load Google Search Console API in SSIS, Import in SQL Server, and integrate in ODBC Apps (e.g. Excel, Power BI, Informatica, C#, JAVA and more)","breadcrumb":{"@id":"https:\/\/zappysys.com\/blog\/get-data-google-search-console-api-ssis-odbc-drivers\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zappysys.com\/blog\/get-data-google-search-console-api-ssis-odbc-drivers\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zappysys.com\/blog\/get-data-google-search-console-api-ssis-odbc-drivers\/#primaryimage","url":"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2019\/10\/call-google-search-api-using-oauth-ssis-rest-api-task.png","contentUrl":"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2019\/10\/call-google-search-api-using-oauth-ssis-rest-api-task.png","width":1027,"height":869,"caption":"Call Google Search Console API using SSIS REST API Task (OAuth Authentication)"},{"@type":"BreadcrumbList","@id":"https:\/\/zappysys.com\/blog\/get-data-google-search-console-api-ssis-odbc-drivers\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zappysys.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Get data from Google Search Console API in SSIS and ODBC Apps"}]},{"@type":"WebSite","@id":"https:\/\/zappysys.com\/blog\/#website","url":"https:\/\/zappysys.com\/blog\/","name":"ZappySys Blog","description":"SSIS \/ ODBC Drivers \/ API Connectors for JSON, XML, Azure, Amazon AWS, Salesforce, MongoDB and more","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/zappysys.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/zappysys.com\/blog\/#\/schema\/person\/2756c237457fbc95d82cb38962f81f82","name":"ZappySys","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zappysys.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/5c9be148088ba9b8af8e955c5f7c22b5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5c9be148088ba9b8af8e955c5f7c22b5?s=96&d=mm&r=g","caption":"ZappySys"},"sameAs":["http:\/\/www.zappysys.com\/","https:\/\/www.facebook.com\/ZappySys\/","https:\/\/twitter.com\/https:\/\/twitter.com\/zappysys\/"],"url":"https:\/\/zappysys.com\/blog\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/posts\/8128"}],"collection":[{"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/comments?post=8128"}],"version-history":[{"count":5,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/posts\/8128\/revisions"}],"predecessor-version":[{"id":8140,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/posts\/8128\/revisions\/8140"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/media\/8131"}],"wp:attachment":[{"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/media?parent=8128"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/categories?post=8128"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/tags?post=8128"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}