{"id":564,"date":"2016-06-13T16:32:55","date_gmt":"2016-06-13T16:32:55","guid":{"rendered":"http:\/\/zappysys.com\/blog\/?p=564"},"modified":"2025-04-17T14:27:37","modified_gmt":"2025-04-17T14:27:37","slug":"get-data-from-google-adwords-using-ssis","status":"publish","type":"post","link":"https:\/\/zappysys.com\/blog\/get-data-from-google-adwords-using-ssis\/","title":{"rendered":"How to get data from Google AdWords using SSIS"},"content":{"rendered":"<h2>Introduction<\/h2>\n<div class=\"su-note\"  style=\"border-color:#e5de9d;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;\"><div class=\"su-note-inner su-u-clearfix su-u-trim\" style=\"background-color:#FFF8B7;border-color:#ffffff;color:#333333;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;\"><strong>UPDATE:<\/strong>\u00a0ZappySys has released a brand new <a href=\"https:\/\/zappysys.com\/api\/integration-hub\/google-ads-connector\/\">API Connector for Google AdWords<\/a> which makes it much simpler to\u00a0<strong>Read\/Write Google AdWords Data in SSIS\/ODBC<\/strong> compared to the steps listed in this article. You can still use steps from this article but if you are new to API or want to avoid learning curve with API then use newer approach.<\/p>\n<p>Please visit <a href=\"https:\/\/zappysys.com\/api\/integration-hub\/\">this page to see all<\/a>\u00a0Pre-Configured ready to use API connectors which you can use in <a href=\"https:\/\/zappysys.com\/products\/ssis-powerpack\/ssis-api-source\/\">SSIS API Source<\/a> \/ <a href=\"https:\/\/zappysys.com\/products\/ssis-powerpack\/ssis-api-destination\/\">SSIS API Destination<\/a> OR\u00a0<a href=\"https:\/\/zappysys.com\/products\/odbc-powerpack\/odbc-api-driver\/\">API ODBC Driver<\/a> (for non-SSIS Apps such as Excel, Power BI, Informatica).<br \/>\n<\/div><\/div>\n<p style=\"text-align: justify;\"><strong><a href=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/google-adwords-api-integration.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-1663 alignleft\" src=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/google-adwords-api-integration.png\" alt=\"\" width=\"128\" height=\"128\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/google-adwords-api-integration.png 273w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/google-adwords-api-integration-150x150.png 150w\" sizes=\"(max-width: 128px) 100vw, 128px\" \/><\/a>Google AdWords<\/strong> is one of the most popular Advertise Platforms. In this article, you will learn <em>how to get data from Google AdWords<\/em>\u00a0by calling Google AdWords Web Service method and using drag and drop <strong><a href=\"\/\/zappysys.com\/products\/ssis-powerpack\/ssis-xml-source\/\" target=\"_blank\" rel=\"noopener\">SSIS XML\/SOAP connector<\/a><\/strong> (No coding required :)). Google AdWords Web Services allows retrieving various data such as account info, campaigns; as well as writing data, such as creating a campaign, add a keyword. Basically, it allows controlling your AdWords account programmatically instead of using the AdWords dashboard. For demo purposes, we will <strong>get\u00a0data from Google AdWords<\/strong> Account and <strong>load it into Microsoft SQL Server <\/strong>(but you can use this technique to save any supported targets in SSIS (e.g. Excel, FlatFile, Oracle, MySQL, IBM DB2, etc.).<\/p>\n<p>If you desire to download a report from AdWords, you must follow a different approach described in an <a href=\"https:\/\/zappysys.com\/blog\/download-adwords-report-using-google-api-odbc-xml-driver\/\">article on how to download AdWords report<\/a>. It describes how to download a report using ODBC and XML Driver but the concepts introduced there can be applied to SSIS as well.<\/p>\n<p>If you are looking for a similar article for <strong>Google DoubleClick for Publisher<\/strong> (Google DFP) then <a href=\"\/\/zappysys.com\/blog\/calling-google-dfp-api-with-ssis-doubleclick-soap-api\/\" target=\"_blank\" rel=\"noopener\">check this article<\/a>.<\/p>\n<p>You will also learn <strong>how to create Google Ads<\/strong> or modify any other objects by calling SOAP API using <u><span style=\"color: #000080;\">SSIS REST API Task<\/span><\/u>.<\/p>\n<h2>SSIS Tasks\/Connectors discussed in this Article<\/h2>\n<p>In this article we will use following Connector(s) and Connection Manager to archive full data integration with Google AdWords.<\/p>\n<p>Following SSIS Connectors support <strong>OAuth Connectivity<\/strong>. When you use below connectors no coding required to pull data from any OAuth enabled services (e.g. Twitter, Facebook, LinkedIn).<\/p>\n<div class=\"su-table su-table-alternate\">\n<table>\n<tbody>\n<tr>\n<td width=\"36\"><span style=\"color: #248cc8\"><img decoding=\"async\" src=\"\/\/zappysys.com\/images\/ssis-powerpack\/ssis-rest-api-web-service-task.png\" alt=\"Custom SSIS Tasks - Call REST API Webservice (GET, POST, DELETE etc)\" width=\"32\" \/><\/span><\/td>\n<td><u><span style=\"color: #248cc8\"><a href=\"\/\/zappysys.com\/products\/ssis-powerpack\/ssis-rest-api-web-service-task\/\" target=\"_blank\" rel=\"noopener\">REST API Task<\/a><\/span><\/u><\/td>\n<\/tr>\n<tr>\n<td width=\"36\"><span style=\"color: #248cc8\"><img decoding=\"async\" src=\"\/\/zappysys.com\/onlinehelp\/ssis-powerpack\/scr\/images\/oauth-connection\/ssis-oauth-connection-manager.png\" alt=\"SSIS OAuth Connection Manager\" width=\"32\" \/><\/span><\/td>\n<td><a href=\"\/\/zappysys.com\/onlinehelp\/ssis-powerpack\/scr\/ssis-oauth-connection-manager.htm\" target=\"_blank\" rel=\"noopener\"><span style=\"color: #248cc8\">OAuth Connection Manager<\/span><\/a><\/td>\n<\/tr>\n<tr>\n<td width=\"36\"><span style=\"color: #248cc8\"><img decoding=\"async\" src=\"\/\/zappysys.com\/images\/ssis-powerpack\/ssis-xml-source.png\" alt=\"Custom SSIS Components - XML Source (File, REST, SOAP)\" width=\"32\" \/><\/span><\/td>\n<td><a href=\"\/\/zappysys.com\/products\/ssis-powerpack\/ssis-xml-source\/\" target=\"_blank\" rel=\"noopener\"><span style=\"color: #248cc8\">XML Source (REST API, SOAP Call or File data)<\/span><\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h2>Two different ways to get Google AdWords Data in SSIS<\/h2>\n<p>There are two ways you can extract Google AdWords data in SSIS.<\/p>\n<ol>\n<li>Use <a href=\"\/\/zappysys.com\/products\/ssis-powerpack\/ssis-google-analytics-source-connector\/\" target=\"_blank\" rel=\"noopener\">Google Analytics Source<\/a> (For more info <a href=\"\/\/zappysys.com\/blog\/get-data-from-google-analytics-in-ssis-using-rest-api-call\/\" target=\"_blank\" rel=\"noopener\">see this article<\/a>)\u00a0\u00a0(Consume AdWords data using Google Analytics REST API)<\/li>\n<li>Use XML Source along with OAuth connection manager (Consume AdWords data using SOAP API)<\/li>\n<\/ol>\n<p>In this article we will only discuss Approach #2. For approach #1 refer <a href=\"\/\/zappysys.com\/blog\/get-data-from-google-analytics-in-ssis-using-rest-api-call\/#How_to_read_google_Adwords_Data_using_Google_Analytics_Source\" target=\"_blank\" rel=\"noopener\">see this link<\/a><\/p>\n<p>Advantage of #2 is you get total control of full API set for AdWords but you have to do lot more manual work. For Approach #1 is lot simpler but you get access to limited reports (Dimensions and Metrics).<\/p>\n<h2>Google AdWords API Integration Example Screenshot<\/h2>\n<p>Below is screenshot of sample package discussed in this article (<a href=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/OAuthGoogleAdWords_2012.zip\" target=\"_blank\" rel=\"noopener\">Download from here<\/a>). As you can see we tried to demonstrate Reading data and Managing data (e.g. Create Ad) in the same package. You can extend these technique to perform any type of operations in <strong>Google AdWords<\/strong> or similar service such as <strong>DoubleClick for Publisher<\/strong><\/p>\n<div id=\"attachment_573\" style=\"width: 610px\" class=\"wp-caption alignnone\"><a href=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/ssis-package-extract-google-adwords-data-soap-api-create-ad-get-campaigns.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-573\" class=\"wp-image-573\" src=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/ssis-package-extract-google-adwords-data-soap-api-create-ad-get-campaigns.png\" alt=\"Google AdWords API Integration Example - Create Ad, Get Accounts, Get Campaigns, Get Ad Groups, Get Ads (Extract AdWords data via SOAP API) , Read data using Selector Method or use AWQL query language\" width=\"600\" height=\"391\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/ssis-package-extract-google-adwords-data-soap-api-create-ad-get-campaigns.png 732w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/ssis-package-extract-google-adwords-data-soap-api-create-ad-get-campaigns-300x195.png 300w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><p id=\"caption-attachment-573\" class=\"wp-caption-text\">Google AdWords API Integration Example &#8211; Create Ad, Get Accounts, Get Campaigns, Get Ad Groups, Get Ads (Extract AdWords data via SOAP API, Read data using Selector Method or use AWQL query language)<\/p><\/div>\n<h2>Step-By-Step Tutorial<\/h2>\n<p>Here are few high level steps you will have to perform to extract data from <strong>Google AdWords API<\/strong> using SSIS. This section assumes you have ClientID and Developer Token to access data. if you don&#8217;t have that then read next 2-3 sections.<\/p>\n<ol>\n<li>Download and install <a href=\"\/\/zappysys.com\/products\/ssis-powerpack\/\">SSIS PowerPack from here<\/a><\/li>\n<li>Create new SSIS Project<\/li>\n<li>From SSIS toolbox drag DataFlow Task and go to dataflow designer<\/li>\n<li>From toolbox of drag <a href=\"\/\/zappysys.com\/products\/ssis-powerpack\/ssis-xml-source\/\">ZS XML Source<\/a><\/li>\n<li>Double click <strong>XML Source<\/strong> to configure it<\/li>\n<li>Specify API URL from which you want to read data<br \/>\nExample : <span style=\"text-decoration: underline;\">https:\/\/adwords.google.com\/api\/adwords\/mcm\/<strong>v201509<\/strong>\/ManagedCustomerService<\/span><\/li>\n<li>Now check Use Credentials check box and select New <strong>ZS-OAuth<\/strong> connection manager.<\/li>\n<li>On connection manager UI you can select <strong>Google<\/strong> from Provider Dropdown.<\/li>\n<li>Under Scopes enter following (Scope is basically permission)\n<pre class=\"lang:default highlight:0 decode:true\">https:\/\/www.googleapis.com\/auth\/adwords<\/pre>\n<p>&nbsp;<\/li>\n<li>Now click <strong>Generate Token<\/strong> and when prompted login and in the last step Accept.<\/li>\n<li>If everything went ok then you will see <strong>AccessToken<\/strong> and <strong>RefreshToken<\/strong> populated.<\/li>\n<li>Click <strong>Test connection<\/strong> and close the UI by clicking OK<\/li>\n<li>Now on XML Source &#8211; Select HTTP Request Method as <strong>POST<\/strong><\/li>\n<li>In the Request Body click edit and enter request as below (Replace DEV_TOKEN and CLIENT_ID placeholders below)\n<pre class=\"lang:xhtml decode:true\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\r\n&lt;soap:Envelope xmlns:soap=\"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/\" xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\" xmlns:xsd=\"http:\/\/www.w3.org\/2001\/XMLSchema\"&gt;\r\n\t&lt;soap:Header&gt;\r\n\t\t&lt;RequestHeader xmlns=\"https:\/\/adwords.google.com\/api\/adwords\/mcm\/v201605\"&gt;\r\n\t\t\t&lt;developerToken&gt;ENTER_YOUR_DEV_TOKEN_HERE&lt;\/developerToken&gt;\r\n\t\t\t&lt;clientCustomerId&gt;ENTER_YOUR_CLIENT_ID_HERE&lt;\/clientCustomerId&gt;\r\n\t\t\t&lt;userAgent&gt;ZappySys SSIS PowerPack v1&lt;\/userAgent&gt;\r\n\t\t&lt;\/RequestHeader&gt;\r\n\t&lt;\/soap:Header&gt;\r\n\t&lt;soap:Body&gt;\r\n\t\t&lt;get xmlns=\"https:\/\/adwords.google.com\/api\/adwords\/mcm\/{{User::ApiVersion}}\"&gt;\r\n\t\t\t&lt;serviceSelector&gt;\r\n\t\t\t\t&lt;fields&gt;CustomerId&lt;\/fields&gt;\r\n\t\t\t\t&lt;fields&gt;Name&lt;\/fields&gt;\r\n\t\t\t&lt;\/serviceSelector&gt;\r\n\t\t&lt;\/get&gt;\r\n\t&lt;\/soap:Body&gt;\r\n&lt;\/soap:Envelope&gt;<\/pre>\n<p>&nbsp;<\/p>\n<div class=\"su-note\"  style=\"border-color:#e5e5c6;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;\"><div class=\"su-note-inner su-u-clearfix su-u-trim\" style=\"background-color:#ffffe0;border-color:#ffffff;color:#333333;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;\">\n<p>If you are wondering how did we get above XML fragment for Request Body then <a href=\"\/\/zappysys.com\/blog\/calling-soap-web-service-in-ssis-xml-source\/\" target=\"_blank\" rel=\"noopener\">Check\u00a0this article on how to use SoapUI (free 3rd party tool) to create SOAP request Bodyfrom WSDL<\/a>. Google AdWords\u00a0has many API endpoints for different service. For each service you have different Api URL and different WSDL. In the next section you can learn how to create correct SOAP Body (for POST) using <strong>SoapUI<\/strong> tool.<\/p>\n<p>For example if you are calling ManagedCustomerService\u00a0API for version <strong>v201609<\/strong>\u00a0then your <strong>help page URL would be like this<\/strong><br \/>\n<a href=\"https:\/\/developers.google.com\/adwords\/api\/docs\/reference\/v201609\/ManagedCustomerService\" target=\"_blank\" rel=\"noopener\">https:\/\/developers.google.com\/adwords\/api\/docs\/reference\/v201609\/ManagedCustomerService<\/a><\/p>\n<p>And on the same page you will see <strong>WSDL link below<\/strong><br \/>\n<a href=\"https:\/\/ads.google.com\/apis\/ads\/publisher\/v201702\/NetworkService?wsdl\" target=\"_blank\" rel=\"noopener\">https:\/\/ads.google.com\/apis\/ads\/publisher\/v201702\/NetworkService?wsdl<\/a><br \/>\n(Just download that WSDL XML and save to local disk then use with SoapUI to generate XML body to submit for any DFP API call.)<\/p>\n<p><a href=\"\/\/zappysys.com\/blog\/calling-google-dfp-api-with-ssis-doubleclick-soap-api\/#How_to_generate_SOAP_Request_Body_using_SoapUI_tool\" target=\"_blank\" rel=\"noopener\">See this link for more information<\/a>\u00a0(Its for Google DoubleClick Ad Platform but you will get an idea)<\/p>\n<\/div><\/div><\/li>\n<li>Go to Array handling tab at the bottom and enter text : <strong>ns2:entries<\/strong> &#8211; By doing this we will treat <strong>&lt;ns2:entries&gt;<\/strong> node as array eventhough only one entry found in response (By default content with multiple records treated as array).\n<div id=\"attachment_571\" style=\"width: 430px\" class=\"wp-caption alignnone\"><a href=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/soap-xml-response-array-handling-adwords-api.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-571\" class=\"size-full wp-image-571\" src=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/soap-xml-response-array-handling-adwords-api.png\" alt=\"Handling Array Element Nodes in SOAP Response\" width=\"420\" height=\"134\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/soap-xml-response-array-handling-adwords-api.png 420w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/soap-xml-response-array-handling-adwords-api-300x96.png 300w\" sizes=\"(max-width: 420px) 100vw, 420px\" \/><\/a><p id=\"caption-attachment-571\" class=\"wp-caption-text\">Handling Array Element Nodes in SOAP Response<\/p><\/div><\/li>\n<li>On the filter expression click edit and highlight entries node and click ok. This will produce something like below in filter textbox\n<pre class=\"lang:default highlight:0 decode:true\">$.soap:Envelope.soap:Body.ns2:getResponse.ns2:rval.ns2:entries[*]<\/pre>\n<p>&nbsp;<\/li>\n<li>Now click preview to see actual data.<\/li>\n<li>Click OK to save UI. Now you can connect source to target such as SQL Server or <a href=\"\/\/zappysys.com\/onlinehelp\/ssis-powerpack\/scr\/trash-destination.htm\" target=\"_blank\" rel=\"noopener\">Trash Destination<\/a>.<\/li>\n<\/ol>\n<blockquote><p>NOTE: in above example we used v201605 API version but change it to latest if this API is no more valid. Google expires API version pretty often so keep that in mind if you get depreciated API version error.<\/p><\/blockquote>\n<h2>Register for Developer Token to access AdWords account data using API<\/h2>\n<p>First important step to access any Google AdWords Account is request developer token. <a href=\"https:\/\/developers.google.com\/adwords\/api\/docs\/guides\/first-api-call\" target=\"_blank\" rel=\"noopener\">Click this link<\/a> for step by step information. Watch short vide to get overview on entire process to access data via API.<\/p>\n<h2>Find your Client ID<\/h2>\n<p>Next thing you will need to know is your ClientID. Most of API Requests will require your ClientID. Perform following steps to find your ClientID.<\/p>\n<p>Login to your AdWords Account using email address. At the top you will see your client ID as below screenshot.<\/p>\n<div id=\"attachment_567\" style=\"width: 610px\" class=\"wp-caption alignnone\"><a href=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/google-adwords-account-client-id-for-soap-api-calls.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-567\" class=\"wp-image-567\" src=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/google-adwords-account-client-id-for-soap-api-calls.png\" alt=\"How to find ClientID of your Google AdWords Account (Useful for making SOAP API Calls)\" width=\"600\" height=\"174\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/google-adwords-account-client-id-for-soap-api-calls.png 920w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/google-adwords-account-client-id-for-soap-api-calls-300x87.png 300w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><p id=\"caption-attachment-567\" class=\"wp-caption-text\">How to find ClientID of your Google AdWords Account (Useful for making SOAP API Calls)<\/p><\/div>\n<p>&nbsp;<\/p>\n<h2>Connect to Google AdWords API using OAuth<\/h2>\n<p>Connecting to any Google API will require OAuth 2.0. SSIS PowerPack has Protocol so you can easily extract data from API without coding complex token extract\/renew workflow. Such things usually requires some sort of programming but in our case you will do few clicks as described in Step-By-Step section earlier.<\/p>\n<p>Here is the screenshot of OAuth Connection Manager.<\/p>\n<div id=\"attachment_575\" style=\"width: 660px\" class=\"wp-caption alignnone\"><a href=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/calling-google-adwords-api-using-oauth-in-ssis.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-575\" class=\"wp-image-575\" src=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/calling-google-adwords-api-using-oauth-in-ssis.png\" alt=\"Connecting to Google AdWords API using OAuth 2.0 in SSIS (Consuming XML\/SOAP API)\" width=\"650\" height=\"403\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/calling-google-adwords-api-using-oauth-in-ssis.png 932w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/calling-google-adwords-api-using-oauth-in-ssis-300x186.png 300w\" sizes=\"(max-width: 650px) 100vw, 650px\" \/><\/a><p id=\"caption-attachment-575\" class=\"wp-caption-text\">Connecting to Google AdWords API using OAuth 2.0 in SSIS (Consuming XML\/SOAP API)<\/p><\/div>\n<p>&nbsp;<\/p>\n<h2>Extract data from Google AdWords using SOAP API Calls<\/h2>\n<p>When you define filter expression you can check\/uncheck &#8220;Include Parent Columns&#8221; setting. For AdWords SOAP Api you can uncheck so you only extract columns from rvals node in XML Response.<\/p>\n<div id=\"attachment_576\" style=\"width: 560px\" class=\"wp-caption alignnone\"><a href=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/google-adwords-api-select-xml-path-soap-request.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-576\" class=\"wp-image-576\" src=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/google-adwords-api-select-xml-path-soap-request.png\" alt=\"Extract data from Google AdWords SOAP\/XML Response\" width=\"550\" height=\"444\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/google-adwords-api-select-xml-path-soap-request.png 686w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/google-adwords-api-select-xml-path-soap-request-300x242.png 300w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/a><p id=\"caption-attachment-576\" class=\"wp-caption-text\">Extract data from Google AdWords SOAP\/XML Response<\/p><\/div>\n<p>&nbsp;<\/p>\n<h2>SOAP Response Paging \/ Looping<\/h2>\n<p>Many time you will get response which is larger than default page size in AdWords API Call. In that case you can specify few pagination attributes on XML Source Paging tab. For more information on paging options you may refer <a href=\"\/\/zappysys.com\/blog\/ssis-rest-api-looping-until-no-more-pages-found\/\" target=\"_blank\" rel=\"noopener\">this article<\/a> . This article is talking about JSON Source but same options are applicable for XML Source too.<\/p>\n<div id=\"attachment_626\" style=\"width: 513px\" class=\"wp-caption alignnone\"><a href=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/04\/ssis-xml-soap-api-pagination-google-adwords-pass-page-number.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-626\" class=\"size-full wp-image-626\" src=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/04\/ssis-xml-soap-api-pagination-google-adwords-pass-page-number.png\" alt=\"REST API Pagination - Passing PageNumber inside POST Body (Example: Google AdWords SOAP Api)\" width=\"503\" height=\"547\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/04\/ssis-xml-soap-api-pagination-google-adwords-pass-page-number.png 503w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/04\/ssis-xml-soap-api-pagination-google-adwords-pass-page-number-276x300.png 276w\" sizes=\"(max-width: 503px) 100vw, 503px\" \/><\/a><p id=\"caption-attachment-626\" class=\"wp-caption-text\">REST API Pagination &#8211; Passing PageNumber inside POST Body (Example: Google AdWords SOAP Api)<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_625\" style=\"width: 665px\" class=\"wp-caption alignnone\"><a href=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/04\/ssis-rest-api-pagination-pass-page-number-inside-request-body-post-data.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-625\" class=\"size-full wp-image-625\" src=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/04\/ssis-rest-api-pagination-pass-page-number-inside-request-body-post-data.png\" alt=\"Configure REST API Pagination - using Page Number via POST Body Method\" width=\"655\" height=\"447\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/04\/ssis-rest-api-pagination-pass-page-number-inside-request-body-post-data.png 655w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/04\/ssis-rest-api-pagination-pass-page-number-inside-request-body-post-data-300x205.png 300w\" sizes=\"(max-width: 655px) 100vw, 655px\" \/><\/a><p id=\"caption-attachment-625\" class=\"wp-caption-text\">Configure REST API Pagination &#8211; using Page Number via POST Body Method<\/p><\/div>\n<h2>Read Google AdWords data and Load into SQL Server<\/h2>\n<p>Using XML Source you can extract data in tabular format and then you can map that to SQL Server Target (Use OLEDB Destination \/ ADO.net Destination).<\/p>\n<div id=\"attachment_579\" style=\"width: 719px\" class=\"wp-caption alignnone\"><a href=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/extract-data-from-google-adwords-load-into-sql-server-using-ssis.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-579\" class=\"size-full wp-image-579\" src=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/extract-data-from-google-adwords-load-into-sql-server-using-ssis.png\" alt=\"Extract data from Google AdWords and load into SQL Server table using SSIS\" width=\"709\" height=\"403\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/extract-data-from-google-adwords-load-into-sql-server-using-ssis.png 709w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/extract-data-from-google-adwords-load-into-sql-server-using-ssis-300x171.png 300w\" sizes=\"(max-width: 709px) 100vw, 709px\" \/><\/a><p id=\"caption-attachment-579\" class=\"wp-caption-text\">Extract data from Google AdWords and load into SQL Server table using SSIS<\/p><\/div>\n<h2>Write data \/ Manage AdWords Account via REST API Calls<\/h2>\n<p>So far we have seen how to read data from AdWords account. But what if you have to create new records or write\/update AdWords data via API Calls in automated manner? No worry &#8211; If you have need for that then use <a href=\"\/\/zappysys.com\/products\/ssis-powerpack\/ssis-rest-api-web-service-task\/\" target=\"_blank\" rel=\"noopener\">SSIS REST API Task<\/a> which supports adhoc HTTP WebRequests including POST\/DELETE\/PUT etc. You can also upload files via REST API call using this task. This task supports rich error handling and saving your response into variable or files.<\/p>\n<h3>Create Ad under specific AdGroup<\/h3>\n<p>Below example shows how to create new ad under specific AdGroup using <u><span style=\"color: #000080;\">REST API Task<\/span><\/u><\/p>\n<p>Notice we have used few placeholders to make things dynamic using SSIS Variables. Once REST API Task is executed you will see new ad created.<\/p>\n<div id=\"attachment_577\" style=\"width: 590px\" class=\"wp-caption alignnone\"><a href=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/google-adwords-create-new-ad-using-soap-xml-api-ssis.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-577\" class=\"wp-image-577\" src=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/google-adwords-create-new-ad-using-soap-xml-api-ssis.png\" alt=\"Creating Google AdWords Ad using SOAP\/XML API in SSIS (REST API Task)\" width=\"580\" height=\"464\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/google-adwords-create-new-ad-using-soap-xml-api-ssis.png 703w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/google-adwords-create-new-ad-using-soap-xml-api-ssis-300x240.png 300w\" sizes=\"(max-width: 580px) 100vw, 580px\" \/><\/a><p id=\"caption-attachment-577\" class=\"wp-caption-text\">Creating Google AdWords Ad using SOAP\/XML API in SSIS (REST API Task)<\/p><\/div>\n<div id=\"attachment_578\" style=\"width: 660px\" class=\"wp-caption alignnone\"><a href=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/create-new-google-adwords-ad-via-soap-api-in-ssis.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-578\" class=\"wp-image-578\" src=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/create-new-google-adwords-ad-via-soap-api-in-ssis.png\" alt=\"Verify Google Ad created programmatically using SOAP\/XML API Call (SSIS REST API Task)\" width=\"650\" height=\"353\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/create-new-google-adwords-ad-via-soap-api-in-ssis.png 916w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/create-new-google-adwords-ad-via-soap-api-in-ssis-300x163.png 300w\" sizes=\"(max-width: 650px) 100vw, 650px\" \/><\/a><p id=\"caption-attachment-578\" class=\"wp-caption-text\">Verify Google Ad created programmatically using SOAP\/XML API Call (SSIS REST API Task)<\/p><\/div>\n<h2>Methods for Creating new records<\/h2>\n<p>Google AdWords API supports <strong>mutate<\/strong> method for writing data. Many service endpoints supports this method. Below example request will create new Ad.<\/p>\n<pre class=\"lang:xhtml decode:true\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\r\n&lt;soap:Envelope xmlns:soap=\"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/\" xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\" xmlns:xsd=\"http:\/\/www.w3.org\/2001\/XMLSchema\"&gt;\r\n\t&lt;soap:Header&gt;\r\n\t\t&lt;RequestHeader xmlns=\"https:\/\/adwords.google.com\/api\/adwords\/cm\/v201605\"&gt;\r\n\t\t\t&lt;developerToken&gt;{{User::varDevToken}}&lt;\/developerToken&gt;\r\n\t\t\t&lt;clientCustomerId&gt;{{User::varClientId}}&lt;\/clientCustomerId&gt;\r\n\t\t\t&lt;userAgent&gt;My Test AdWords App (AwApi-DotNet\/18.20.0, Common-Dotnet\/3.11.0, .NET CLR\/4.0.30319.18444, gzip)&lt;\/userAgent&gt;\r\n\t\t&lt;\/RequestHeader&gt;\r\n\t&lt;\/soap:Header&gt;\r\n\t&lt;soap:Body&gt;\r\n\t\t&lt;mutate xmlns=\"https:\/\/adwords.google.com\/api\/adwords\/cm\/v201605\"&gt;\r\n\t\t\t&lt;operations&gt;\r\n\t\t\t\t&lt;operator&gt;ADD&lt;\/operator&gt;\r\n\t\t\t\t&lt;operand&gt;\r\n\t                &lt;adGroupId&gt;30800928123&lt;\/adGroupId&gt;\r\n\t                &lt;ad xsi:type=\"TextAd\"&gt;\r\n\t                    &lt;displayUrl&gt;\/\/zappysys.com\/ad1&lt;\/displayUrl&gt;\r\n\t                    &lt;finalUrls&gt;\/\/zappysys.com\/ad1&lt;\/finalUrls&gt;\r\n\t                    &lt;headline&gt;This is my Ad&lt;\/headline&gt;\r\n\t                    &lt;description1&gt;This is Line 1&lt;\/description1&gt;\r\n\t                    &lt;description2&gt;This is Line 2&lt;\/description2&gt;\r\n\t                &lt;\/ad&gt;            \r\n\t\t\t\t&lt;\/operand&gt;\r\n\t\t\t&lt;\/operations&gt;\r\n\t\t&lt;\/mutate&gt;\r\n\t&lt;\/soap:Body&gt;\r\n&lt;\/soap:Envelope&gt;<\/pre>\n<h2>Methods for Reading AdWords data<\/h2>\n<p>Google AdWords API supports two methods for reading data. Most of AdWords service endpoints supports GET method also known as Selector method (Its basically sending query in XML format). Seconds method is Query Method. It uses SQL like query language known as <a href=\"https:\/\/developers.google.com\/adwords\/api\/docs\/guides\/awql\" target=\"_blank\" rel=\"noopener\">AWQL<\/a>. (Read more about <a href=\"https:\/\/developers.google.com\/adwords\/api\/docs\/guides\/awql\" target=\"_blank\" rel=\"noopener\">AWQL query language<\/a>). If you are SQL Programmer then you may like AWQL Query method better than Selector. But either way you will be able to pass following information.<\/p>\n<ul>\n<li>Columns you want to return<\/li>\n<li>Filter (e.g. Where Clause)<\/li>\n<li>Order By<\/li>\n<li>Paging information (e.g. PageNumber, PageSize)<\/li>\n<\/ul>\n<h3>Get Method (XML Selector)<\/h3>\n<p>For Get Method using XML tags to define columns, filters and order by\/paging information. Here is example Get method for below select query<\/p>\n<pre class=\"lang:tsql decode:true \">SELECT Id, Heading\r\nWHERE Status = 'ENABLED'\r\nORDER BY Heading DESC \r\nLIMIT 0,50<\/pre>\n<p><strong>Get Request (Get all Active Ads)<\/strong><\/p>\n<pre class=\"lang:xhtml decode:true \">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\r\n&lt;soap:Envelope xmlns:soap=\"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/\" xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\" xmlns:xsd=\"http:\/\/www.w3.org\/2001\/XMLSchema\"&gt;\r\n\t&lt;soap:Header&gt;\r\n\t\t&lt;RequestHeader xmlns=\"https:\/\/adwords.google.com\/api\/adwords\/cm\/v201605\"&gt;\r\n\t\t\t&lt;developerToken xmlns=\"https:\/\/adwords.google.com\/api\/adwords\/cm\/v201605\"&gt;{{User::varDevToken}}&lt;\/developerToken&gt;\r\n\t\t\t&lt;clientCustomerId xmlns=\"https:\/\/adwords.google.com\/api\/adwords\/cm\/v201605\"&gt;{{User::varClientId}}&lt;\/clientCustomerId&gt;\r\n\t\t\t&lt;userAgent xmlns=\"https:\/\/adwords.google.com\/api\/adwords\/cm\/v201605\"&gt;My Test AdWords App (AwApi-DotNet\/18.20.0, Common-Dotnet\/3.11.0, .NET CLR\/4.0.30319.18444, gzip)&lt;\/userAgent&gt;\r\n\t\t&lt;\/RequestHeader&gt;\r\n\t&lt;\/soap:Header&gt;\r\n\t&lt;soap:Body&gt;\r\n\t\t&lt;get xmlns=\"https:\/\/adwords.google.com\/api\/adwords\/cm\/v201605\"&gt;\r\n\t\t\t&lt;serviceSelector&gt;\r\n\t\t\t    &lt;fields&gt;Id&lt;\/fields&gt;\r\n\t\t\t    &lt;fields&gt;Headline&lt;\/fields&gt;\r\n\t\t\t    &lt;predicates&gt;\r\n\t\t\t        &lt;field&gt;Status&lt;\/field&gt;\r\n\t\t\t        &lt;operator&gt;EQUALS&lt;\/operator&gt;\r\n\t\t\t        &lt;values&gt;ENABLED&lt;\/values&gt;\r\n\t\t\t    &lt;\/predicates&gt;\r\n\t\t\t    &lt;ordering&gt;\r\n\t\t\t        &lt;field&gt;Headline&lt;\/field&gt;\r\n\t\t\t        &lt;sortOrder&gt;ASCENDING&lt;\/sortOrder&gt;\r\n\t\t\t    &lt;\/ordering&gt;\r\n\t\t\t    &lt;paging&gt;\r\n\t\t\t        &lt;startIndex&gt;0&lt;\/startIndex&gt;\r\n\t\t\t        &lt;numberResults&gt;50&lt;\/numberResults&gt;\r\n\t\t\t    &lt;\/paging&gt;\r\n\t\t\t&lt;\/serviceSelector&gt;\r\n\t\t&lt;\/get&gt;\r\n\t&lt;\/soap:Body&gt;\r\n&lt;\/soap:Envelope&gt;<\/pre>\n<h3>Query Method (AWQL Query &#8211; SQL like query language)<\/h3>\n<p>Below is sample Soap request for AWQL Method to read Ads listed under from specific AdGroups. To learn more AWQL Query Syntax <a href=\"https:\/\/developers.google.com\/adwords\/api\/docs\/guides\/awql\" target=\"_blank\" rel=\"noopener\">Click Here<\/a>.<\/p>\n<p>To learn more about which Columns you can use inside your AWQL Query <a href=\"https:\/\/developers.google.com\/adwords\/api\/docs\/appendix\/selectorfields#v201605-AdGroupAdService\" target=\"_blank\" rel=\"noopener\">Click here.<\/a> Note that each service support different fields for Select Clause, Where Clause and Order By Clause. AWQL language can be also used to query Predefined AdWords Reports. The only difference is .. FROM clause is required when you query Reports.<\/p>\n<pre class=\"lang:xhtml decode:true\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\r\n&lt;soap:Envelope xmlns:soap=\"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/\" xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\" xmlns:xsd=\"http:\/\/www.w3.org\/2001\/XMLSchema\"&gt;\r\n\t&lt;soap:Header&gt;\r\n\t\t&lt;RequestHeader xmlns=\"https:\/\/adwords.google.com\/api\/adwords\/cm\/v201605\"&gt;\r\n\t\t\t&lt;developerToken xmlns=\"https:\/\/adwords.google.com\/api\/adwords\/cm\/v201605\"&gt;YOUR_DEV_TOKEN&lt;\/developerToken&gt;\r\n\t\t\t&lt;clientCustomerId xmlns=\"https:\/\/adwords.google.com\/api\/adwords\/cm\/v201605\"&gt;YOUR_CLIENT_ID&lt;\/clientCustomerId&gt;\r\n\t\t\t&lt;userAgent xmlns=\"https:\/\/adwords.google.com\/api\/adwords\/cm\/v201605\"&gt;My Test AdWords App (AwApi-DotNet\/18.20.0, Common-Dotnet\/3.11.0, .NET CLR\/4.0.30319.18444, gzip)&lt;\/userAgent&gt;\r\n\t\t&lt;\/RequestHeader&gt;\r\n\t&lt;\/soap:Header&gt;\r\n\t&lt;soap:Body&gt;\r\n\t\t&lt;query xmlns=\"https:\/\/adwords.google.com\/api\/adwords\/cm\/v201605\"&gt;\r\n\t\t\t&lt;query&gt;\r\nSELECT Id, Name\r\nWHERE Status = 'ENABLED'\r\nLIMIT 0,5\r\n\t\t\t&lt;\/query&gt;\r\n\t\t&lt;\/query&gt;\r\n\t&lt;\/soap:Body&gt;\r\n&lt;\/soap:Envelope&gt;<\/pre>\n<p>&nbsp;<\/p>\n<h2>Call AdWords Reports API &#8211; Download Campaign Performance data<\/h2>\n<p>There will be a time you like to <a href=\"https:\/\/developers.google.com\/adwords\/api\/docs\/guides\/reporting#http_request_url\" target=\"_blank\" rel=\"noopener\">download Reports from Adwords<\/a>. For that\u00a0\u00a0<a href=\"https:\/\/zappysys.com\/blog\/download-adwords-report-using-google-api-odbc-xml-driver\/\" target=\"_blank\" rel=\"noopener\">read this article<\/a>. Its showing how to use ZappySys ODBC Driver to call AdWords Reporting API but concept is same in SSIS Product too due to similar UI elements.<\/p>\n<h2>Download Example SSIS Package<\/h2>\n<p><a href=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/OAuthGoogleAdWords_2012.zip\">Download SSIS 2012 \/ 2014\/ 2016 Sample<\/a><\/p>\n<h2>Conclusion<\/h2>\n<p><em>Google AdWords data integration<\/em> can be very challenging without right set of tools. <a href=\"\/\/zappysys.com\/products\/ssis-powerpack\/\">SSIS PowerPack<\/a> certainly makes it easy when you have to extract\/manage Google AdWords data. Innovative drag and drop approach gives you various options to cover simple or most advanced scenarios without relying on any Programming language (e.g. C#, Java, Python, Ruby etc).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Google AdWords is one of the most popular Advertise Platforms. In this article, you will learn how to get data from Google AdWords\u00a0by calling Google AdWords Web Service method and using drag and drop SSIS XML\/SOAP connector (No coding required :)). Google AdWords Web Services allows retrieving various data such as account info, campaigns; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1663,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[55,225],"tags":[107,215,108,154,59,56,109,60,3,67,12,4,7,100],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\r\n<title>How to get data from Google AdWords using SSIS | ZappySys Blog<\/title>\r\n<meta name=\"description\" content=\"Learn how to manage\/get data from Google AdWords using SSIS XML\/SOAP Connector. Edit\/Create Ads, Read Accounts, Campaigns, Ad Groups, Use AWQL Query.\" \/>\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-from-google-adwords-using-ssis\/\" \/>\r\n<meta property=\"og:locale\" content=\"en_US\" \/>\r\n<meta property=\"og:type\" content=\"article\" \/>\r\n<meta property=\"og:title\" content=\"How to get data from Google AdWords using SSIS | ZappySys Blog\" \/>\r\n<meta property=\"og:description\" content=\"Learn how to manage\/get data from Google AdWords using SSIS XML\/SOAP Connector. Edit\/Create Ads, Read Accounts, Campaigns, Ad Groups, Use AWQL Query.\" \/>\r\n<meta property=\"og:url\" content=\"https:\/\/zappysys.com\/blog\/get-data-from-google-adwords-using-ssis\/\" \/>\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=\"2016-06-13T16:32:55+00:00\" \/>\r\n<meta property=\"article:modified_time\" content=\"2025-04-17T14:27:37+00:00\" \/>\r\n<meta property=\"og:image\" content=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/google-adwords-api-integration.png\" \/>\r\n\t<meta property=\"og:image:width\" content=\"273\" \/>\r\n\t<meta property=\"og:image:height\" content=\"273\" \/>\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=\"12 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-from-google-adwords-using-ssis\/\",\"url\":\"https:\/\/zappysys.com\/blog\/get-data-from-google-adwords-using-ssis\/\",\"name\":\"How to get data from Google AdWords using SSIS | ZappySys Blog\",\"isPartOf\":{\"@id\":\"https:\/\/zappysys.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/zappysys.com\/blog\/get-data-from-google-adwords-using-ssis\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/zappysys.com\/blog\/get-data-from-google-adwords-using-ssis\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/google-adwords-api-integration.png\",\"datePublished\":\"2016-06-13T16:32:55+00:00\",\"dateModified\":\"2025-04-17T14:27:37+00:00\",\"author\":{\"@id\":\"https:\/\/zappysys.com\/blog\/#\/schema\/person\/2756c237457fbc95d82cb38962f81f82\"},\"description\":\"Learn how to manage\/get data from Google AdWords using SSIS XML\/SOAP Connector. Edit\/Create Ads, Read Accounts, Campaigns, Ad Groups, Use AWQL Query.\",\"breadcrumb\":{\"@id\":\"https:\/\/zappysys.com\/blog\/get-data-from-google-adwords-using-ssis\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/zappysys.com\/blog\/get-data-from-google-adwords-using-ssis\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/zappysys.com\/blog\/get-data-from-google-adwords-using-ssis\/#primaryimage\",\"url\":\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/google-adwords-api-integration.png\",\"contentUrl\":\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/google-adwords-api-integration.png\",\"width\":273,\"height\":273},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/zappysys.com\/blog\/get-data-from-google-adwords-using-ssis\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/zappysys.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to get data from Google AdWords using SSIS\"}]},{\"@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":"How to get data from Google AdWords using SSIS | ZappySys Blog","description":"Learn how to manage\/get data from Google AdWords using SSIS XML\/SOAP Connector. Edit\/Create Ads, Read Accounts, Campaigns, Ad Groups, Use AWQL Query.","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-from-google-adwords-using-ssis\/","og_locale":"en_US","og_type":"article","og_title":"How to get data from Google AdWords using SSIS | ZappySys Blog","og_description":"Learn how to manage\/get data from Google AdWords using SSIS XML\/SOAP Connector. Edit\/Create Ads, Read Accounts, Campaigns, Ad Groups, Use AWQL Query.","og_url":"https:\/\/zappysys.com\/blog\/get-data-from-google-adwords-using-ssis\/","og_site_name":"ZappySys Blog","article_author":"https:\/\/www.facebook.com\/ZappySys\/","article_published_time":"2016-06-13T16:32:55+00:00","article_modified_time":"2025-04-17T14:27:37+00:00","og_image":[{"width":273,"height":273,"url":"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/google-adwords-api-integration.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":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/zappysys.com\/blog\/get-data-from-google-adwords-using-ssis\/","url":"https:\/\/zappysys.com\/blog\/get-data-from-google-adwords-using-ssis\/","name":"How to get data from Google AdWords using SSIS | ZappySys Blog","isPartOf":{"@id":"https:\/\/zappysys.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/zappysys.com\/blog\/get-data-from-google-adwords-using-ssis\/#primaryimage"},"image":{"@id":"https:\/\/zappysys.com\/blog\/get-data-from-google-adwords-using-ssis\/#primaryimage"},"thumbnailUrl":"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/google-adwords-api-integration.png","datePublished":"2016-06-13T16:32:55+00:00","dateModified":"2025-04-17T14:27:37+00:00","author":{"@id":"https:\/\/zappysys.com\/blog\/#\/schema\/person\/2756c237457fbc95d82cb38962f81f82"},"description":"Learn how to manage\/get data from Google AdWords using SSIS XML\/SOAP Connector. Edit\/Create Ads, Read Accounts, Campaigns, Ad Groups, Use AWQL Query.","breadcrumb":{"@id":"https:\/\/zappysys.com\/blog\/get-data-from-google-adwords-using-ssis\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zappysys.com\/blog\/get-data-from-google-adwords-using-ssis\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zappysys.com\/blog\/get-data-from-google-adwords-using-ssis\/#primaryimage","url":"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/google-adwords-api-integration.png","contentUrl":"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/06\/google-adwords-api-integration.png","width":273,"height":273},{"@type":"BreadcrumbList","@id":"https:\/\/zappysys.com\/blog\/get-data-from-google-adwords-using-ssis\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zappysys.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to get data from Google AdWords using SSIS"}]},{"@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\/564"}],"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=564"}],"version-history":[{"count":15,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/posts\/564\/revisions"}],"predecessor-version":[{"id":11355,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/posts\/564\/revisions\/11355"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/media\/1663"}],"wp:attachment":[{"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/media?parent=564"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/categories?post=564"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/tags?post=564"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}