Re: oauth2 service account with google adwords api for ruby
On Tuesday, August 14, 2012 8:07:08 AM UTC-7, Antony Vorobiev wrote: Hello all, I was using ClientLogin authorization method in my server application for several months, but now it throws CaptchaRequired error because of too much authorization attempts for about 100 client_customer_id in a batch, so I'm looking for the way to get 100+ client accounts processed (sync campaigns, fetch campaign statuses, report statistics) in reasonable time (several minutes) without any user interaction according to - https://developers.google.com/accounts/docs/OAuth2 - this document, the most suitable method for me is OAuth 2.0 Service Account authorization I've got all the credentials - Client ID, Email address, Application name and private key file, but I still have no idea how can I get this stuff working. Could you please provide me with an example of how can I access to Adwords API via OAuth 2.0 Service Account and fetch, for example, account hierarchy using Ruby Adwords API library? -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en
Re: oauth2 service account with google adwords api for ruby
On Monday, October 8, 2012 11:21:49 PM UTC-7, Sophornia Bartee wrote: On Tuesday, August 14, 2012 8:07:08 AM UTC-7, Antony Vorobiev wrote: Hello all, I was using ClientLogin authorization method in my server application for several months, but now it throws CaptchaRequired error because of too much authorization attempts for about 100 client_customer_id in a batch, so I'm looking for the way to get 100+ client accounts processed (sync campaigns, fetch campaign statuses, report statistics) in reasonable time (several minutes) without any user interaction according to - https://developers.google.com/accounts/docs/OAuth2 - this document, the most suitable method for me is OAuth 2.0 Service Account authorization I've got all the credentials - Client ID, Email address, Application name and private key file, but I still have no idea how can I get this stuff working. Could you please provide me with an example of how can I access to Adwords API via OAuth 2.0 Service Account and fetch, for example, account hierarchy using Ruby Adwords API library? -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en
Re: oauth2 service account with google adwords api for ruby
On Tuesday, August 14, 2012 8:07:08 AM UTC-7, Antony Vorobiev wrote: Hello all, I was using ClientLogin authorization method in my server application for several months, but now it throws CaptchaRequired error because of too much authorization attempts for about 100 client_customer_id in a batch, so I'm looking for the way to get 100+ client accounts processed (sync campaigns, fetch campaign statuses, report statistics) in reasonable time (several minutes) without any user interaction according to - https://developers.google.com/accounts/docs/OAuth2 - this document, the most suitable method for me is OAuth 2.0 Service Account authorization I've got all the credentials - Client ID, Email address, Application name and private key file, but I still have no idea how can I get this stuff working. Could you please provide me with an example of how can I access to Adwords API via OAuth 2.0 Service Account and fetch, for example, account hierarchy using Ruby Adwords API library? -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en
CriterionError.INVALID_CRITERION_ID on setting location-id on v201209 in sandbox
Hi, I'm using the lastest adwords api v201209 with the php client software. Using the same code in sandbox instead of the production server fails with the following message: Fatal error: Uncaught SoapFault exception: [soap:Server] [CriterionError.INVALID_CRITERION_ID @ selector.searchParameters[2].locations[0]; trigger:'2276'] In v201206 it still works in production and also in sandbox. Greetings $selector = new TargetingIdeaSelector(); $selector-requestType = 'STATS'; $selector-ideaType = 'KEYWORD'; $selector-requestedAttributeTypes = array('KEYWORD_TEXT', 'COMPETITION', 'SEARCH_VOLUME'); $selector-localeCode = 'de_DE'; $selector-currencyCode = 'EUR'; $paging = new Paging(); $paging-startIndex = 0; $paging-numberResults = 500; $selector-paging = $paging; $relatedToQuerySearchParameter = new RelatedToQuerySearchParameter(); $relatedToQuerySearchParameter-queries = $kwList; $location = new Location(); $location-id = 2276; //2040 $locationSearchParameter = new LocationSearchParameter(); $locationSearchParameter-locations = array( $location ); $language = new Language(); $language-id = 1001; $languageSearchParameter = new LanguageSearchParameter(); $languageSearchParameter-languages = array( $language ); $selector-searchParameters = array($relatedToQuerySearchParameter,$locationSearchParameter,$languageSearchParameter); -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en
I don't understant the billing to API adword access
Hey, i'm going to develop an application like market samurai but more friendly and more usefull. Before i have a question. To use APi adwords in my application, Google ask to create a MCC account to have a token. But when my application will be finish, i will sell it but for my customers which pay for my application or service, who pay every api adwords access ? It's me (the MCC acount developer which my token api) or the client which use my application with his adwords account ? For example, market samurai, you buy a market samurai licence but you don't pay for use it after and however it uses api adwords (free ?)... So it's Market Samurai which pay for ALL acces at ads api ? Thank you, Sebastien -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en
Re: oauth2 service account with google adwords api for ruby
Hello Marcin, Please see my reply to the initial post which should cover the issue. I've also created an article with more details specific to Ruby: http://googleadsdeveloper.blogspot.com/2012/10/using-oauth20-authorization-method-with.html Let me know if you have any questions. -Danial, AdWords API Team. On Monday, October 8, 2012 5:58:10 PM UTC+4, Marcin Urbanski wrote: Any update on this? I have exactly the same problem. If Ruby gems won't support it soon, I can use Java. Are there any examples on how to use Service to Service authentication? On Tuesday, August 14, 2012 5:07:08 PM UTC+2, Antony Vorobiev wrote: Hello all, I was using ClientLogin authorization method in my server application for several months, but now it throws CaptchaRequired error because of too much authorization attempts for about 100 client_customer_id in a batch, so I'm looking for the way to get 100+ client accounts processed (sync campaigns, fetch campaign statuses, report statistics) in reasonable time (several minutes) without any user interaction according to - https://developers.google.com/accounts/docs/OAuth2 - this document, the most suitable method for me is OAuth 2.0 Service Account authorization I've got all the credentials - Client ID, Email address, Application name and private key file, but I still have no idea how can I get this stuff working. Could you please provide me with an example of how can I access to Adwords API via OAuth 2.0 Service Account and fetch, for example, account hierarchy using Ruby Adwords API library? -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en
Re: oauth2 service account with google adwords api for ruby
Kinda off topic but just some questions regarding this limit, is it 100 authorizations independent during a certain time limit or am I missunderstanding? Since you are writing about something about batch. I am about to launch a platform that will have this amount of users at the same time. Regards Fred 2012/10/9 Danial Klimkin danial.klimkin+fo...@google.com: Hello Marcin, Please see my reply to the initial post which should cover the issue. I've also created an article with more details specific to Ruby: http://googleadsdeveloper.blogspot.com/2012/10/using-oauth20-authorization-method-with.html Let me know if you have any questions. -Danial, AdWords API Team. On Monday, October 8, 2012 5:58:10 PM UTC+4, Marcin Urbanski wrote: Any update on this? I have exactly the same problem. If Ruby gems won't support it soon, I can use Java. Are there any examples on how to use Service to Service authentication? On Tuesday, August 14, 2012 5:07:08 PM UTC+2, Antony Vorobiev wrote: Hello all, I was using ClientLogin authorization method in my server application for several months, but now it throws CaptchaRequired error because of too much authorization attempts for about 100 client_customer_id in a batch, so I'm looking for the way to get 100+ client accounts processed (sync campaigns, fetch campaign statuses, report statistics) in reasonable time (several minutes) without any user interaction according to - https://developers.google.com/accounts/docs/OAuth2 - this document, the most suitable method for me is OAuth 2.0 Service Account authorization I've got all the credentials - Client ID, Email address, Application name and private key file, but I still have no idea how can I get this stuff working. Could you please provide me with an example of how can I access to Adwords API via OAuth 2.0 Service Account and fetch, for example, account hierarchy using Ruby Adwords API library? -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en -- // MVH / Regards Fredrik Gustafsson 070-2833674 -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en
Re: ReportDefinitionReportType.CALL_METRICS_CALL_DETAILS_REPORT in the com.google.api.adwords.v201206.jaxb.cm.ReportDefinition API is Beta and unavailable?
Hello Michael, This report is available to the Beta Program users only at the moment. -Danial, AdWords API Team. On Friday, October 5, 2012 5:38:11 PM UTC+4, Michael Caldwell wrote: Hi Google AdWords API team: When I run the DownloadAdHocReport.java sample in the v201206 code examples download, just substituting for the CALL_METRICS_CALL_DETAILS_REPORT report type and appropriate Selector fields, I get this: Report was not downloaded. 500: !!!1|||-1|||BetaError.BETA_FEATURE @ selector.reportDefinition.reportType??? I'm using the Sandbox, not production AdWords, as this is just a development effort at this point. Did the report fail because it's Beta and therefore not available in the API, or did it fail because it's Beta and therefore not available using the Sandbox API, or am I doing something else wrong? My boss and stakeholders would be very happy to have this report :-) Here's the full code (it's your code really - great code samples BTW! - just with the simple changes I needed to run the Call Metrics needed) : // Copyright 2012 Google Inc. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the License); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an AS IS BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package v201206; import com.google.api.adwords.lib.AdWordsServiceLogger; import com.google.api.adwords.lib.AdWordsUser; import com.google.api.adwords.lib.utils.v201206.ReportDownloadResponse; import com.google.api.adwords.lib.utils.v201206.ReportUtils; import com.google.api.adwords.v201206.jaxb.cm.DownloadFormat; import com.google.api.adwords.v201206.jaxb.cm.ReportDefinition; import com.google.api.adwords.v201206.jaxb.cm.ReportDefinitionDateRangeType; import com.google.api.adwords.v201206.jaxb.cm.ReportDefinitionReportType; import com.google.api.adwords.v201206.jaxb.cm.Selector; import java.io.File; import java.io.FileOutputStream; import java.net.HttpURLConnection; import java.util.List; /** * This example adds a keywords performance report. To get ad groups, run * GetAllAdGroups.java. To get report columns, run GetReportColumns.java. * * Tags: ReportDefinitionService.mutate * * @category adx-exclude * @author api.k...@gmail.com javascript: (Kevin Winter) */ public class DownloadAdHocReport { public static void main(String[] args) { try { // Log SOAP XML request and response. AdWordsServiceLogger.log(); // Get AdWordsUser from ~/adwords.properties. AdWordsUser user = new AdWordsUser(); // Location to download report to. String reportFile = /tmp/report.csv; // Create selector. Selector selector = new Selector(); ListString fields = selector.getFields(); fields.add(AdGroupId); fields.add(Id); fields.add(KeywordText); fields.add(KeywordMatchType); fields.add(Impressions); fields.add(Clicks); fields.add(Cost); // Create report definition. ReportDefinition reportDefinition = new ReportDefinition(); reportDefinition.setReportName(Keywords performance report # + System.currentTimeMillis()); reportDefinition.setDateRangeType(ReportDefinitionDateRangeType.YESTERDAY); reportDefinition.setReportType(ReportDefinitionReportType.KEYWORDS_PERFORMANCE_REPORT); reportDefinition.setDownloadFormat(DownloadFormat.CSV); reportDefinition.setIncludeZeroImpressions(false); reportDefinition.setSelector(selector); FileOutputStream fos = new FileOutputStream(new File(reportFile)); ReportDownloadResponse response = ReportUtils.downloadReport(user, reportDefinition, fos); if (response.getHttpStatus() == HttpURLConnection.HTTP_OK) { System.out.println(Report successfully downloaded: + reportFile); } else { System.out.println(Report was not downloaded. + response.getHttpStatus() + : + response.getHttpResponseMessage()); } } catch (Exception e) { e.printStackTrace(); } } } -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send
Re: oauth2 service account with google adwords api for ruby
Hello kes0, This is defined by the Google Accounts authorization policies which is external to the AdWords API. We are not able to share any details on what triggers captcha challenge. Please note if you are about to launch a new platform, you should consider implementing OAuth2.0 as soon as possible, as the client login protocol is deprecated and will be removed in the future. -Danial, AdWords API Team. On Tuesday, October 9, 2012 1:50:01 PM UTC+4, kes0 wrote: Kinda off topic but just some questions regarding this limit, is it 100 authorizations independent during a certain time limit or am I missunderstanding? Since you are writing about something about batch. I am about to launch a platform that will have this amount of users at the same time. Regards Fred 2012/10/9 Danial Klimkin danial.kli...@google.com javascript:: Hello Marcin, Please see my reply to the initial post which should cover the issue. I've also created an article with more details specific to Ruby: http://googleadsdeveloper.blogspot.com/2012/10/using-oauth20-authorization-method-with.html Let me know if you have any questions. -Danial, AdWords API Team. On Monday, October 8, 2012 5:58:10 PM UTC+4, Marcin Urbanski wrote: Any update on this? I have exactly the same problem. If Ruby gems won't support it soon, I can use Java. Are there any examples on how to use Service to Service authentication? On Tuesday, August 14, 2012 5:07:08 PM UTC+2, Antony Vorobiev wrote: Hello all, I was using ClientLogin authorization method in my server application for several months, but now it throws CaptchaRequired error because of too much authorization attempts for about 100 client_customer_id in a batch, so I'm looking for the way to get 100+ client accounts processed (sync campaigns, fetch campaign statuses, report statistics) in reasonable time (several minutes) without any user interaction according to - https://developers.google.com/accounts/docs/OAuth2 - this document, the most suitable method for me is OAuth 2.0 Service Account authorization I've got all the credentials - Client ID, Email address, Application name and private key file, but I still have no idea how can I get this stuff working. Could you please provide me with an example of how can I access to Adwords API via OAuth 2.0 Service Account and fetch, for example, account hierarchy using Ruby Adwords API library? -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwor...@googlegroups.comjavascript: To unsubscribe from this group, send email to adwords-api...@googlegroups.com javascript: For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en -- // MVH / Regards Fredrik Gustafsson 070-2833674 -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en
All the google adwords filters remove
Hi All, I am observing all my campaigns ad groups ads and keywords level Filters which I saved into each level has been disappeared I don't know its happened due to the last system maintenance as I need to rebuild all... Raheel -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en
About Quality Info
Hi, i get some quality info with API but always return same results. How can i get isLandingPageLatencyAcceptable, isLandingPageQualityAcceptable, isKeywordAdRelevanceAcceptable values? -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en
Google.Api.Ads.Common.Lib.SoapListenerExtension - can it be configured to apply only for Google Requests?
Hi I understand that the following needs to be added to configuration file for calling in to the Adwords services. system.web webServices soapExtensionTypes add type=Google.Api.Ads.Common.Lib.SoapListenerExtension, Google.Ads.Common priority=1 group=0/ /soapExtensionTypes /webServices /system.web However is there a way to have the SoapListenerExtension apply ONLY TO requests originating for Google Adwords services? Here's my situation 1. I have a dot net assembly that interacts with Google Adwords - calls the Customer Service and downloads reports. 2. This assembly is invoked by a .Net WCF service. Since the WCF service consumes the assembly, the configuration for the Soap extension is placed in the WCF config file (and its working). 3. Requests (called extraction requests in our project) are generated by a BizTalk server and passed to the WCF server (which in turn calls the dot net assembly). 4. Once data is fetched from Adwords, response is sent back to BizTalk by the WCF service. In step 4, the response is sent back to BizTalk *via a web service*. Since the Soap listener is attached to the WCF service its *not only* applying to the Google Adwords requests* but also* to the responses being sent to BizTalk and this is causing side effects in the BizTalk server. So is there is way to have the Soap Listener apply just for the Google AdWords requests. Thanks Nakul Ringshia -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en
Re: oauth2 service account with google adwords api for ruby
Thanks for your reply! The problem is that all code samples are relying on user activity. What I want to acheive is downloading reports for all managed clients using OAuth Service to Service authentication. This process should be asynchronous and I believe I need something like this to athenticate: GoogleCredential credential = new GoogleCredential.Builder().setTransport(HTTP_TRANSPORT) .setJsonFactory(JSON_FACTORY) .setServiceAccountId(SERVICE_ACCOUNT_EMAIL) .setServiceAccountScopes(STORAGE_SCOPE) .setServiceAccountPrivateKeyFromP12File(new File(key.p12)) .build(); When will this be possible in pure Ruby? (without need to use Java libraries). Here's my unanswered post with more details: https://groups.google.com/forum/?fromgroups=#!searchin/adwords-api/OAuth$202.0$20for$20Server$20to$20Server$20Applications$20problem/adwords-api/JxuwI7yDg94/3QudZw1pKJkJ Could you help me somehow? Martin On Tuesday, October 9, 2012 11:45:41 AM UTC+2, Danial Klimkin wrote: Hello Marcin, Please see my reply to the initial post which should cover the issue. I've also created an article with more details specific to Ruby: http://googleadsdeveloper.blogspot.com/2012/10/using-oauth20-authorization-method-with.html Let me know if you have any questions. -Danial, AdWords API Team. On Monday, October 8, 2012 5:58:10 PM UTC+4, Marcin Urbanski wrote: Any update on this? I have exactly the same problem. If Ruby gems won't support it soon, I can use Java. Are there any examples on how to use Service to Service authentication? On Tuesday, August 14, 2012 5:07:08 PM UTC+2, Antony Vorobiev wrote: Hello all, I was using ClientLogin authorization method in my server application for several months, but now it throws CaptchaRequired error because of too much authorization attempts for about 100 client_customer_id in a batch, so I'm looking for the way to get 100+ client accounts processed (sync campaigns, fetch campaign statuses, report statistics) in reasonable time (several minutes) without any user interaction according to - https://developers.google.com/accounts/docs/OAuth2 - this document, the most suitable method for me is OAuth 2.0 Service Account authorization I've got all the credentials - Client ID, Email address, Application name and private key file, but I still have no idea how can I get this stuff working. Could you please provide me with an example of how can I access to Adwords API via OAuth 2.0 Service Account and fetch, for example, account hierarchy using Ruby Adwords API library? -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en
Re: oauth2 service account with google adwords api for ruby
Hello Danial, im using OAuth2 to get data from thou to my platform, what is the preferred process to get it without user interaction with a MCC account? Is there a way too pull reports for each child account using only the MCC credentials (or some sort of master key)? all my child accounts are managed and created with the MCC account so it doesnt make much sense to me to need to log in and grant access to the application for every child accounts (thousands). -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en
Re: Adwords API PHP Oauth2: invalid_grant when refreshing token
Hi Peter, It appears that the Google OAuth2 endpoint will return this error if you attempt to refresh the access token before the previous one has expired. Are you calling IsAccessTokenValid() before attempting to refresh it? http://code.google.com/p/google-api-adwords-php/source/browse/trunk/src/Google/Api/Ads/Common/Util/OAuth2Handler.php#105 Additionally, the library has logic that should automatically detect and handle expired tokens, are you utilizing that? http://code.google.com/p/google-api-adwords-php/source/browse/trunk/src/Google/Api/Ads/AdWords/Lib/AdWordsSoapClient.php#76 Best, - Eric Koleda, AdWords API Team On Friday, October 5, 2012 4:01:43 PM UTC-4, Peter Bowen wrote: This question relates to refreshing an oauth token in the Google Adwords API v201206 using the PHP client library found in aw_api_php_lib_3.1.1 here http://code.google.com/p/google-api-adwords-php/downloads/list Everything works as expected till the token expires after 1 hour. Attempting to refresh the token using the $user-RefreshOAuth2AccessToken($credentials) results in an error: invalid_grant The method in question is RefreshAccessToken in SimpleOAuth2Handler.php The refresh token method uses curl to post the following data to https://accounts.google.com/o/oauth2/token (I've masked the start of the real data using **) [refresh_token] = **vk_9xHqDzT2j8OrR-UW24 [client_id] = **googleusercontent.com [client_secret] = ***RPd1o [grant_type] = refresh_token This is the curlinfo [url] = https://accounts.google.com/o/oauth2/token [content_type] = application/json [http_code] = 400 [header_size] = 378 [request_size] = 249 [filetime] = -1 [ssl_verify_result] = 0 [redirect_count] = 0 [total_time] = 1.735994 [namelookup_time] = 0.598276 [connect_time] = 0.616033 [pretransfer_time] = 0.684525 [size_upload] = 574 [size_download] = 51 [speed_download] = 29 [speed_upload] = 330 [download_content_length] = -1 [upload_content_length] = 574 [starttransfer_time] = 1.685787 [redirect_time] = 0 [request_header] = POST /o/oauth2/token HTTP/1.1 User-Agent: curl, gzip Host: accounts.google.com Accept: */* Accept-Encoding: gzip Content-Length: 574 Expect: 100-continue Content-Type: multipart/form-data; boundary=08f82c0f8254 Searching Google returns suggestions to check the time, but my laptop is within 1 second of the unix timestamp so I don't think it's this. I'd value your thoughts as I've had a rather frustrating time trying to get this to work. -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en
Sandbox for v201209
When experimenting with v201209 I noticed the sandbox and prooduction environment works different. Production is fine but it appears sanbox was not updated to use new schema. When calling ManagedCustomer service with selector say *fields = [:login]* (ruby client), it worked in sandbox but not in production. Production worked as expected because it needs to be *fields = [Login] *But initially it gave me wrong impression that something is wrong with production because sandbox with wrong fields value was able to return all accounts. * * -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en
QuotaCheckError.INVALID_TOKEN_HEADER and developer token
When I try to use the delete_keywords example script on Sandbox, I end up with the error in the subject line: QuotaCheckError.INVALID_TOKEN_HEADER It seems to be an issue with my developer token. I've verified that the token itself works. I was able to use it and my current .properties file to connect with the sandbox-account-viewer.jnlp. The token does contain a hyphen, and perhaps that's causing an issue. I'll have to try and obtain another developer token and investigate further. In the meantime, if anyone else has encountered this problem, any insight would be very helpful. [09 October 2012 09:36:30,319 - INFO ] Outgoing Request: SOAP-ENV:Envelope xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xmlns:SOAP-ENV=http://schemas.xmlsoap.org/soap/envelope/; SOAP-ENV:HeaderRequestHeader xmlns=https://adwords.google.com/api/adwords/cm/v201206;clientCustomerId xmlns=https://adwords.google.com/api/adwords/cm/v201206;45743/clientCustomerIddeveloperToken xmlns=https://adwords.google.com/api/adwords/cm/v201206;REDACTED/developerTokenuserAgent xmlns=https://adwords.google.com/api/adwords/cm/v201206;./delete_keyword.pl (AwApi-Perl/2.7.2, Common-Perl/2.0.0, SOAP-WSDL/2.00.10, libwww-perl/5.833, perl/5.010001)/userAgentvalidateOnly xmlns=https://adwords.google.com/api/adwords/cm/v201206;false/validateOnlypartialFailure xmlns=https://adwords.google.com/api/adwords/cm/v201206;false/partialFailure/RequestHeader/SOAP-ENV:HeaderSOAP-ENV:Bodymutate xmlns=https://adwords.google.com/api/adwords/cm/v201206;operationsoperatorREMOVE/operatoroperandadGroupId3062330175/adGroupIdcriterionid15412086/id/criterion/operand/operations/mutate/SOAP-ENV:Body/SOAP-ENV:Envelope [09 October 2012 09:36:31,618 - INFO ] Incoming response: soap:Envelope xmlns:soap=http://schemas.xmlsoap.org/soap/envelope/;soap:HeaderResponseHeader xmlns=https://adwords.google.com/api/adwords/cm/v201206;requestId0004cba21a3161b80aedb2127722/requestIdserviceNameAdGroupCriterionService/serviceNamemethodNamemutate/methodNameoperations0/operationsresponseTime70/responseTimeunits0/units/ResponseHeader/soap:Headersoap:Bodysoap:Faultfaultcodesoap:Server/faultcodefaultstring[QuotaCheckError.INVALID_TOKEN_HEADER @ ;REDACTED]/faultstringdetailApiExceptionFault xmlns=https://adwords.google.com/api/adwords/cm/v201206;message[QuotaCheckError.INVALID_TOKEN_HEADER @ ; trigger:'REDACTED']/messageApplicationException.TypeApiException/ApplicationException.Typeerrors xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xsi:type=QuotaCheckErrorfieldPath/fieldPathtriggerREDACTED/triggererrorStringQuotaCheckError.INVALID_TOKEN_HEADER/errorStringApiError.TypeQuotaCheckError/ApiError.TypereasonINVALID_TOKEN_HEADER/reason/errors/ApiExceptionFault/detail/soap:Fault/soap:Body/soap:Envelope -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en
Best practices for long-lived AdWordsService, AdWordsSession, OAuth2
I am trying to migrate to v201209 from v201109. I have several long-lived services that use the AdWords API on behalf of my MCC account, for example to run reports, to get ad details, and so forth. I'm trying to understand how I should be using the new session/service objects, such that more than one thing can be happening at once, but that I don't create a new session or service object when I don't need to, and also that I use my OAuth2 tokens appropriately (refresh if necessary but not every time I need to make a call). I've seen several pieces of example code, but they are self-contained so they always get a new session, new service object, refresh the OAuth token, etc. Are there any examples more suitable for long-running services that will be invoked from time to time? -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en
Office Hours 10/10, 2pm EDT?
Are there scheduled Office Hours tomorrow (10/10) at 2 pm EDT? If I am using Chrome, I see that in the Office Hours page (https://developers.google.com/adwords/api/community/officehours) it is scheduled for 6 GMT aka 2 pm EDT. If I look in Firefox, it lists no scheduled Office Hours at all. Also if I check the Google Developers Events page (https://developers.google.com/events/) there is nothing scheduled for 10/10 related to office hours. -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en
Re: Best practices for long-lived AdWordsService, AdWordsSession, OAuth2
You will need to persist the refresh token and account ID so your services can resume on their own in case of a restart. You can ceate valid AdwordsSession and AdwordsServices on the fly if you have these two fields. Also, this might be of help: https://groups.google.com/forum/?fromgroups=#!topic/adwords-api/zf0slvrjkMs Oliver On Tuesday, October 9, 2012 5:08:03 PM UTC+1, j.e.frank wrote: I am trying to migrate to v201209 from v201109. I have several long-lived services that use the AdWords API on behalf of my MCC account, for example to run reports, to get ad details, and so forth. I'm trying to understand how I should be using the new session/service objects, such that more than one thing can be happening at once, but that I don't create a new session or service object when I don't need to, and also that I use my OAuth2 tokens appropriately (refresh if necessary but not every time I need to make a call). I've seen several pieces of example code, but they are self-contained so they always get a new session, new service object, refresh the OAuth token, etc. Are there any examples more suitable for long-running services that will be invoked from time to time? -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en
Re: All the google adwords filters remove
I am witnessing the same thing, however, not on the actual AdWords interface. Have had to re-create the same filters multiple times. On Tuesday, October 9, 2012 3:10:12 AM UTC-7, Raheel wrote: Hi All, I am observing all my campaigns ad groups ads and keywords level Filters which I saved into each level has been disappeared I don't know its happened due to the last system maintenance as I need to rebuild all... Raheel -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en
Re: All the google adwords filters remove
I am witnessing the same thing but on the actual AdWords interface. Have had to re-create the same filters multiple times. On Tuesday, October 9, 2012 3:10:12 AM UTC-7, Raheel wrote: Hi All, I am observing all my campaigns ad groups ads and keywords level Filters which I saved into each level has been disappeared I don't know its happened due to the last system maintenance as I need to rebuild all... Raheel -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en
Perl Library v201206 QuotaCheckError.INVALID_TOKEN_HEADER with developer token
When I try to use the delete_keywords example script on Sandbox, I end up with the error in the subject line: QuotaCheckError.INVALID_TOKEN_HEADER It seems to be an issue with my developer token. I've verified that the token itself works. I was able to use it and my current .properties file to connect with the sandbox-account-viewer.jnlp. The token does contain a hyphen, and perhaps that's causing an issue. I'll have to try and obtain another developer token and investigate further. In the meantime, if anyone else has encountered this problem, any insight would be very helpful. [09 October 2012 09:36:30,319 - INFO ] Outgoing Request: SOAP-ENV:Envelope xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xmlns:SOAP-ENV=http://schemas.xmlsoap.org/soap/envelope/; SOAP-ENV:HeaderRequestHeader xmlns= https://adwords.google.com/api/adwords/cm/v201206;clientCustomerId xmlns=https://adwords.google.com/api/adwords/cm/v201206;45743/clientCustomerIddeveloperToken xmlns=https://adwords.google.com/api/adwords/cm/v201206;REDACTED/developerTokenuserAgent xmlns=https://adwords.google.com/api/adwords/cm/v201206;./ delete_keyword.pl (AwApi-Perl/2.7.2, Common-Perl/2.0.0, SOAP-WSDL/2.00.10, libwww-perl/5.833, perl/5.010001)/userAgentvalidateOnly xmlns= https://adwords.google.com/api/adwords/cm/v201206;false/validateOnlypartialFailure xmlns=https://adwords.google.com/api/adwords/cm/v201206;false/partialFailure/RequestHeader/SOAP-ENV:HeaderSOAP-ENV:Bodymutate xmlns=https://adwords.google.com/api/adwords/cm/v201206 operationsoperatorREMOVE/operatoroperandadGroupId3062330175/adGroupIdcriterionid15412086/id/criterion/operand/operations/mutate/SOAP-ENV:Body/SOAP-ENV:Envelope [09 October 2012 09:36:31,618 - INFO ] Incoming response: soap:Envelope xmlns:soap=http://schemas.xmlsoap.org/soap/envelope/;soap:HeaderResponseHeader xmlns=https://adwords.google.com/api/adwords/cm/v201206;requestId0004cba21a3161b80aedb2127722/requestIdserviceNameAdGroupCriterionService/serviceNamemethodNamemutate/methodNameoperations0/operationsresponseTime70/responseTimeunits0/units/ResponseHeader/soap:Headersoap:Bodysoap:Faultfaultcodesoap:Server/faultcodefaultstring[QuotaCheckError.INVALID_TOKEN_HEADER @ ;REDACTED]/faultstringdetailApiExceptionFault xmlns= https://adwords.google.com/api/adwords/cm/v201206;message[QuotaCheckError.INVALID_TOKEN_HEADER @ ; trigger:'REDACTED']/messageApplicationException.TypeApiException/ApplicationException.Typeerrors xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xsi:type=QuotaCheckErrorfieldPath/fieldPathtriggerREDACTED/triggererrorStringQuotaCheckError.INVALID_TOKEN_HEADER/errorStringApiError.TypeQuotaCheckError/ApiError.TypereasonINVALID_TOKEN_HEADER/reason/errors/ApiExceptionFault/detail/soap:Fault/soap:Body/soap:Envelope -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en
Re: Best practices for long-lived AdWordsService, AdWordsSession, OAuth2
I had seen that post, which is what prompted me to post my own. I am trying to better understand how multiple threads should/can share objects. I don't want to go the route of each call creates its own set of objects, if there's a more efficient way to do things. As an example, consider the AdWordsServices class, which is new (to me). The migration guide says The AdWordsServices object is fairly heavyweight and should be instantiated once and reused as much as possible. It is not thread-safe, but it doesn't retain any state. My conclusion is that if I make a singleton AdWordsServices object for use throughout my code, as long as I make sure no two threads are calling adWordsServices.get at the same time, that should be more efficient than creating a new one every time I need to make an AdWords API call. In order to achieve thread safety, I will probably wrap the AdWordsServices object inside my own singleton object, with a synchronized get method that passes through to the wrapped AdWordsServices object. That's an example of a best practice that I'm looking for. As for the OAuth2 credential, I have managed to create a valid one from a saved refresh token, by building the credential and then calling credential.refreshToken(). I'm still trying to figure out whether I need to do this refresh step or if it would happen automatically, and also whether calling refreshToken() is going to invalidate any AdWordsSession(s) that are currently using the credential before it got refreshed. I'm going to write some tests, and once I understand the credentials, tokens, and AdWordsSessions better, I will be able to come up with a coding strategy that fits my use case (long-lived services, all with the same login). But if there are examples already that match my use case, it will be a big time-saver and also make it more likely that I don't misunderstand how things work, or come up with a flawed solution. On Tuesday, October 9, 2012 1:42:49 PM UTC-4, Oliver wrote: You will need to persist the refresh token and account ID so your services can resume on their own in case of a restart. You can ceate valid AdwordsSession and AdwordsServices on the fly if you have these two fields. Also, this might be of help: https://groups.google.com/forum/?fromgroups=#!topic/adwords-api/zf0slvrjkMs Oliver On Tuesday, October 9, 2012 5:08:03 PM UTC+1, j.e.frank wrote: I am trying to migrate to v201209 from v201109. I have several long-lived services that use the AdWords API on behalf of my MCC account, for example to run reports, to get ad details, and so forth. I'm trying to understand how I should be using the new session/service objects, such that more than one thing can be happening at once, but that I don't create a new session or service object when I don't need to, and also that I use my OAuth2 tokens appropriately (refresh if necessary but not every time I need to make a call). I've seen several pieces of example code, but they are self-contained so they always get a new session, new service object, refresh the OAuth token, etc. Are there any examples more suitable for long-running services that will be invoked from time to time? -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en
API deprecation policy
With the arrival of API v201209, API v201206 will be deprecated. This is already known. My question is: *all new API version will deprecate the previous one?* * * This is related to the following message posted in the Google ds Developer Blog: In response to your feedback, we are pleased to announce that starting at the end of September 2012, new major versions of the AdWords API will be released according to a published schedule. These major releases will occur 3 times per year: at the end of February, in the middle of June and at the end of September. Exact release dates may vary. A major release is one that starts the sunset clock on previous releases. An example of this is the recent v201206 release which started the sunset clock on the v201109 and v201109_1 releases. We will also continue to release minor versions to deliver new features as required. Minor versions are optional and are source code compatible. Minor versions are delivered as dot releases and an example of this is the v201109_1 dot release. We believe that delivering new API releases to a published schedule will allow you, the API users, to better plan and allocate resources, not just for performing required API updates but also for innovating and implementing new features and continuously developing your tools and platforms. It also provides us with a more stable and more frequent vehicle for delivering new features. Each new major release will trigger the deprecation of the previous major release. Exact deprecation timelines will be announced with each major release. If you have any questions about this announcement please post on the forum or attend one of the AdWords API Office Hours Hangouts. - Mandy Waite, AdWords API Team -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en
AuthenticationError.GOOGLE_ACCOUNT_COOKIE_INVALID
I re-post this question again after months of waiting for a solution: I use a Windows service to hourly update the targets for a list of about 15 accounts consist of hundreds of campaigns. I always get this error after 2 weeks of running the service, which was written by C# and .NET using the .NET client API v201109: The only way that I can do is to restart the Windows service every 2 weeks. Google.Api.Ads.AdWords.Lib.AdWordsApiException: An API exception has occurred. See ApiException and InnerException fields for more details. --- System.Web.Services.Protocols.SoapException: * AuthenticationError.GOOGLE_ACCOUNT_COOKIE_INVALID* @ Service[CampaignService.mutate] at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall) at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) at Google.Api.Ads.Common.Lib.AdsSoapClient.MakeApiCall(String methodName, Object[] parameters) --- End of inner exception stack trace --- at Google.Api.Ads.Common.Lib.AdsSoapClient.MakeApiCall(String methodName, Object[] parameters) at Google.Api.Ads.AdWords.Lib.AdWordsSoapClient.MakeApiCall(String methodName, Object[] parameters) at Google.Api.Ads.Common.Lib.AdsSoapClient.Invoke(String methodName, Object[] parameters) at Google.Api.Ads.AdWords.v201109.CampaignService.mutate(CampaignOperation[] operations) at SemUpdateBiz.SEMManagerUpdateGeoTargets(string campaign_email, string campaign_password, googleNameAndID googleCampaign, string make, bool isSeriesCampaign, int MaxCampaigns, int AccountID) I did ask Anash (API Team member), and then he asked me to turn on the log file setting in App.config and send him the log. After that I receive an advice: add this line to my code: user.Config.RetryCount = 3. *However, it never works.* private void UpdateGeoTargets(string campaign_email, string campaign_password, googleNameAndID googleCampaign, string make, bool isSeriesCampaign, int MaxCampaigns, int AccountID) { Dictionarystring, string headers = new Dictionarystring, string(); headers.Add(email, campaign_email); headers.Add(password, campaign_password); headers.Add(useragent, ConfigurationManager.AppSettings[useragent]); headers.Add(developerToken, ConfigurationManager.AppSettings[developerToken]); AdWordsUser user = new AdWordsUser(headers); user.Config.RetryCount = 3; try { ... ... ... App.config: AdWordsApi add key=LogPath value=D:\log / add key=LogToConsole value=false / add key=LogToFile value=true / add key=MaskCredentials value=true / add key=LogErrorsOnly value=false / !-- Set the service timeout in milliseconds. -- add key=Timeout value=10 / add key=ProxyServer value= / add key=ProxyUser value= / add key=ProxyPassword value= / add key=ProxyDomain value= / add key=EnableGzipCompression value=true / add key=UserAgent value=xxx / add key=DeveloperToken value= / add key=AuthorizationMethod value=ClientLogin / add key=ApplicationToken value=x / /AdWordsApi Does anyone have the same issue and know how to fix it? -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en
Re: Sandbox set up problem;
Hi, You need to comment out the clientId line and call the GetCampaigns.php and then the GetAccountHierarchy.php example, with it you'll get a list of 5 created child customer ids use one of those as your clientId. Best, -David Torres - AdWords API Team On Thursday, October 4, 2012 9:18:08 AM UTC-4, V. Behr wrote: Hi, I am trying to set up a sandbox account for hours now, but it is not working. Here is the auth.ini: --- email = vx...@yyy.de javascript: password = userAgent = testprojekt developerToken = vxxx@yyy++EUR ; Uncomment to make requests against a client account. clientId = client...@yyy.de javascript: ; Uncomment the following to use an existing AuthToken. ; authToken = INSERT_AUTH_TOKEN_HERE ; Uncomment the following to setup OAuth 1.0 authentication. ; [OAUTH] ; If you don't have a consumer key and secret, register your application here: ; https://accounts.google.com/ManageDomains ; oauth_consumer_key = INSERT_OAUTH_CONSUMER_KEY_HERE ; oauth_consumer_secret = INSERT_OAUTH_CONSUMER_SECRET_HERE ; If you already have an access token enter it below. ; oauth_token = INSERT_OAUTH_TOKEN_HERE ; oauth_token_secret = INSERT_OAUTH_TOKEN_SECRET_HERE ; Uncomment the following to setup OAuth2 authentication. ; [OAUTH2] ; If you do not have a client ID or secret, please create one in the ; API console: https://code.google.com/apis/console#access ; client_id = INSERT_OAUTH2_CLIENT_ID_HERE ; client_secret = INSERT_OAUTH2_CLIENT_SECRET_HERE ; If you already have access or refresh tokens enter them below. ; access_token = INSERT_OAUTH2_ACCESS_TOKEN_HERE ; refresh_token = INSERT_OAUTH2_REFRESH_TOKEN_HERE --- I am using the PHP client library and when I start the GetCampaigns.php file it throws the following Error: An error has occurred: The header clientEmail is not compatible with versions v201109 and later. Use clientCustomerId instead I also tried to call the GetClientCustomerId.php and GetAccountHierarchy.php, but with the same problem. Can somebody help me? -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en
Re: OAuth 2.0 for Server to Server Applications problem
Hi Martin, There is no direct support in the Ruby library to generate JWT access tokens (the tokens used by service accounts), please log a feature request in their project issue trackerhttp://code.google.com/p/google-api-ads-ruby/issues/list . For Java, you have to do something along these lines: GoogleCredential credential = new GoogleCredential.Builder().setTransport(new NetHttpTransport()) .setJsonFactory(new GsonFactory()) .setServiceAccountId(SERVICE_ACCOUNT_EMAIL) .setServiceAccountScopes(SCOPE) .setServiceAccountPrivateKeyFromP12File(new File(PATH_TO_YOUR_P12_FILE)) .setServiceAccountUser(SERVICE_ACCOUNT_TARGET_EMAIL) .build(); Best, -David Torres - AdWords API Team On Thursday, October 4, 2012 9:37:55 AM UTC-4, Marcin Urbanski wrote: Hi all. Is there a way to use OAuth 2.0 for Server to Server Applications using Ruby library? I couldn't find anything in the source code. https://developers.google.com/accounts/docs/OAuth2ServiceAccount Can you eventually show me an example of how to use this kind of authentication (without user) in Java maybe? I did a lot of research today but the only examples I could find are broken C# snippets and Java examples that require user activity:( I have to connect to AdWords API through OAuth 2 to avoid AdsCommon::Errors::CaptchaRequiredError exceptions. I need something like this http://stackoverflow.com/questions/11939026/google-oauth2-service-account-access-token-request-gives-invalid-request-respo/11942278#11942278 Thanks! Martin -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en
Re: Does anyone know if Google spell check API is free or not; [http://www.google.com/tbproxy/spell]?
I'm sorry this forum is to discuss topics related to the AdWords API. Best, -David Torres - AdWords API Team On Thursday, October 4, 2012 5:17:24 PM UTC-4, Jay Choi wrote: -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en
How do I download a report into memory now (v201209)
Upgrading from v201109 to v201209 produced the following error: ReportDownloadError.INVALID_REPORT_DEFINITION_XML Invalid ReportDefinition Xml: cvc-complex-type.2.4.a: Invalid content was found starting with element 'selector'. One of '{ https://adwords.google.com/api/adwords/cm/v201109:id, https://adwords.google.com/api/adwords/cm/v201109:selector}' is expected. Here's the code that triggers the error: Dim utilities As New ReportUtilities(AdWordsUser) utilities.ReportVersion = v201209 Dim report As ClientReport = New ReportUtilities(AdWordsUser).GetClientReport(reportDefinition) objXML.LoadXml(report.Text) Not sure why it's complaining about v201109 format since I'm using v201209 (see above) -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en
Re: ADGROUP_REACH_FREQUENCY_REPORT doesn't return any records yet?
yawn On Tuesday, October 9, 2012 3:29:34 PM UTC+11, dkasak wrote: Hmmm. OK Jayshree. Thanks for responding, but in all honesty, you're not helping. Please see the response I got back ( above ). For us, at least for certain accounts ( which have reporting data for the given date range ), we're not getting any data. It's great that you're getting data, but it's not explaining what's happening in our reports. Can someone from *Google* please respond on this issue? Dan On Friday, 5 October 2012 21:55:29 UTC+10, jayshree bhongle wrote: Have a look at this file,this are the stats i got by running the awql query i mentioned previously On Fri, Oct 5, 2012 at 12:12 PM, dkasak daniel...@247realmedia.comwrote: I spent most of the day rewiring our code to make AWQL requests for this report. This doesn't return any records either; just an XML with field headers. Now ... can someone please comment *definitively* on whether this report is supposed to work or not? --- AWQL: select AccountId , AdGroupId , AdGroupName , AdGroupStatus , CampaignId , CampaignName , CampaignStatus , ReachFrequency , ReachFrequencyClicks , ReachFrequencyConv , ReachFrequencyConvRate , ReachFrequencyCtr , ReachFrequencyDate from ADGROUP_REACH_FREQUENCY_REPORT during LAST_7_DAYS Report XML returned: ?xml version='1.0' encoding='UTF-8' standalone='yes'?reportreport-name name='ADGROUP_REACH_FREQUENCY_REPORT'/date-range date='Sep 28, 2012-Oct 4, 2012'/tablecolumnscolumn name='accountID' display='Account ID'/column name='adGroupID' display='Ad group ID'/column name='adGroup' display='Ad group'/column name='adGroupState' display='Ad group state'/column name='campaignID' display='Campaign ID'/column name='campaign' display='Campaign'/column name='campaignState' display='Campaign state'/column name='frequency' display='Frequency'/column name='clicks' display='Clicks'/column name='conv' display='Conv.'/column name='convRate' display='Conv. rate'/column name='ctr' display='CTR'/column name='day' display='Day'//columns/table/report Dan On Thursday, 4 October 2012 21:38:21 UTC+10, jayshree bhongle wrote: Hi, This report works.I have used this report and it gives me correct data .I have tested it for the fields which you have specified.But instead of using adhoc reports i use awql queries. The query which gets me this data is as follows:- $reportDefinition = SELECT AdGroupId,AdGroupName,** AdGroupStatus,CampaignId,**CampaignName,CampaignStatus,** ReachFrequency,**ReachFrequencyClicks,**ReachFrequencyConv,** ReachFrequencyConvRate,**ReachFrequencyCtr,**ReachFrequencyDate,**UniqueUserCountAsLong FROM ADGROUP_REACH_FREQUENCY_**REPORT DURING LAST_7_DAYS; On Thu, Oct 4, 2012 at 7:26 AM, dkasak daniel...@247realmedia.com**wrote: Hi. We noticed you have added an ADGROUP_REACH_FREQUENCY_REPORT report type. We'd like to use this data. When I create a report request: reportDefinition xmlns=https://adwords.google.** com/api/adwords/cm/v201206https://adwords.google.com/api/adwords/cm/v201206 selector fieldsAdGroupId/fields fieldsAdGroupName/fields fieldsAdGroupStatus/fields fieldsCampaignId/fields fieldsCampaignName/fields fieldsCampaignStatus/**fields fieldsReachFrequency/**fields fieldsReachFrequencyClicks/**fields fieldsReachFrequencyConv/**fields fields**ReachFrequencyConvRate/**fields fieldsReachFrequencyCtr/**fields fieldsReachFrequencyDate/**fields fieldsUniqueUserCountAsLong**/fields /selector reportNameADGROUP_REACH_**FREQUENCY_REPORT/reportName reportTypeADGROUP_REACH_**FREQUENCY_REPORT/reportType dateRangeTypeLAST_7_DAYS/**dateRangeType downloadFormatGZIPPED_XML/**downloadFormat /reportDefinition ... I get a gzipped XML, but it only contains headers; no rows. Is this report not working yet? Dan -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~**=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/**group/adwords-apihttp://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~**=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwor...@googlegroups.com To unsubscribe from this group, send email to adwords-api...@**googlegroups.com For more options, visit this group at http://groups.google.com/**group/adwords-api?hl=enhttp://groups.google.com/group/adwords-api?hl=en -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API
Re: How to imitate keyword tool page in Java?
Thank you Jason, can you give me a sample? In fact I am not very familiar with webservice On Monday, September 24, 2012 3:41:27 AM UTC-7, Eric wrote: Hi Devs, Can you help me to create a method work like the page https://adwords.google.com/o/Targeting/Explorer?__c=10__u=10ideaRequestType=KEYWORD_IDEAS; in Java? It is the first time I use Google AdWords API, I am not familiar with it. I spent a lot of time on it, but I still failed. I just want to let it work in code, and I can do something by myself. Best regard, Eric -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en