Re: Product Partition Tree Enumeration Exception
Hi Josh That's great, I have managed to implement the tree that I want. Just a few little misunderstandings. Thanks for your help Sarah On Monday, November 24, 2014 2:07:36 PM UTC, Josh Radcliff (AdWords API Team) wrote: Hi, At every level of the product partition tree, all product partitions need to have the same type of caseValue https://developers.google.com/adwords/api/docs/reference/v201409/AdGroupCriterionService.ProductPartition#caseValue (ProductDimension subclass) -- see our Shopping Campaigns guide https://developers.google.com/adwords/api/docs/guides/shopping#product_dimensions for details. In your example, you are trying to create a tree that looks like this: ROOT -- subdivision -- ProductCanonicalCondition condition NEW -- unit -- ProductCanonicalCondition condition USED -- unit -- ProductType type null, value null -- subdivision -- ProductType type L1, value 'shirts' -- unit -- ProductType type L1, value 'footwear' -- unit There are two issues with this tree: 1. You have a combination of ProductCanonicalConditions and ProductType at the first level below the root. For the 'other' condition at level one, you need to have a ProductCanonicalCondition with a null condition https://developers.google.com/adwords/api/docs/reference/v201409/AdGroupCriterionService.ProductCanonicalCondition#condition because all partitions at a level need to have the same type of *caseValue*. 2. The ProductType you have at level one needs to have a type https://developers.google.com/adwords/api/docs/reference/v201409/AdGroupCriterionService.ProductType#type value (one of L1, L2, L3, L4, L5). One example of a valid tree you could create using the dimensions in your example is: ROOT -- subdivision -- ProductCanonicalCondition condition NEW -- unit -- ProductCanonicalCondition condition USED -- unit -- ProductCanonicalCondition condition null -- subdivision -- ProductType type L1, value 'shirts' -- unit -- ProductType type L1, value 'footwear' -- unit -- ProductType type L1, value null -- unit You could also create a tree like this if you wanted to break down each of NEW and USED by product type L1 'shirts' and 'footwear'. ROOT -- subdivision -- ProductCanonicalCondition condition NEW -- subdivision -- ProductType type L1, value 'shirts' -- unit -- ProductType type L1, value 'footwear' -- unit -- ProductCanonicalCondition condition USED -- subdivision -- ProductType type L1, value 'shirts' -- unit -- ProductType type L1, value 'footwear' -- unit -- ProductType type L1, value null -- unit -- ProductCanonicalCondition condition null -- unit Please give that a try and let me know if you still have questions. Thanks, Josh, AdWords API Team On Monday, November 24, 2014 5:42:55 AM UTC-5, Sarah Gilmore wrote: Hi Josh I've tried adding product level into the constuctor but get the following error: An error has occurred: [RequiredError.REQUIRED @ operations[3].operand.criterion.caseValue.type] I've tried reducing it down to the bare minimum (as below) but stillt this error. All I really want is a tree to divide by product type but when I do this, it says 'product partition already exists' (despite being a brand new adgroup created within the API) Here is my current code, any other help appreciated Thanks * $adGroupCriterionService = $user-GetService('AdGroupCriterionService',* *ADWORDS_VERSION);* * $helper = new ProductPartitionHelper($adGroupId);* * $root = $helper-createSubdivision();* * $helper-createUnit($root, new ProductCanonicalCondition('NEW'), 20);* * $helper-createUnit($root, new ProductCanonicalCondition('USED'), 10);* * $otherCondition = $helper-createSubdivision($root, new ProductType());* * $helper-createUnit($otherCondition, new ProductType('PRODUCT_TYPE_L1','shirts'), 20);* * $helper-createUnit($otherCondition, new ProductType('PRODUCT_TYPE_L1','footwear'), 10);* * $result = $adGroupCriterionService-mutate($helper-getOperations());* * $children = array();* * $rootNode = null;* On Friday, November 21, 2014 4:52:00 PM UTC, Josh Radcliff (AdWords API Team) wrote: Hi, Similar to *ProductBiddingCategory*, when creating a *ProductType* criterion, you'll want to pass both: 1. The product type level (enum) - this is on the type https://developers.google.com/adwords/api/docs/reference/v201409/AdGroupCriterionService.ProductType#type attribute and should match one of the *PRODUCT_TYPE_Lx* enums of ProductDimensionType https://developers.google.com/adwords/api/docs/reference/v201409/AdGroupCriterionService.ProductDimensionType 2. The product type value (string) - this is on the value https://developers.google.com/adwords/api/docs/reference/v201409/AdGroupCriterionService.ProductType#value attribute In your calls to the *ProductType
Re: Product Partition Tree Enumeration Exception
Hi Josh I've tried adding product level into the constuctor but get the following error: An error has occurred: [RequiredError.REQUIRED @ operations[3].operand.criterion.caseValue.type] I've tried reducing it down to the bare minimum (as below) but stillt this error. All I really want is a tree to divide by product type but when I do this, it says 'product partition already exists' (despite being a brand new adgroup created within the API) Here is my current code, any other help appreciated Thanks * $adGroupCriterionService = $user-GetService('AdGroupCriterionService',* *ADWORDS_VERSION);* * $helper = new ProductPartitionHelper($adGroupId);* * $root = $helper-createSubdivision();* * $helper-createUnit($root, new ProductCanonicalCondition('NEW'), 20);* * $helper-createUnit($root, new ProductCanonicalCondition('USED'), 10);* * $otherCondition = $helper-createSubdivision($root, new ProductType());* * $helper-createUnit($otherCondition, new ProductType('PRODUCT_TYPE_L1','shirts'), 20);* * $helper-createUnit($otherCondition, new ProductType('PRODUCT_TYPE_L1','footwear'), 10);* * $result = $adGroupCriterionService-mutate($helper-getOperations());* * $children = array();* * $rootNode = null;* On Friday, November 21, 2014 4:52:00 PM UTC, Josh Radcliff (AdWords API Team) wrote: Hi, Similar to *ProductBiddingCategory*, when creating a *ProductType* criterion, you'll want to pass both: 1. The product type level (enum) - this is on the type https://developers.google.com/adwords/api/docs/reference/v201409/AdGroupCriterionService.ProductType#type attribute and should match one of the *PRODUCT_TYPE_Lx* enums of ProductDimensionType https://developers.google.com/adwords/api/docs/reference/v201409/AdGroupCriterionService.ProductDimensionType 2. The product type value (string) - this is on the value https://developers.google.com/adwords/api/docs/reference/v201409/AdGroupCriterionService.ProductType#value attribute In your calls to the *ProductType* constructor you are only passing the *value*, but the constructor expects the type and the value, in that order. For example, for your shirts product type, you could modify your constructor call to: new ProductType('PRODUCT_TYPE_L1', 'shirts') Please give that a try and let me know if you're still running into errors. Cheers, Josh, AdWords API Team On Friday, November 21, 2014 9:21:30 AM UTC-5, Sarah Gilmore wrote: Hi there I'm having trouble getting the Product Partition script to work in PHP. I'm using the example in the SDK. I've solved some errors by creating a new Adgroup from scratch within the API, but I get the following exception when I run the script: An error has occurred: Unmarshalling Error: cvc-enumeration-valid: Value 'shirts' is not facet-valid with respect to enumeration '[UNKNOWN, BIDDING_CATEGORY_L1, BIDDING_CATEGORY_L2, BIDDING_CATEGORY_L3, BIDDING_CATEGORY_L4, BIDDING_CATEGORY_L5, BRAND, CANONICAL_CONDITION, CUSTOM_ATTRIBUTE_0, CUSTOM_ATTRIBUTE_1, CUSTOM_ATTRIBUTE_2, CUSTOM_ATTRIBUTE_3, CUSTOM_ATTRIBUTE_4, OFFER_ID, PRODUCT_TYPE_L1, PRODUCT_TYPE_L2, PRODUCT_TYPE_L3, PRODUCT_TYPE_L4, PRODUCT_TYPE_L5]' I'm assuming this means that I'm entering invalid categories/making an invalid tree but I can't work out how. I've checked that the categories I'm using are in the product feed. I don't work much with Adwords itself - just the API - so any advice would be appreciated *function addProductPartitionTreeExample(AdWordsUser $user, $adGroupId) {* * // Get the AdGroupCriterionService, which loads the required classes.* * $adGroupCriterionService = $user-GetService('AdGroupCriterionService',* *ADWORDS_VERSION);* * $helper = new ProductPartitionHelper($adGroupId);* * // The most trivial partition tree has only a unit node as the root:* * // $helper-createUnit(null, null, 10);* * $root = $helper-createSubdivision();* * $helper-createUnit($root, new ProductCanonicalCondition('NEW'), 20);* * $helper-createUnit($root, new ProductCanonicalCondition('USED'), 10);* * $otherCondition = $helper-createSubdivision($root,* * new ProductCanonicalCondition());* * $helper-createUnit($otherCondition, new ProductType('shirts'), 20);* * $helper-createUnit($otherCondition, new ProductType('footwear'), 10);* * $otherBrand =* * $helper-createSubdivision($otherCondition, new ProductType());* * // The value for the bidding category is a fixed ID for the 'Luggage Bags'* * // category. You can retrieve IDs for categories from the ConstantDataService.* * // See the 'GetProductCategoryTaxonomy' example for more details.* * $helper-createUnit($otherBrand,* * new ProductBiddingCategory('BIDDING_CATEGORY_L1',* * '-3817140941569278349'), 75);//for clothes* * $helper-createUnit($otherBrand,* * new ProductBiddingCategory
Product Partition Tree Enumeration Exception
Hi there I'm having trouble getting the Product Partition script to work in PHP. I'm using the example in the SDK. I've solved some errors by creating a new Adgroup from scratch within the API, but I get the following exception when I run the script: An error has occurred: Unmarshalling Error: cvc-enumeration-valid: Value 'shirts' is not facet-valid with respect to enumeration '[UNKNOWN, BIDDING_CATEGORY_L1, BIDDING_CATEGORY_L2, BIDDING_CATEGORY_L3, BIDDING_CATEGORY_L4, BIDDING_CATEGORY_L5, BRAND, CANONICAL_CONDITION, CUSTOM_ATTRIBUTE_0, CUSTOM_ATTRIBUTE_1, CUSTOM_ATTRIBUTE_2, CUSTOM_ATTRIBUTE_3, CUSTOM_ATTRIBUTE_4, OFFER_ID, PRODUCT_TYPE_L1, PRODUCT_TYPE_L2, PRODUCT_TYPE_L3, PRODUCT_TYPE_L4, PRODUCT_TYPE_L5]' I'm assuming this means that I'm entering invalid categories/making an invalid tree but I can't work out how. I've checked that the categories I'm using are in the product feed. I don't work much with Adwords itself - just the API - so any advice would be appreciated *function addProductPartitionTreeExample(AdWordsUser $user, $adGroupId) {* * // Get the AdGroupCriterionService, which loads the required classes.* * $adGroupCriterionService = $user-GetService('AdGroupCriterionService',* *ADWORDS_VERSION);* * $helper = new ProductPartitionHelper($adGroupId);* * // The most trivial partition tree has only a unit node as the root:* * // $helper-createUnit(null, null, 10);* * $root = $helper-createSubdivision();* * $helper-createUnit($root, new ProductCanonicalCondition('NEW'), 20);* * $helper-createUnit($root, new ProductCanonicalCondition('USED'), 10);* * $otherCondition = $helper-createSubdivision($root,* * new ProductCanonicalCondition());* * $helper-createUnit($otherCondition, new ProductType('shirts'), 20);* * $helper-createUnit($otherCondition, new ProductType('footwear'), 10);* * $otherBrand =* * $helper-createSubdivision($otherCondition, new ProductType());* * // The value for the bidding category is a fixed ID for the 'Luggage Bags'* * // category. You can retrieve IDs for categories from the ConstantDataService.* * // See the 'GetProductCategoryTaxonomy' example for more details.* * $helper-createUnit($otherBrand,* * new ProductBiddingCategory('BIDDING_CATEGORY_L1',* * '-3817140941569278349'), 75);//for clothes* * $helper-createUnit($otherBrand,* * new ProductBiddingCategory('BIDDING_CATEGORY_L1'), 11);* * // Make the mutate request.* * $result = $adGroupCriterionService-mutate($helper-getOperations());* * $children = array();* * $rootNode = null;* * // For each criterion, make an array containing each of its children* * // We always create the parent before the child, so we can rely on that here* * foreach ($result-value as $adGroupCriterion) {* *$children[$adGroupCriterion-criterion-id] = array();* *if (isset($adGroupCriterion-criterion-parentCriterionId)) {* * $children[$adGroupCriterion-criterion-parentCriterionId][] =* * $adGroupCriterion-criterion;* *} else {* * $rootNode = $adGroupCriterion-criterion;* *}* * }* * // Show the tree* * displayTree($rootNode, $children);* *}* Thanks -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and Google+: https://googleadsdeveloper.blogspot.com/ https://plus.google.com/+GoogleAdsDevelopers/posts =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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 --- You received this message because you are subscribed to the Google Groups AdWords API Forum group. To unsubscribe from this group and stop receiving emails from it, send an email to adwords-api+unsubscr...@googlegroups.com. Visit this group at http://groups.google.com/group/adwords-api. To view this discussion on the web visit https://groups.google.com/d/msgid/adwords-api/042ce4cf-9b60-485c-accc-9ea3671131df%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: GetRefreshToken.php Error: disabled_client The OAuth client was disabled.
Hi Ray I have now managed to work out what the issue was. At some point I started editing the Auth file in examples rather than in lib, whoops. How embarrassing! Thanks for your help, but I've now retrieved the refresh token and will hopefully get the rest working! On Friday, 28 February 2014 22:50:34 UTC, Jake Wilson wrote: I am building a simple web app to connect to our Adwords MMC and spit out some reports. In the Google API Console I created a new Client ID. I chose Installed Application even though this is a web-based PHP tool I'm making. This page: https://developers.google.com/adwords/api/docs/guides/authentication#access_and_refresh_token says to choose Installed Application if: - You are just getting started for the first time. - You want to test our example code and get started quickly. - You are managing all of your AdWords accounts using a single top level MCC. All of which apply to us. Also, the auth.ini says: ; If you do not have a client ID or secret, please create one of type ; installed application in the Google API console: ; https://cloud.google.com/console So anyways, I created an installed application client ID. I get my Client ID and Client Secret. I add these to auth.ini along with my Adwords API Key (which is approved) and a unique userAgentID string to identify my application. At the command line I run the GetRefreshToken.php script, giving me: Log in to your AdWords account and open the following URL: https://accounts.google.com/o/oauth2/auth?response_type=codeclient_id=5XXleusercontent.comredirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoobscope=https%3A%2F%2Fadwords.google.com%2Fapi%2Fadwords%2Faccess_type=offline After approving the token enter the authorization code here: I log into my Adwords account and then paste in the above URL. I get this page: http://imgur.com/vcilAXI.jpg So what am I doing wrong here? -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and Google+: https://googleadsdeveloper.blogspot.com/ https://plus.google.com/+GoogleAdsDevelopers/posts =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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 --- You received this message because you are subscribed to the Google Groups AdWords API Forum group. To unsubscribe from this group and stop receiving emails from it, send an email to adwords-api+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: I have requested two accounts to be transferred in test accounts but nothing happens.
Hi, I am having a similar problem. I used the form here https://developers.google.com/adwords/api/docs/test-accounts to set up a new account as a test account.I have entered billing details, and have accepted T+Cs and set up a campaign, which I have now paused. Now I've managed to retrieve the refresh token, I get the incomplete signup error when running GetCampaigns in php. Since I have an unapproved developer token I understand I can't test if this is a test account, but I don't think it is. It is set up on this account. Could you please advise? Thanks On Monday, 4 March 2013 13:14:19 UTC, Ivelin Vasilev wrote: Hello, I have requested these two accounts “363-849-1108” (more than 10 days ago) and “819-990-7263” ( 6 or 7 days ago ) to be converted as test ones but nothing happens. Can you help me, please? -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and Google+: https://googleadsdeveloper.blogspot.com/ https://plus.google.com/+GoogleAdsDevelopers/posts =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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 --- You received this message because you are subscribed to the Google Groups AdWords API Forum group. To unsubscribe from this group and stop receiving emails from it, send an email to adwords-api+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: GetRefreshToken.php Error: disabled_client The OAuth client was disabled.
Hi Ray When I execute the url provided by the script I get the following error on screen: 401 Error: disabled_client The OAuth client was disabled. Request Details scope=https://www.googleapis.com/auth/adwords response_type=code access_type=offline redirect_uri=urn:ietf:wg:oauth:2.0:oob client_id=[there is a new id generated here] If I paste my client id into the string and try again it gets me past the consent screen and generates the code, but then I get the following error on the command line: Your OAuth2 Credentials are incorrect. Please see the GetRefreshToken.php example. { error : disabled_client, error_description : The OAuth client was disabled. } I've checked and double checked the code string and my OAuth2 details in auth.ini so not sure whats wrong. Thanks On Wednesday, 16 July 2014 19:56:32 UTC+1, Ray Tsang (AdWords API Team) wrote: Sarah, Could I trouble you to send me the exact errors that you've received? The authorization code is long (it sometimes doesn't fully display in the text box) - please make sure the entire string is selected and pasted. Thanks, Ray On Wednesday, July 16, 2014 9:20:58 AM UTC-4, Sarah Gilmore wrote: Hi, I am having the same issue as Jake (above). I'm using the PHP client library to run the script on the command line, but when I paste the url, it says 'the oauth client is disabled'.( I can get it to go one step further by pasting in my client id into the url, as the url created by GetRefreshToken seems to use a different id, but after I enter the code provided into the command line I still get the same message.) I have the app set as installed and have set the name, url and logo in the console consent screen. I am using a test account and an unapproved developer token. The token was created about a year ago, could this be the issue? I am also wondering whether the test account is a valid test account but without connecting to the API its difficult to test this. Thanks! On Thursday, 24 April 2014 16:08:06 UTC+1, Ray Tsang (AdWords API Team) wrote: Sounds great. Glad it helped. Cheers, Ray On Thursday, April 24, 2014 9:11:49 AM UTC-4, piotr.d...@bonito.pl wrote: Thanks, everything works well ! On Wednesday, April 23, 2014 5:53:44 PM UTC+2, Ray Tsang (AdWords API Team) wrote: Hi, It's most likely that you've created an OAuth 2.0 Web application. Please review our AdWords OAuth 2.0 authentication guide https://developers.google.com/adwords/api/docs/guides/authentication#create_a_client_identifier_and_client_secret . In step 6, please select Installed application. Thanks, Ray On Wednesday, April 23, 2014 9:45:50 AM UTC-4, piotr.d...@bonito.pl wrote: Now, I have other errro: *Error: redirect_uri_mismatch* The redirect URI in the request: urn:ietf:wg:oauth:2.0:oob did not match a registered redirect URI So what am I doing wrong here? On Wednesday, April 23, 2014 2:35:36 PM UTC+2, piotr.d...@bonito.pl wrote: Hello, I have the same problem :( Also filled field required in Consent screen, I have http error 400 and Error: disabled_client. So what am I doing wrong here? How enable OAuth client for me project ? Thanks W dniu wtorek, 4 marca 2014 20:40:28 UTC+1 użytkownik Ray Tsang (AdWords API Team) napisał: Jake, In the cloud console, could I trouble you to navigate to the Consent Screen configuration and enter an application name (and any of the other required fields). Please let me know if it works for you - and I can update relevant documentations. Thanks, On Friday, February 28, 2014 5:50:34 PM UTC-5, Jake Wilson wrote: I am building a simple web app to connect to our Adwords MMC and spit out some reports. In the Google API Console I created a new Client ID. I chose Installed Application even though this is a web-based PHP tool I'm making. This page: https://developers.google.com/adwords/api/docs/guides/authentication#access_and_refresh_token says to choose Installed Application if: - You are just getting started for the first time. - You want to test our example code and get started quickly. - You are managing all of your AdWords accounts using a single top level MCC. All of which apply to us. Also, the auth.ini says: ; If you do not have a client ID or secret, please create one of type ; installed application in the Google API console: ; https://cloud.google.com/console So anyways, I created an installed application client ID. I get my Client ID and Client Secret. I add these to auth.ini along with my Adwords API Key (which is approved) and a unique userAgentID string to identify my application. At the command line I run the GetRefreshToken.php script, giving me: Log in to your AdWords account and open the following URL: https://accounts.google.com/o/oauth2/auth?response_type=codeclient_id=5XXleusercontent.comredirect_uri=urn%3Aietf
Re: GetRefreshToken.php Error: disabled_client The OAuth client was disabled.
Hi, I am having the same issue as Jake (above). I'm using the PHP client library to run the script on the command line, but when I paste the url, it says 'the oauth client is disabled'.( I can get it to go one step further by pasting in my client id into the url, as the url created by GetRefreshToken seems to use a different id, but after I enter the code provided into the command line I still get the same message.) I have the app set as installed and have set the name, url and logo in the console consent screen. I am using a test account and an unapproved developer token. The token was created about a year ago, could this be the issue? I am also wondering whether the test account is a valid test account but without connecting to the API its difficult to test this. Thanks! On Thursday, 24 April 2014 16:08:06 UTC+1, Ray Tsang (AdWords API Team) wrote: Sounds great. Glad it helped. Cheers, Ray On Thursday, April 24, 2014 9:11:49 AM UTC-4, piotr.d...@bonito.pl wrote: Thanks, everything works well ! On Wednesday, April 23, 2014 5:53:44 PM UTC+2, Ray Tsang (AdWords API Team) wrote: Hi, It's most likely that you've created an OAuth 2.0 Web application. Please review our AdWords OAuth 2.0 authentication guide https://developers.google.com/adwords/api/docs/guides/authentication#create_a_client_identifier_and_client_secret . In step 6, please select Installed application. Thanks, Ray On Wednesday, April 23, 2014 9:45:50 AM UTC-4, piotr.d...@bonito.pl wrote: Now, I have other errro: *Error: redirect_uri_mismatch* The redirect URI in the request: urn:ietf:wg:oauth:2.0:oob did not match a registered redirect URI So what am I doing wrong here? On Wednesday, April 23, 2014 2:35:36 PM UTC+2, piotr.d...@bonito.pl wrote: Hello, I have the same problem :( Also filled field required in Consent screen, I have http error 400 and Error: disabled_client. So what am I doing wrong here? How enable OAuth client for me project ? Thanks W dniu wtorek, 4 marca 2014 20:40:28 UTC+1 użytkownik Ray Tsang (AdWords API Team) napisał: Jake, In the cloud console, could I trouble you to navigate to the Consent Screen configuration and enter an application name (and any of the other required fields). Please let me know if it works for you - and I can update relevant documentations. Thanks, On Friday, February 28, 2014 5:50:34 PM UTC-5, Jake Wilson wrote: I am building a simple web app to connect to our Adwords MMC and spit out some reports. In the Google API Console I created a new Client ID. I chose Installed Application even though this is a web-based PHP tool I'm making. This page: https://developers.google.com/adwords/api/docs/guides/authentication#access_and_refresh_token says to choose Installed Application if: - You are just getting started for the first time. - You want to test our example code and get started quickly. - You are managing all of your AdWords accounts using a single top level MCC. All of which apply to us. Also, the auth.ini says: ; If you do not have a client ID or secret, please create one of type ; installed application in the Google API console: ; https://cloud.google.com/console So anyways, I created an installed application client ID. I get my Client ID and Client Secret. I add these to auth.ini along with my Adwords API Key (which is approved) and a unique userAgentID string to identify my application. At the command line I run the GetRefreshToken.php script, giving me: Log in to your AdWords account and open the following URL: https://accounts.google.com/o/oauth2/auth?response_type=codeclient_id=5XXleusercontent.comredirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoobscope=https%3A%2F%2Fadwords.google.com%2Fapi%2Fadwords%2Faccess_type=offline After approving the token enter the authorization code here: I log into my Adwords account and then paste in the above URL. I get this page: http://imgur.com/vcilAXI.jpg So what am I doing wrong here? -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and Google+: https://googleadsdeveloper.blogspot.com/ https://plus.google.com/+GoogleAdsDevelopers/posts =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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 --- You received this message because you are subscribed to the Google Groups AdWords API Forum group. To unsubscribe from this group and stop receiving emails from it, send an email to adwords-api+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.