Re: [AWQL] includeZeroImpressions doesn't work with PRODUCT PARTITION REPORT
Mine does. Try excluding the Impressions column. That might be killing zero-impression rows. I'm bringing down only the ID and name columns for campaign, adgroup, and partition, and that's working for me. If you include certain statistic columns in your select list, it can suppress zero-impression rows. Eric On Thursday, October 15, 2015 at 6:30:42 AM UTC-4, Mario wrote: > > As the title says including zero impression rows doesn't work with the > PRODUCT_PARTITION_REPORT. > I consider this as a bug because i did not found anything in the docs or > the internet that says this should not work. > > My AWQL-Query: > > SELECT CampaignName, CampaignId, AdGroupName, AdGroupId, ProductGroup, > Impressions > FROM PRODUCT_PARTITION_REPORT > WHERE Impressions >= 0 > DURING 20150101, 20151010 > > So can anybody confirm that this is a bug or point me to a somewhere where > it is documented that zero impression are not supported in this report? > Thx in advance... > -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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/909925c7-d415-46df-b01f-29854f07d8f8%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
How to remove custom parameter
I've got to programmatically remove custom parameters from all keywords in one campaign. I can remove the tracking template by setting it to String.Empty in C#. But nothing I try seems to remove the custom parameters. I've tried setting the key and value to String.Empty, but then I get a TOO SHORT error. How do I remove custom parameters through the API. This doesn't work... CustomParameter mParam = new CustomParameter(); mParam.key = String.Empty; mParam.value = String.Empty; biddableAdGroupCriterion.urlCustomParameters.parameters = new CustomParameter[] { mParam }; Eric -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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/61a08fee-eebc-459b-9feb-1d6293aac5a1%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Most efficient way of pulling criterion data for large accounts
Forget the AdGroupCriterionService. With that many kw, the api cost will kill you. Use reports. I use Criteria Performance report and Keyword Performance Report. The only thing I use AdGroupCriterionService for is bidding. If all you're doing is consuming data, use reports; they're free. Eric On Sunday, February 22, 2015 at 5:07:02 AM UTC-5, Sam wrote: Hi, I'm trying to pull all keywords contained within an account in order to output the details (e.g. # of keywords, # of campaign negatives, #ad groups with over x keywords, etc). My understanding is that in order to be able to retrieve a criterion with it's associated ad group ID, the data needs to come from AdGroupCriterionService. However, some of my accounts contains 10k+ ad groups and 500k+ keywords, making iterating through ad group level calls slow and feeling very inefficient. As far as I can tell, this can't be filtered at a campaign level, meaning that a call unfiltered by AdGroupId can fail due to the 100k paging startIndex limit. Is there a more efficient way to pull large amounts of criterion data whilst still having a full view of the criterion's information? Thanks Sam -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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/bdd04470-3dec-4f66-81fa-2e53314e195b%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: How much money microAmount refers to?
Just divide any micro amount by 1,000,000. That'll give you local currency. On Thursday, August 30, 2012 11:10:29 AM UTC-4, spetz wrote: Hey there, I am new in that AdWords API network. Here is an interesting but that simple question, how should we read and understand microAmount value? Forexample if microAmount is set to 5000 , how much is it in $ dollars? 5$ or 50$ etc. Does the meaning vary on my local currency (that is not USD) ? -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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/4a15c54f-81c8-48b8-840f-1c99108f0225%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Unable to delete excluded partition
Sergio, Any chance you could post your code (even if it's Ruby) to edit the CaseValue of a partition? I can't seem to find a combination that works for me without throwing an exception. Thanks in advance, Eric On Thursday, August 14, 2014 10:13:04 AM UTC-4, road11 wrote: Sergio, Thank you for your kind response. Is there any way you could please post your C#.Net code (or VB.Net, for that matter) that you are using to get this done? No matter what I throw at it, I keep getting an error message saying I am not allowed to perform this operation for a Shopping campaign. And could you please pass along to the dev team how frustrating it is to have code samples that do not show how to perform edits and deletes? Shopping is the first API Google has ever released that did not provide the entire CRUD (create, read, update, delete) spectrum in the published sample code. There would be far fewer questions on the forums if they would have done that very basic thing. Thanks, Eric On Monday, August 11, 2014 4:32:43 AM UTC-4, Sérgio Gomes (Shopping API Team) wrote: Hi Eric, Yes, I'm deleting the default subdivision partition. The ID is shared among all ad groups, as you say, but remember that by deleting an ad group criterion you're deleting inside a specific ad group (AdGroupCriterion.mutate takes both the ad group ID and the criterion ID), so you won't be deleting anything in other ad groups. As for the tree being in an inconsistent state, that doesn't seem to be the case, since you can see it in the UI (you'd be getting errors otherwise), so it's probably just a case of deleting the root node and calling it a day. Cheers, Sérgio --- Sérgio Gomes Developer Relations Google UK Limited Registered Office: Belgrave House, 76 Buckingham Palace Road, London SW1W 9TQ Registered in England Number: 3977902 On Saturday, 9 August 2014 03:05:33 UTC+1, road11 wrote: Sergio, Thanks for your response. In all of my trees, I have only 3 partitions: the default subdivision partition, the sku partition that I bid on (type UNIT), and the everything else partition, which I've set up to be Excluded, making it a NegativeAdGroupCriterion, which is also a UNIT type. I can't seem to delete any of them successfully. Are you saying you're deleting the default all products partition? That partition's ID seems to be shared among all my adGroups (all my adGroups' default partitions have that same ID). If my tree were in an inconsistent state, how would I know? It looks the same in the UI as it does had I created it in the UI, itself. Would it help if I posted the C# code I used to create the tree? Eric On Friday, August 8, 2014 6:57:40 AM UTC-4, Sérgio Gomes (Shopping API Team) wrote: Hi Eric, I'm afraid I'm having trouble replication your issue locally. I've set up a partition tree with a NegativeAdGroupCriterion and had no trouble deleting the whole thing by just deleting the base node. Perhaps the tree you're testing this with is in an inconsistent state? Could you try creating a new one and testing there? Cheers, Sérgio --- Sérgio Gomes Developer Relations Google UK Limited Registered Office: Belgrave House, 76 Buckingham Palace Road, London SW1W 9TQ Registered in England Number: 3977902 On Wednesday, 6 August 2014 16:09:22 UTC+1, road11 wrote: Viewing previous posts on this topic, I've decided it would be easier just to delete my partition tree and create a new one. However, I get an error when I try. I've created operations of type REMOVE in the ProductPartitionHelper.cs class like so (very similar to the ... public void CreateRemoveOperation(AdGroupCriterion criterion) { criterion.adGroupId = this.adGroupId; AdGroupCriterionOperation operation = new AdGroupCriterionOperation(); operation.operand = criterion; operation.@operator = Operator.REMOVE; this.operations.Add(operation); } Then I get all the Partitions in the adGroup. There are 3 of them in my case: the default partition (type SUBDIVISION), the partition I want to bid on (type UNIT), and the everything else partition (also type UNIT). Then I loop through them to create delete operations using the ProductPartitionHelper, followed by the mutate operation, like so... ListAdGroupCriterion list = GetCriteriaForShoppingAdGroup(adGroupID); Debug.WriteLine(list.Count); ProductPartitionHelper helper = new ProductPartitionHelper(adGroupID); foreach (AdGroupCriterion cri in list) { helper.CreateRemoveOperation(cri); } AdGroupCriterionService adGroupCriterionService = (AdGroupCriterionService)user.GetService( AdWordsService.v201406.AdGroupCriterionService); try
Latest .Net libraries missing v201309
I've been running the Adwords.Net libraries v18.1. It contains the namespace Google.Api.Ads.AdWords.v201309; However, I just ran NuGet to bring down the latest dll, v.18.2. Help me understand why v201309 is missing from the library? The latest version it has is v201306. This is causing major problems. Please fix. Thanks, Eric -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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.
Possible to use Bulk Mutate when creating Shopping Partition Trees?
We have to create one sku per adGroup in our Shopping Campaigns. But it's not enough just to create the adGroup and the product ad. We have to create the mandatory 3-member partition tree (the all products partition, the sku partition, and the excluded everything else partition). The challenge is the time this takes. We have hundreds of thousands of skus, and creating these one-at-time is taking forever. Can we use the Bulk mutate (SimpleMutateJob) with Shopping objects like we do regular Adwords objects, like so?... SimpleMutateJob job = mutateJobService.mutate(operations.ToArray(), policy); I didn't want to try this without checking, as the .Net libraries for the Shopping campaigns are somewhat unstable in their current version. I'd rather see if anyone has run into any major issues before I try it here. If I can do this, does the same 5000 operation limit apply here as well? Eric -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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: Possible to use Bulk Mutate when creating Shopping Partition Trees?
Thanks, Sergio. Yes, that's how I'm doing it now (sorry if I wasn't clear). I have to create the adGroup first, then the product Ad, then create the entire tree in one go. I have to do it that way because I keep getting intermittent errors when creating lots of AdGroups and Product Ads in a loop (Unkown API Error, Refresh Token Failure, et. Al). Was just hoping for a faster solution. Thanks, Eric On Friday, August 15, 2014 10:04:25 AM UTC-4, Sérgio Gomes (Shopping API Team) wrote: Hi Eric, It's not currently possible to create product partitions with the MutateJobService, I'm afraid. Your best bet is to create the entire partition tree in one go (instead of with 3 separate requests) with the AdGroupCriterion service mutate call. You can do this by assigning a negative number to the root node (say, -1), and then referencing this number in the sub-nodes' parentCriterionId property. This can be extended to more complex trees, as long as you assign different negative numbers to all nodes with children and reference these numbers from the children. Hope this helps! Cheers, Sérgio --- Sérgio Gomes Developer Relations Google UK Limited Registered Office: Belgrave House, 76 Buckingham Palace Road, London SW1W 9TQ Registered in England Number: 3977902 On Friday, 15 August 2014 14:51:26 UTC+1, road11 wrote: We have to create one sku per adGroup in our Shopping Campaigns. But it's not enough just to create the adGroup and the product ad. We have to create the mandatory 3-member partition tree (the all products partition, the sku partition, and the excluded everything else partition). The challenge is the time this takes. We have hundreds of thousands of skus, and creating these one-at-time is taking forever. Can we use the Bulk mutate (SimpleMutateJob) with Shopping objects like we do regular Adwords objects, like so?... SimpleMutateJob job = mutateJobService.mutate(operations.ToArray(), policy); I didn't want to try this without checking, as the .Net libraries for the Shopping campaigns are somewhat unstable in their current version. I'd rather see if anyone has run into any major issues before I try it here. If I can do this, does the same 5000 operation limit apply here as well? Eric -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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: Unable to delete excluded partition
Thanks for this, Sergio. It worked for me; just delete it the same way you would a keyword. Way easier than what I was trying to do. Eric On Thursday, August 14, 2014 12:26:08 PM UTC-4, Sérgio Gomes (Shopping API Team) wrote: Hi Eric, I'm afraid I ran my tests in a different programming language, namely Ruby. In any case, it's a simple case of constructing a mutate request for the AdGroupCriterion, with operation: REMOVE operand: a BiddableAdGroupCriterion with the adGroupId set to the ad group ID in question, and a criterion with the id set to the criterion ID in question. In (hopefully readable) Ruby: operation = { :operator = 'REMOVE', :operand = { :xsi_type = 'BiddableAdGroupCriterion', :ad_group_id = ad_group_id, :criterion = { :id = criterion_id } } } If you're still getting errors after replicating the above in .NET let me know and I'll contact you privately so we can look at your SOAP logs. As for the sample code, it's my team that writes it, and I'm sorry to hear you found it lacking. We'll see what you can do about providing some more samples for the Shopping use cases. Cheers, Sérgio --- Sérgio Gomes Developer Relations Google UK Limited Registered Office: Belgrave House, 76 Buckingham Palace Road, London SW1W 9TQ Registered in England Number: 3977902 On Thursday, 14 August 2014 15:13:04 UTC+1, road11 wrote: Sergio, Thank you for your kind response. Is there any way you could please post your C#.Net code (or VB.Net, for that matter) that you are using to get this done? No matter what I throw at it, I keep getting an error message saying I am not allowed to perform this operation for a Shopping campaign. And could you please pass along to the dev team how frustrating it is to have code samples that do not show how to perform edits and deletes? Shopping is the first API Google has ever released that did not provide the entire CRUD (create, read, update, delete) spectrum in the published sample code. There would be far fewer questions on the forums if they would have done that very basic thing. Thanks, Eric On Monday, August 11, 2014 4:32:43 AM UTC-4, Sérgio Gomes (Shopping API Team) wrote: Hi Eric, Yes, I'm deleting the default subdivision partition. The ID is shared among all ad groups, as you say, but remember that by deleting an ad group criterion you're deleting inside a specific ad group (AdGroupCriterion.mutate takes both the ad group ID and the criterion ID), so you won't be deleting anything in other ad groups. As for the tree being in an inconsistent state, that doesn't seem to be the case, since you can see it in the UI (you'd be getting errors otherwise), so it's probably just a case of deleting the root node and calling it a day. Cheers, Sérgio --- Sérgio Gomes Developer Relations Google UK Limited Registered Office: Belgrave House, 76 Buckingham Palace Road, London SW1W 9TQ Registered in England Number: 3977902 On Saturday, 9 August 2014 03:05:33 UTC+1, road11 wrote: Sergio, Thanks for your response. In all of my trees, I have only 3 partitions: the default subdivision partition, the sku partition that I bid on (type UNIT), and the everything else partition, which I've set up to be Excluded, making it a NegativeAdGroupCriterion, which is also a UNIT type. I can't seem to delete any of them successfully. Are you saying you're deleting the default all products partition? That partition's ID seems to be shared among all my adGroups (all my adGroups' default partitions have that same ID). If my tree were in an inconsistent state, how would I know? It looks the same in the UI as it does had I created it in the UI, itself. Would it help if I posted the C# code I used to create the tree? Eric On Friday, August 8, 2014 6:57:40 AM UTC-4, Sérgio Gomes (Shopping API Team) wrote: Hi Eric, I'm afraid I'm having trouble replication your issue locally. I've set up a partition tree with a NegativeAdGroupCriterion and had no trouble deleting the whole thing by just deleting the base node. Perhaps the tree you're testing this with is in an inconsistent state? Could you try creating a new one and testing there? Cheers, Sérgio --- Sérgio Gomes Developer Relations Google UK Limited Registered Office: Belgrave House, 76 Buckingham Palace Road, London SW1W 9TQ Registered in England Number: 3977902 On Wednesday, 6 August 2014 16:09:22 UTC+1, road11 wrote: Viewing previous posts on this topic, I've decided it would be easier just to delete my partition tree and create a new one. However, I get an error when I try. I've created operations of type REMOVE in the ProductPartitionHelper.cs class like so (very similar to the ... public void CreateRemoveOperation(AdGroupCriterion criterion) { criterion.adGroupId = this.adGroupId; AdGroupCriterionOperation
Re: Unable to delete excluded partition
Sergio, Thank you for your kind response. Is there any way you could please post your C#.Net code (or VB.Net, for that matter) that you are using to get this done? No matter what I throw at it, I keep getting an error message saying I am not allowed to perform this operation for a Shopping campaign. And could you please pass along to the dev team how frustrating it is to have code samples that do not show how to perform edits and deletes? Shopping is the first API Google has ever released that did not provide the entire CRUD (create, read, update, delete) spectrum in the published sample code. There would be far fewer questions on the forums if they would have done that very basic thing. Thanks, Eric On Monday, August 11, 2014 4:32:43 AM UTC-4, Sérgio Gomes (Shopping API Team) wrote: Hi Eric, Yes, I'm deleting the default subdivision partition. The ID is shared among all ad groups, as you say, but remember that by deleting an ad group criterion you're deleting inside a specific ad group (AdGroupCriterion.mutate takes both the ad group ID and the criterion ID), so you won't be deleting anything in other ad groups. As for the tree being in an inconsistent state, that doesn't seem to be the case, since you can see it in the UI (you'd be getting errors otherwise), so it's probably just a case of deleting the root node and calling it a day. Cheers, Sérgio --- Sérgio Gomes Developer Relations Google UK Limited Registered Office: Belgrave House, 76 Buckingham Palace Road, London SW1W 9TQ Registered in England Number: 3977902 On Saturday, 9 August 2014 03:05:33 UTC+1, road11 wrote: Sergio, Thanks for your response. In all of my trees, I have only 3 partitions: the default subdivision partition, the sku partition that I bid on (type UNIT), and the everything else partition, which I've set up to be Excluded, making it a NegativeAdGroupCriterion, which is also a UNIT type. I can't seem to delete any of them successfully. Are you saying you're deleting the default all products partition? That partition's ID seems to be shared among all my adGroups (all my adGroups' default partitions have that same ID). If my tree were in an inconsistent state, how would I know? It looks the same in the UI as it does had I created it in the UI, itself. Would it help if I posted the C# code I used to create the tree? Eric On Friday, August 8, 2014 6:57:40 AM UTC-4, Sérgio Gomes (Shopping API Team) wrote: Hi Eric, I'm afraid I'm having trouble replication your issue locally. I've set up a partition tree with a NegativeAdGroupCriterion and had no trouble deleting the whole thing by just deleting the base node. Perhaps the tree you're testing this with is in an inconsistent state? Could you try creating a new one and testing there? Cheers, Sérgio --- Sérgio Gomes Developer Relations Google UK Limited Registered Office: Belgrave House, 76 Buckingham Palace Road, London SW1W 9TQ Registered in England Number: 3977902 On Wednesday, 6 August 2014 16:09:22 UTC+1, road11 wrote: Viewing previous posts on this topic, I've decided it would be easier just to delete my partition tree and create a new one. However, I get an error when I try. I've created operations of type REMOVE in the ProductPartitionHelper.cs class like so (very similar to the ... public void CreateRemoveOperation(AdGroupCriterion criterion) { criterion.adGroupId = this.adGroupId; AdGroupCriterionOperation operation = new AdGroupCriterionOperation(); operation.operand = criterion; operation.@operator = Operator.REMOVE; this.operations.Add(operation); } Then I get all the Partitions in the adGroup. There are 3 of them in my case: the default partition (type SUBDIVISION), the partition I want to bid on (type UNIT), and the everything else partition (also type UNIT). Then I loop through them to create delete operations using the ProductPartitionHelper, followed by the mutate operation, like so... ListAdGroupCriterion list = GetCriteriaForShoppingAdGroup(adGroupID); Debug.WriteLine(list.Count); ProductPartitionHelper helper = new ProductPartitionHelper(adGroupID); foreach (AdGroupCriterion cri in list) { helper.CreateRemoveOperation(cri); } AdGroupCriterionService adGroupCriterionService = (AdGroupCriterionService)user.GetService( AdWordsService.v201406.AdGroupCriterionService); try { adGroupCriterionService.mutate(helper.Operations); } catch (Exception ex) { Debug.WriteLine(ex.Message); if (ex.InnerException != null
Re: Unable to delete excluded partition
Sergio, Thanks for your response. In all of my trees, I have only 3 partitions: the default subdivision partition, the sku partition that I bid on (type UNIT), and the everything else partition, which I've set up to be Excluded, making it a NegativeAdGroupCriterion, which is also a UNIT type. I can't seem to delete any of them successfully. Are you saying you're deleting the default all products partition? That partition's ID seems to be shared among all my adGroups (all my adGroups' default partitions have that same ID). If my tree were in an inconsistent state, how would I know? It looks the same in the UI as it does had I created it in the UI, itself. Would it help if I posted the C# code I used to create the tree? Eric On Friday, August 8, 2014 6:57:40 AM UTC-4, Sérgio Gomes (Shopping API Team) wrote: Hi Eric, I'm afraid I'm having trouble replication your issue locally. I've set up a partition tree with a NegativeAdGroupCriterion and had no trouble deleting the whole thing by just deleting the base node. Perhaps the tree you're testing this with is in an inconsistent state? Could you try creating a new one and testing there? Cheers, Sérgio --- Sérgio Gomes Developer Relations Google UK Limited Registered Office: Belgrave House, 76 Buckingham Palace Road, London SW1W 9TQ Registered in England Number: 3977902 On Wednesday, 6 August 2014 16:09:22 UTC+1, road11 wrote: Viewing previous posts on this topic, I've decided it would be easier just to delete my partition tree and create a new one. However, I get an error when I try. I've created operations of type REMOVE in the ProductPartitionHelper.cs class like so (very similar to the ... public void CreateRemoveOperation(AdGroupCriterion criterion) { criterion.adGroupId = this.adGroupId; AdGroupCriterionOperation operation = new AdGroupCriterionOperation(); operation.operand = criterion; operation.@operator = Operator.REMOVE; this.operations.Add(operation); } Then I get all the Partitions in the adGroup. There are 3 of them in my case: the default partition (type SUBDIVISION), the partition I want to bid on (type UNIT), and the everything else partition (also type UNIT). Then I loop through them to create delete operations using the ProductPartitionHelper, followed by the mutate operation, like so... ListAdGroupCriterion list = GetCriteriaForShoppingAdGroup(adGroupID); Debug.WriteLine(list.Count); ProductPartitionHelper helper = new ProductPartitionHelper(adGroupID); foreach (AdGroupCriterion cri in list) { helper.CreateRemoveOperation(cri); } AdGroupCriterionService adGroupCriterionService = (AdGroupCriterionService)user.GetService( AdWordsService.v201406.AdGroupCriterionService); try { adGroupCriterionService.mutate(helper.Operations); } catch (Exception ex) { Debug.WriteLine(ex.Message); if (ex.InnerException != null) { Debug.WriteLine(Inner Exception: + ex.InnerException.Message); } } ...it chokes on the mutate method with this: Inner Exception:[AdGroupCriterionError.PRODUCT_PARTITION_DOES_NOT_EXIST @ operations[1].operand.criterion.id, AdGroupCriterionError.PRODUCT_PARTITION_DOES_NOT_EXIST @ operations[2]. operand.criterion.id] the third partition in this tree, the everything else partition, (the one represented by operations[2]) is excluded, hence the Google API gave it a type of NegativeAdGroupCriterion (criterionUse = NEGATIVE). So, since it thinks this partition doesn't exist, I tried passing only the first two, omitting the 3rd. When I do that, I get the same error: Inner Exception:[AdGroupCriterionError.PRODUCT_PARTITION_DOES_NOT_EXIST @ operations[1].operand.criterion.id] ...that operation is represented by the real product I'm bidding on, and it most assuredly does exist. I can verify this by downloading the report from the UI for the adGroup and comparing criterion ID's. It's definitely a product partition with a criterion type of BIDDABLE. Finally, I tried removing just the root partition. I had seen earlier Josh indicated that removing that partition performs a cascading delete. However, when I do that, I get this exception: Inner Exception:[OperationAccessDenied.OPERATION_NOT_PERMITTED_FOR_CAMPAIGN_TYPE @ operations[0].operand.userStatus; trigger:'SHOPPING', OperationAccessDenied.OPERATION_NOT_PERMITTED_FOR_CAMPAIGN_TYPE @ operations[0].operand.biddingStrategyConfiguration.biddingScheme; trigger:'SHOPPING
Unable to Edit Existing Product Partition
I've figured out how to create an new Partition tree, but now I had to edit the CaseValue of the Partition I wish to bid on (not the parent partition of the everything else partition). There is no code sample in the .Net API that shows how to do this (we *really* need that example). I've seen elsewhere Josh indicated that in order to modify any part of the tree, you have to pass the whole tree over. I tried that and got an error indicating that I'm not allowed to modify a product partition that is a Negative AdGroupCriterion (we're excluding the everything else unit, thereby making it negative). So, I tried passing every part of the tree except the everything else partition. I didn't get an error on the mutate method, but it didn't change anything either; the resulting tree is exactly as it was before. That being the case, I see no way to modify the biddable partition using the API. Could someone from the Google API team please give us a code sample of how to do this. We really need complete examples, guys (Create, Read, Update, and Delete). The code samples you've published, even though they don't run successfully, are at least enough to point us in a direction to figure out how to create a partition tree. For editing an existing tree, we need more. It's not as easy as just changing the operation type from ADD to SET (tried that, and got the result above) This is costing us days trying to figure out how to do this. I've tried seemingly 100 ways to make it work, but cannot seem to. Can somebody please give us a working C# (I'd settle for VB.Net at this point) sample of how to edit an existing partition? Eric -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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.
Unable to delete excluded partition
Viewing previous posts on this topic, I've decided it would be easier just to delete my partition tree and create a new one. However, I get an error when I try. I've created operations of type REMOVE in the ProductPartitionHelper.cs class like so (very similar to the ... public void CreateRemoveOperation(AdGroupCriterion criterion) { criterion.adGroupId = this.adGroupId; AdGroupCriterionOperation operation = new AdGroupCriterionOperation(); operation.operand = criterion; operation.@operator = Operator.REMOVE; this.operations.Add(operation); } Then I get all the Partitions in the adGroup. There are 3 of them in my case: the default partition (type SUBDIVISION), the partition I want to bid on (type UNIT), and the everything else partition (also type UNIT). Then I loop through them to create delete operations using the ProductPartitionHelper, followed by the mutate operation, like so... ListAdGroupCriterion list = GetCriteriaForShoppingAdGroup(adGroupID); Debug.WriteLine(list.Count); ProductPartitionHelper helper = new ProductPartitionHelper(adGroupID); foreach (AdGroupCriterion cri in list) { helper.CreateRemoveOperation(cri); } AdGroupCriterionService adGroupCriterionService = (AdGroupCriterionService)user.GetService( AdWordsService.v201406.AdGroupCriterionService); try { adGroupCriterionService.mutate(helper.Operations); } catch (Exception ex) { Debug.WriteLine(ex.Message); if (ex.InnerException != null) { Debug.WriteLine(Inner Exception: + ex.InnerException.Message); } } ...it chokes on the mutate method with this: Inner Exception:[AdGroupCriterionError.PRODUCT_PARTITION_DOES_NOT_EXIST @ operations[1].operand.criterion.id, AdGroupCriterionError.PRODUCT_PARTITION_DOES_NOT_EXIST @ operations[2].operand.criterion.id] the third partition in this tree, the everything else partition, (the one represented by operations[2]) is excluded, hence the Google API gave it a type of NegativeAdGroupCriterion (criterionUse = NEGATIVE). So, since it thinks this partition doesn't exist, I tried passing only the first two, omitting the 3rd. When I do that, I get the same error: Inner Exception:[AdGroupCriterionError.PRODUCT_PARTITION_DOES_NOT_EXIST @ operations[1].operand.criterion.id] ...that operation is represented by the real product I'm bidding on, and it most assuredly does exist. I can verify this by downloading the report from the UI for the adGroup and comparing criterion ID's. It's definitely a product partition with a criterion type of BIDDABLE. Finally, I tried removing just the root partition. I had seen earlier Josh indicated that removing that partition performs a cascading delete. However, when I do that, I get this exception: Inner Exception:[OperationAccessDenied.OPERATION_NOT_PERMITTED_FOR_CAMPAIGN_TYPE @ operations[0].operand.userStatus; trigger:'SHOPPING', OperationAccessDenied.OPERATION_NOT_PERMITTED_FOR_CAMPAIGN_TYPE @ operations[0].operand.biddingStrategyConfiguration.biddingScheme; trigger:'SHOPPING', OperationAccessDenied.OPERATION_NOT_PERMITTED_FOR_CAMPAIGN_TYPE @ operations[0].operand.biddingStrategyConfiguration.biddingStrategyType; trigger:'SHOPPING'] So, can somebody from the adwords team set me straight? How do you delete a partition tree out of an adGroup through the API that contains an excluded partition (all of ours do)? It doesn't seem to like anything I throw at it. Eric -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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.
Error Creating Shopping Product Partition in .Net
I'm going to try to explain my issue without expressing how frustrated I am trying to get this Shopping API working, so here goes... I am using .Net API. I can create a Shopping campaign and an AdGroup under that campaign with no problem. I am hitting a brick wall, however, trying to create a Product Partition tree. I even tried running the .Net sample code that is downloadable from the library site (v101406.AddProductPartitionTree). It doesn't even work; throws an AdGroupCriterionError on the mutate() method. Under this adGroup, I want to create a simple partition of type Unit representing one sku that I can bid on. I know I need to create a root paritition of type Subdivision. I also know I need to create an Other group that will be essentially empty. I've looked at the slideshare, the getting started guide, and the C# samples that come in the .Net client library. I have yet to find a combination that works. Here's what I have. Hopefully, someone can point out what I need to do to get this seemingly simple task done... AdGroup ag = gag.GetExistingAdGroupFromGoogle(campaignID, TestAdGroup10); long adGroupId = ag.id; //not published for security ///*create your root subdivision: All Products*/ ProductPartitionHelper helper = new ProductPartitionHelper(adGroupId); ProductPartition root = helper.CreateSubdivision(null, null); /* create an other node, what am I missing here?*/ ProductOfferId poid = new ProductOfferId(); poid.ProductDimensionType = ProductDimensionType.OFFER_ID.ToString(); ProductPartition node2 = helper.CreateUnit(root, poid, 1, false); try { // Make the mutate request. AdGroupCriterionService adGroupCriterionService = (AdGroupCriterionService)user.GetService( AdWordsService.v201406.AdGroupCriterionService); AdGroupCriterionReturnValue retval = adGroupCriterionService.mutate(helper.Operations); When I run the above code, I don't get an error, but when I go to the My Client Center UI to examine the results, I get the big red error message at the top of the page saying this: There was an error with your operation. If you were trying to make a change, it may not have saved. Please refresh this page to try again. If the error continues, log out of your AdWords account, then log in again and return to this page. Clearly, I've done something so horrible that MCC can't even display the results. But I don't know what it is or how to make it work properly. And with the August deadline looming, I'm a tad nervous about it (especially since the .Net sample code Google published doesn't even work). I need a C# code sample that runs. Can anyone help me? Please? t, then log in again and return to this page. -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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: Retrieve Product Partition title
I agree. Please, please put the ADGroupCriterion ID on the Shopping Performance Report. Please. On Thursday, May 8, 2014 5:58:21 PM UTC-4, GregT wrote: Josh, in response to your question: Would it be helpful if the ad group criterion ID was available as a segment field on the *Shopping Performance Report*? I just want to say yes. It'd be much easier and less error prone than trying to figure out exactly which product is in which leaf/unit node through traversal of the partition tree. Thanks, Greg On Thursday, May 8, 2014 4:29:57 PM UTC-5, Josh Radcliff (AdWords API Team) wrote: Hi Igor, By 'default' do you mean when the partition's caseValue https://developers.google.com/adwords/api/docs/reference/v201402/AdGroupCriterionService.ProductPartition#caseValue is an instance of ProductBiddingCategory https://developers.google.com/adwords/api/docs/reference/v201402/AdGroupCriterionService.ProductBiddingCategory? As you pointed out, for those objects you can use ConstantDataService.getProductBiddingCategoryData https://developers.google.com/adwords/api/docs/reference/v201402/ConstantDataService#getProductBiddingCategoryData to fetch human-readable labels for the IDs. However, I realize this means using yet another service to tie all of the data together. If you've already tried this approach and found issues with it, please let me know. I have several requests in for improvements to the shopping reports. I'll update this post on any progress. Cheers, Josh, AdWords API Team On Thursday, May 8, 2014 2:17:29 AM UTC-4, Igor Schut wrote: Hi Josh, Thanks for looking in this for me. I am well aware that we need to use the AdGroupCriterionService to retrieve more details. The thing is that for most of the partitions we are able to get human readable data, like the brand. But when the partitions are based on the 'default' (aka. Google provided categorization) the AdGroupCriterionService does not provide human readable data. It would be much better to include this, and the parent ids in the performance report. Thanks, Igor Op woensdag 7 mei 2014 18:57:00 UTC+2 schreef Josh Radcliff (AdWords API Team): Hi Igor, I gathered some more information about the intended use cases for the *Product Partition Report* and the *Shopping Performance Report*. - *Product Partition Report* is a *Product Partition-level report* meant to show you how your ad group criteria based on product partitions are performing. As you stated, this report only gives you the criterion ID (the *Id* field) -- it does not include the attributes of the criterion's associated product partition. If you need that information you can use *AdGroupCriterionService* to get the relevant fields by criterion ID and then join that data to the report data by criterion ID. - Note as well that the *Product Partition Report* is a hierarchical report and will attribute an impression to the row for every node in the hierarchy that includes the partition that triggered the impression (the leaf node of the tree). For example, if your partition tree consisted of ProductCanonicalCondition = new - Brand = my brand, and you have 1 impression that meets that criterion, then the impression would appear on *two rows* in the report: the row for ProductCanonicalCondition = new and the row for Brand = my brand. Due to this behavior, you should not sum up metrics across rows in this report. - We're aware that it would be extremely helpful if the *Product Partition Report* included parent criterion ID and we're looking into adding this. - *Shopping Performance Report* is a *Product-level report* meant to show you how ads for your individual products are performing. This report also shows you the various merchant center attributes of each product (brand, condition, product type, category 1-5, etc.) but does not include the ID of the ad group criterion that triggered each impression. In other words, you are correct that reporting alone will not provide you with all of the attributes of your product partitions. If you need those attributes alongside statistics you'll have to bring in data from AdGroupCriterionService. Would it be helpful if the ad group criterion ID was available as a segment field on the *Shopping Performance Report*? You would still need to use *AdGroupCriterionService* to get all of the partition details, but I think this would bridge the gap from product to partition. Thanks, Josh, AdWords API Team On Thursday, May 1, 2014 3:03:25 AM UTC-4, Igor Schut wrote: Hi Josh, Thanks for looking in to this. The Shopping Performance Report shows data of Merchant Products. The fields you refer to (like Brand, CategoryLX, ProductBiddingCategory, ProductTypeLX, etc.) are data
Re: Getting Stats from Ad Hoc Reports
Anash, Thank you for your response. However, the Keyword_Performance_Report doesn't appear to have an HourOfDay field. That's the report we'd need in order to get stats broken down by keyword. Any chance you could put that functionality into the Keyword Performance Report? Eric On Tuesday, December 17, 2013 9:19:11 AM UTC-5, Anash P. Oommen (AdWords API Team) wrote: Hi Eric, - You could run reports as frequently as you want. If you include HourOfDay as a column, you will get stats broken down by hours. That applies for any report that provides HourOfDay as a column. - The C# .NET client library uses adhoc reports, we provide you with a ReportDefinition class so that it's easier to build the adhoc request, that's all. In case you are interested, the class is generated from https://adwords.google.com/api/adwords/reportdownload/v201309/reportDefinition.xsd, and it defines the schema for the report definition xml you use with adhoc reports. Here's the code example to use AdHoc reports: https://code.google.com/p/google-api-adwords-dotnet/source/browse/examples/adwords/CSharp/v201309/Reporting/DownloadCriteriaReport.cs. The supported report types and their columns are available at https://developers.google.com/adwords/api/docs/appendix/reports Cheers, Anash P. Oommen, AdWords API Advisor. On Monday, December 16, 2013 2:52:10 PM UTC-5, road11 wrote: I see that as of next March, we will no longer be able to get stats from the AdGroupCriterionService. We now have to use reporting... ( http://googleadsdeveloper.blogspot.com/2013/10/adwords-api-how-to-migrate-from-stats.html ) My question is how often can we download this report and expect to see updated stats for any given keyword? Using the AdGroupCriterionService, we could get updated stats hourly. But if I have to use the Keyword Performance Report, doesn't that mean I'll only see different, updated data once a day? And is there a C#.Net example of how to fire off an ad-hoc report? The .Net sample code only comes with examples using ReportDefinitionService. Eric -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://googleadsdeveloper.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 --- 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/groups/opt_out.
Re: Getting Stats from Ad Hoc Reports
Anesh, I just tried HourOfDay in the Criteria Performance report you mentioned. It's not there either. Can we get HourOfDay in these reports? If not, how can we break down our impressions and clicks by the hour? Eric On Tuesday, December 17, 2013 9:19:11 AM UTC-5, Anash P. Oommen (AdWords API Team) wrote: Hi Eric, - You could run reports as frequently as you want. If you include HourOfDay as a column, you will get stats broken down by hours. That applies for any report that provides HourOfDay as a column. - The C# .NET client library uses adhoc reports, we provide you with a ReportDefinition class so that it's easier to build the adhoc request, that's all. In case you are interested, the class is generated from https://adwords.google.com/api/adwords/reportdownload/v201309/reportDefinition.xsd, and it defines the schema for the report definition xml you use with adhoc reports. Here's the code example to use AdHoc reports: https://code.google.com/p/google-api-adwords-dotnet/source/browse/examples/adwords/CSharp/v201309/Reporting/DownloadCriteriaReport.cs. The supported report types and their columns are available at https://developers.google.com/adwords/api/docs/appendix/reports Cheers, Anash P. Oommen, AdWords API Advisor. On Monday, December 16, 2013 2:52:10 PM UTC-5, road11 wrote: I see that as of next March, we will no longer be able to get stats from the AdGroupCriterionService. We now have to use reporting... ( http://googleadsdeveloper.blogspot.com/2013/10/adwords-api-how-to-migrate-from-stats.html ) My question is how often can we download this report and expect to see updated stats for any given keyword? Using the AdGroupCriterionService, we could get updated stats hourly. But if I have to use the Keyword Performance Report, doesn't that mean I'll only see different, updated data once a day? And is there a C#.Net example of how to fire off an ad-hoc report? The .Net sample code only comes with examples using ReportDefinitionService. Eric -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://googleadsdeveloper.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 --- 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/groups/opt_out.
Getting Stats from Ad Hoc Reports
I see that as of next March, we will no longer be able to get stats from the AdGroupCriterionService. We now have to use reporting... (http://googleadsdeveloper.blogspot.com/2013/10/adwords-api-how-to-migrate-from-stats.html) My question is how often can we download this report and expect to see updated stats for any given keyword? Using the AdGroupCriterionService, we could get updated stats hourly. But if I have to use the Keyword Performance Report, doesn't that mean I'll only see different, updated data once a day? And is there a C#.Net example of how to fire off an ad-hoc report? The .Net sample code only comes with examples using ReportDefinitionService. Eric -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://googleadsdeveloper.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 --- 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/groups/opt_out.
Re: Retrieving product listing ad costs
We use that same report to get ours. You should have an ad type in there called Product listing ad. Make sure you're not filtering those out in your query call. On Monday, December 16, 2013 12:00:03 PM UTC-5, Sean Gottschalk wrote: Hello, I'm hoping to be able to retrieve product listing ad information through the adwords API, much in the same way that we can retrieve the keyword cost information. I found this topic ( https://groups.google.com/d/msg/adwords-api/RBHMQxndqOA/V9LQfziZaWsJ) which recommended using the AD_PERFORMANCE_REPORT but the only data I'm seeing come back through that report are text ad and dynamic search ad. I'm using the following query: SELECT Id, AdType, ClickType, Headline, Description1, Description2, Date, Cost FROM AD_PERFORMANCE_REPORT. Is there another way to get that performance information through the API? Thanks -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://googleadsdeveloper.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 --- 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/groups/opt_out.
Re: INCOMPLETE_SIGNUP error
We had the same problem. Basically what it means is Google has updated their Terms Conditions in the Adwords My Client Center UI. You have to log in to your UI and accept the terms and conditions before they'll let you continue to issue API calls. On Monday, May 20, 2013 6:32:48 AM UTC-4, in...@ua-solutions.com wrote: We have used an existing MCC account 439-075-6027. With this account, we applied for Adwords API token, which is still pending. In the meantime, we applied for test account with the MCC. This MCC already has a few campaigns running. We used the following credentials to log in, and extract information: Your developer MCCID: 439-075-6027 Your new test account Customer ID: 432-845-3367 However, we also get error message INCOMPLETE_SIGNUP. We checked the forum, and said that this is because the payment information has not been updated. However, we had confirmed that we have input all the necessary payment details for MCC account 439-07506927. Please advice for we can resolve the issue of INCOMPLETE_SIGNUP? -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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 --- 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/groups/opt_out.
How to estimate opening bid for PLA Ad Group
We're trying to get an estimate of impressions/bids/clicks for brand new product listing ad campaigns. We had planned on getting this information from the BidLandscape feature of the API, but we're getting no results back from the DataService. The AdGroups we're trying to get BidLandscape points for are our Product Listing Ad (PLA) adgroups. Because these are PLA adgroups, they have no keywords associated with them. What we've found is when we pass an Adgroup ID for a PLA adgroup to the DataService using either getAdGroupBidLandscape or getCriterionBidLandscape, the DataService gives us no Landscape points. Even when we pass it PLA AdGroup ID that has been in service for a while, we still get zero BidLandscape points. We know the C# syntax is correct because the service does bring back points when we use a regular Adwords Ad Group ID that has some keywords associated with it. But that won't help us estimate bids for new PLA adgroups that have a)no history or b)no keywords associated with them. How can we estimate traffic for new PLA Adgroups? How are any of you doing this? -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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 --- 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/groups/opt_out.
Re: Need example code to set PLA Auto Target for AdGroup
Since no one else has answered, and I've figured it out, I thought I'd post my solution here. Hope this helps somebody... long adGroupID = 123456789; AdWordsUser user = new AdWordsUser(); AdGroupCriterionService adGroupCriterionService = (AdGroupCriterionService)user .GetService(AdWordsService.v201302.AdGroupCriterionService); ProductCondition[] pcs = new ProductCondition[1]; ProductCondition pc = new ProductCondition(); pc.operand = new ProductConditionOperand(); pc.operand.operand = id; pc.argument = ABC123; pcs[0] = pc; Product p = new Product(); p.conditions = pcs; BiddableAdGroupCriterion pgc = new BiddableAdGroupCriterion(); pgc.adGroupId = adGroupID; pgc.criterion = p; AdGroupCriterionOperation aop = new AdGroupCriterionOperation(); aop.@operator = Operator.ADD; aop.operand = pgc; AdGroupCriterionOperation[] aops = new AdGroupCriterionOperation[1]; aops[0] = aop; adGroupCriterionService.mutate(aops); //magic happens here -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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 --- 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/groups/opt_out.
Visual Studio can't find Google Adwords dlls
I'm having issues creating a new Visual Studio project and adding Google DLLs to it (Google.Adwords.dll, Google.Ads.Common.dll). I create a new project, add references to those DLLs, then write my using statements at the top of my classes. I even physically copied the DLLs to my bin directory and referenced them from there. Invariably, I'll namespace Google not found. Are you missing a reference? NO, I'm not missing anything! What is it about Google dlls that Visual studio can't find? Has anyone solved this issue? -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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 --- 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/groups/opt_out.
QuotaCheckError.INCOMPLETE_SIGNUP @ ; trigger:'null'
We've had this code in place and working properly for almost a year now. All of a sudden, today it chokes on this error (see below). No idea why or what trigger:null means. I've checked here in the forums for others who have experienced various flavors of this problem. All indicate the problem is incomplete data in MCC. Ours has been in place for years without an issue, afaik. Here's the full barf... Google.Api.Ads.AdWords.Lib.AdWordsApiException occurred HResult=-2146233088 Message=An API exception has occurred. See ApiException and InnerException fields for more details. Source=Google.Ads.Common StackTrace: at Google.Api.Ads.Common.Lib.AdsSoapClient.MakeApiCall(String methodName, Object[] parameters) in z:\ads-dotnet-library\developer_support\external\client_libs\ads\csharp\adwords\compile\Lib\AdsSoapClient.cs:line 232 InnerException: System.Web.Services.Protocols.SoapException HResult=-2146233087 Message=[QuotaCheckError.INCOMPLETE_SIGNUP @ ; trigger:'null'] Source=System.Web.Services Actor= Lang= Node= Role= StackTrace: 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) in z:\ads-dotnet-library\developer_support\external\client_libs\ads\csharp\adwords\compile\Lib\AdsSoapClient.cs:line 211 InnerException: -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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 --- 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/groups/opt_out.
Need example code to set PLA Auto Target for AdGroup
We've got a PLA campaign with serveral thousand adgroups in it. I need to programatically set the Auto Target feature through the API. No idea how to do this. The object browser in Visual Studio can't find anything called an AutoTarget. I saw that a guy back in 2010 had a similar issue, but I can't deduce from his code how this is done, and the Google guy who responded said he didn't have any example code for it back then. Hoping somebody has some now. Can somebody please paste some C# (I'd even settle for a Java example at this point) of how to set an auto target value on an adgroup? Thank you, thank you, thank you in advance. -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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 --- 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/groups/opt_out.
Re: Keyword Performance Report BottomPosition, PreferredPosition always blank
Anyone? Is anyone else who routinely downloads this report seeing something other than blank (--) values for BottomPosition and PreferredPosition? If so, how did you get those values to appear? I can't seem to. Eric On Wednesday, November 28, 2012 1:58:05 PM UTC-5, road11 wrote: It would help a great deal if we could see our BottomPosition (lowest position) and PreferredPosition (highest position) in our Keyword Performance reports. However, those two fields always come back with two dashes (--). I've made it a point to exclude all fields that could prevent zero impressions from being shown (yet I still don't get any zero-impression rows) Can anyone shed light on why our BottomPosition and PreferredPosition are always coming back with no data? I've included the following fields in the select list... AdGroupId, AdGroupName, AdGroupStatus, AdNetworkType1, AdNetworkType2, ApprovalStatus, AverageCpc, AveragePosition, BottomPosition, CampaignId, CampaignName, CampaignStatus, Clicks, Cost, CpcBidSource, CriteriaDestinationUrl, CustomerDescriptiveName, DestinationUrl, ExternalCustomerId, FirstPageCpc, Id, Impressions, KeywordMatchType, KeywordText, MaxCpc, OriginalMaxCpc, PreferredPosition, QualityScore, Slot, Status 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
Keyword Performance Report BottomPosition, PreferredPosition always blank
It would help a great deal if we could see our BottomPosition (lowest position) and PreferredPosition (highest position) in our Keyword Performance reports. However, those two fields always come back with two dashes (--). I've made it a point to exclude all fields that could prevent zero impressions from being shown (yet I still don't get any zero-impression rows) Can anyone shed light on why our BottomPosition and PreferredPosition are always coming back with no data? I've included the following fields in the select list... AdGroupId, AdGroupName, AdGroupStatus, AdNetworkType1, AdNetworkType2, ApprovalStatus, AverageCpc, AveragePosition, BottomPosition, CampaignId, CampaignName, CampaignStatus, Clicks, Cost, CpcBidSource, CriteriaDestinationUrl, CustomerDescriptiveName, DestinationUrl, ExternalCustomerId, FirstPageCpc, Id, Impressions, KeywordMatchType, KeywordText, MaxCpc, OriginalMaxCpc, PreferredPosition, QualityScore, Slot, Status 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
How often is Keyword Performance report data refreshed?
We're looking at the Keyword Performance Report to meet our needs for synchronization between Google Adwords and our local databases. Ideally, we'd like to download this report with fresh positioning data several times a day so we can adjust our bids accordingly. So I guess my question is.. a) is this even possible? Can we download this report multiple times a day and expect updated data each time? b) would I need to put a time-of-day indicator in the code when I use the daterange object in C#? c) I notice that if I ask for the Month, Day, or DayofWeek in the selector fields, it prevents zero-impression rows from being shown. If I omit these from the selector list, yet still apply a date range of any single day to the coded request, can I still see my zero-impression rows? Thanks in advance, 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
Re: Ad Performance Report missing some Enabled Ads
A-ha! I see that now. Didn't even notice those notes in Excel when I downloaded the field list. Thanks, Jason. Eric On Wednesday, October 24, 2012 6:42:29 PM UTC-4, Jason Stedman wrote: Eric, Take a look at the specific fields you are retrieving. Certain fields will prevent zero impression rows from showing up in reports. One way to get around this would be to pull all of those fields in one report, then pull all the fields that do not prevent zero-impression rows in another report, then just join them. The fields which prevent zero-impression rows have Prevents zero-impression rows from being returned. in the Notes column of the tables on this page: https://developers.google.com/adwords/api/docs/appendix/reports Hope this helps! Jason -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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: Unable to Delete a Budget in code
That did it. Thanks, Alex. Eric On Tuesday, October 23, 2012 10:16:02 AM UTC-4, Alex Jones wrote: set the campaigns that use that budget to use a budget with id = null. that will allow you to delete it. On Tuesday, October 23, 2012 8:37:18 AM UTC-4, road11 wrote: I tried that. It gives me a different error message: this one says that the it can't be deleted because the Budget is in use. No way that can be true. I just created it and deleted the only campaign that was using it within minutes of each other. On Monday, October 22, 2012 10:05:02 AM UTC-4, road11 wrote: I see that you must first add a budget before you can add a campaign (as per the C# sample code v201209). That works ok. However, I can't seem to delete a budget once I've added it. I just created a budget in my sandbox just before creating a campaign (a la AdCampaign.cs). This budget is attached to this campaign only. I deleted the campaign, and then tried to delete the budget. I don't get an error on the mutate operation, but it doesn't delete the budget either. The deleted budget status always comes back ACTIVE. I use code similar to that from which I deleted the campaign. This budget is attached only to this one campaign. If the campaign is deleted, how is it possible for the budget to still be ACTIVE and IN_USE?... public void DeleteBudget(AdWordsUser user, int budgetID) { Console.WriteLine(Delete budget entered...); BudgetService bs = (BudgetService)user .GetService(AdWordsService.v201209.BudgetService); Budget budget = new Budget(); budget.budgetId = budgetID; budget.status = BudgetBudgetStatus.DELETED; BudgetOperation bop = new BudgetOperation(); bop.operand = budget; bo...@operator = Operator.SET; //Operator.REMOVE gives an error BudgetOperation[] bops = new BudgetOperation[1]; bops[0] = bop; try { BudgetReturnValue retVal = bs.mutate(bops); Budget deletedBudget = retVal.value[0]; Console.WriteLine(deletedBudget.status); //always comes back ACTIVE } catch (Exception ex) { Console.WriteLine(ex.Message); if (ex.InnerException != null) { Console.WriteLine(ex.InnerException.Message); } } } ...btw, I tried the Operator.REMOVE which gives me an error saying it is in use. Thanks, 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
Ad Performance Report missing some Enabled Ads
With the Adwords API (v201209 .Net), I'm doing two things... - bringing down all of our Campaigns, AdGroups, and Ads - bringing down our Ad Performance Report (include zero impressions = true) I'm putting all these into a SQL Server database with classic third normal form. However, I'm finding something missing... When I compare the Ads brought down by the API, I compare them to the Ads in the Ad Performance. I'm finding that I've got some 85 ads the API says are ENABLED, with an AdGroup whose status is ENABLED, in a Campaign whose status is ACTIVE, yet those AdIds don't appear in the Ad Performance Report. They're missing. I'm definitely including a predicate in the report saying I want ENABLED ads. I can even go to the UI and find that they're definitely enabled. They have zero impressions, but I'm telling the Ad Performance Report to include those anyway, yet it's missing several. Any idea why? 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
Unable to Delete a Budget in code
I see that you must first add a budget before you can add a campaign (as per the C# sample code v201209). That works ok. However, I can't seem to delete a budget once I've added it. I just created a budget in my sandbox just before creating a campaign (a la AdCampaign.cs). This budget is attached to this campaign only. I deleted the campaign, and then tried to delete the budget. I don't get an error on the mutate operation, but it doesn't delete the budget either. The deleted budget status always comes back ACTIVE. I use code similar to that from which I deleted the campaign. This budget is attached only to this one campaign. If the campaign is deleted, how is it possible for the budget to still be ACTIVE and IN_USE?... public void DeleteBudget(AdWordsUser user, int budgetID) { Console.WriteLine(Delete budget entered...); BudgetService bs = (BudgetService)user .GetService(AdWordsService.v201209.BudgetService); Budget budget = new Budget(); budget.budgetId = budgetID; budget.status = BudgetBudgetStatus.DELETED; BudgetOperation bop = new BudgetOperation(); bop.operand = budget; bop.@operator = Operator.SET; //Operator.REMOVE gives an error BudgetOperation[] bops = new BudgetOperation[1]; bops[0] = bop; try { BudgetReturnValue retVal = bs.mutate(bops); Budget deletedBudget = retVal.value[0]; Console.WriteLine(deletedBudget.status); //always comes back ACTIVE } catch (Exception ex) { Console.WriteLine(ex.Message); if (ex.InnerException != null) { Console.WriteLine(ex.InnerException.Message); } } } ...btw, I tried the Operator.REMOVE which gives me an error saying it is in use. Thanks, 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
Re: Adstate column showing disabled when it shouldn't be
Seriously? I can't track when my ads were enabled and when they weren't? I think I speak for everybody when I say that sucks in a big way. What can we do to get that very serious shortcoming fixed? Sorry, but that's such a ridiculous feature that we all thought it had to be a bug. Where do we need to go to put in a feature request to get this fixed? On Friday, August 17, 2012 7:19:55 AM UTC-4, Oliver wrote: There are some fields in adwords that are not tracked over time. These are mainly 'structural' data fields. AdState is one of them. You will only ever going to see the latest state when you download the performance reports. Just like you can see only the latest value of 'campaign budget' and not how it's been changing over time. Oliver On Thursday, August 16, 2012 3:37:00 PM UTC+1, road11 wrote: In the Ad Performance Report, there is a column called AdState. It shows one of two values: enabled or disabled. We also know that whenever we make a change to an ad's headline or display url (and probably other critical fields as well), that ad receives a new AdId, essentially making it a new ad. The old AdId will still appear in the Ad Performance report, but its AdState will show up as disabled. We need to track ad performance from the previous week, so I modified the code to download the Ad Performance report to grab all the data from the last 5 days (definition.dateRangeType = ReportDefinitionDateRangeType.CUSTOM_DATE;) and set the date min and max values to the previous 5 days. So far, so good. Here's the problem... Yesterday, we changed the headline of one of our ads, which essentially gave it a new AdId, rendering the old AdId to an AdState of disabled. But as I look at the AdState of our Ad Performance Report for that old AdId, it shows the AdState as disabled *for the entire week*. That's not right; we just changed the thing yesterday. Why is it showing the ad as disabled for the entire week? I can see why it would be disabled for today, but for all time up until yesterday, that ad should be shown as very much enabled. This is really going to goof up our ability to track our ad performance over time. Is this a bug? Or is this by design? 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
Re: Adstate column showing disabled when it shouldn't be
Do we at least know which fields in the Ad Performance Report are structural data (and, hence, cannot be relied upon to be accurate over time), and which ones aren't? Sorry, but I'm just baffled how this API is so poorly documented. I expected way more from a company like Google. On Friday, August 17, 2012 8:42:52 AM UTC-4, Oliver wrote: The API team can correct me if I'm wrong, but the only way to track changes to structural data is for you to do it yourself locally by comparing, on a daily basis, the structural data you hold against newly downloaded data. On Friday, August 17, 2012 12:32:23 PM UTC+1, road11 wrote: Seriously? I can't track when my ads were enabled and when they weren't? I think I speak for everybody when I say that sucks in a big way. What can we do to get that very serious shortcoming fixed? Sorry, but that's such a ridiculous feature that we all thought it had to be a bug. Where do we need to go to put in a feature request to get this fixed? On Friday, August 17, 2012 7:19:55 AM UTC-4, Oliver wrote: There are some fields in adwords that are not tracked over time. These are mainly 'structural' data fields. AdState is one of them. You will only ever going to see the latest state when you download the performance reports. Just like you can see only the latest value of 'campaign budget' and not how it's been changing over time. Oliver On Thursday, August 16, 2012 3:37:00 PM UTC+1, road11 wrote: In the Ad Performance Report, there is a column called AdState. It shows one of two values: enabled or disabled. We also know that whenever we make a change to an ad's headline or display url (and probably other critical fields as well), that ad receives a new AdId, essentially making it a new ad. The old AdId will still appear in the Ad Performance report, but its AdState will show up as disabled. We need to track ad performance from the previous week, so I modified the code to download the Ad Performance report to grab all the data from the last 5 days (definition.dateRangeType = ReportDefinitionDateRangeType.CUSTOM_DATE;) and set the date min and max values to the previous 5 days. So far, so good. Here's the problem... Yesterday, we changed the headline of one of our ads, which essentially gave it a new AdId, rendering the old AdId to an AdState of disabled. But as I look at the AdState of our Ad Performance Report for that old AdId, it shows the AdState as disabled *for the entire week*. That's not right; we just changed the thing yesterday. Why is it showing the ad as disabled for the entire week? I can see why it would be disabled for today, but for all time up until yesterday, that ad should be shown as very much enabled. This is really going to goof up our ability to track our ad performance over time. Is this a bug? Or is this by design? 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
Re: Adstate column showing disabled when it shouldn't be
Do we at least know which fields in the Ad Performance Report are structural data (and, hence, cannot be relied upon to be accurate over time), and which ones aren't? On Friday, August 17, 2012 8:42:52 AM UTC-4, Oliver wrote: The API team can correct me if I'm wrong, but the only way to track changes to structural data is for you to do it yourself locally by comparing, on a daily basis, the structural data you hold against newly downloaded data. On Friday, August 17, 2012 12:32:23 PM UTC+1, road11 wrote: Seriously? I can't track when my ads were enabled and when they weren't? I think I speak for everybody when I say that sucks in a big way. What can we do to get that very serious shortcoming fixed? Sorry, but that's such a ridiculous feature that we all thought it had to be a bug. Where do we need to go to put in a feature request to get this fixed? On Friday, August 17, 2012 7:19:55 AM UTC-4, Oliver wrote: There are some fields in adwords that are not tracked over time. These are mainly 'structural' data fields. AdState is one of them. You will only ever going to see the latest state when you download the performance reports. Just like you can see only the latest value of 'campaign budget' and not how it's been changing over time. Oliver On Thursday, August 16, 2012 3:37:00 PM UTC+1, road11 wrote: In the Ad Performance Report, there is a column called AdState. It shows one of two values: enabled or disabled. We also know that whenever we make a change to an ad's headline or display url (and probably other critical fields as well), that ad receives a new AdId, essentially making it a new ad. The old AdId will still appear in the Ad Performance report, but its AdState will show up as disabled. We need to track ad performance from the previous week, so I modified the code to download the Ad Performance report to grab all the data from the last 5 days (definition.dateRangeType = ReportDefinitionDateRangeType.CUSTOM_DATE;) and set the date min and max values to the previous 5 days. So far, so good. Here's the problem... Yesterday, we changed the headline of one of our ads, which essentially gave it a new AdId, rendering the old AdId to an AdState of disabled. But as I look at the AdState of our Ad Performance Report for that old AdId, it shows the AdState as disabled *for the entire week*. That's not right; we just changed the thing yesterday. Why is it showing the ad as disabled for the entire week? I can see why it would be disabled for today, but for all time up until yesterday, that ad should be shown as very much enabled. This is really going to goof up our ability to track our ad performance over time. Is this a bug? Or is this by design? 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
Re: Adstate column showing disabled when it shouldn't be
Thanks for your help. Oliver. Not the answer(s) I was hoping for, but I'm glad you know them and are willing to share. Eric On Friday, August 17, 2012 11:04:56 AM UTC-4, Oliver wrote: Structural data tends to have a value 'Attribute' under the 'Behavior' column. Performance data tends to be the 'Metric' ones. Most of the data segments you see in the web interface can be retrieved via the 'Segment' ones. Oliver On Friday, August 17, 2012 2:54:34 PM UTC+1, road11 wrote: Do we at least know which fields in the Ad Performance Report are structural data (and, hence, cannot be relied upon to be accurate over time), and which ones aren't? On Friday, August 17, 2012 8:42:52 AM UTC-4, Oliver wrote: The API team can correct me if I'm wrong, but the only way to track changes to structural data is for you to do it yourself locally by comparing, on a daily basis, the structural data you hold against newly downloaded data. On Friday, August 17, 2012 12:32:23 PM UTC+1, road11 wrote: Seriously? I can't track when my ads were enabled and when they weren't? I think I speak for everybody when I say that sucks in a big way. What can we do to get that very serious shortcoming fixed? Sorry, but that's such a ridiculous feature that we all thought it had to be a bug. Where do we need to go to put in a feature request to get this fixed? On Friday, August 17, 2012 7:19:55 AM UTC-4, Oliver wrote: There are some fields in adwords that are not tracked over time. These are mainly 'structural' data fields. AdState is one of them. You will only ever going to see the latest state when you download the performance reports. Just like you can see only the latest value of 'campaign budget' and not how it's been changing over time. Oliver On Thursday, August 16, 2012 3:37:00 PM UTC+1, road11 wrote: In the Ad Performance Report, there is a column called AdState. It shows one of two values: enabled or disabled. We also know that whenever we make a change to an ad's headline or display url (and probably other critical fields as well), that ad receives a new AdId, essentially making it a new ad. The old AdId will still appear in the Ad Performance report, but its AdState will show up as disabled. We need to track ad performance from the previous week, so I modified the code to download the Ad Performance report to grab all the data from the last 5 days (definition.dateRangeType = ReportDefinitionDateRangeType.CUSTOM_DATE;) and set the date min and max values to the previous 5 days. So far, so good. Here's the problem... Yesterday, we changed the headline of one of our ads, which essentially gave it a new AdId, rendering the old AdId to an AdState of disabled. But as I look at the AdState of our Ad Performance Report for that old AdId, it shows the AdState as disabled *for the entire week*. That's not right; we just changed the thing yesterday. Why is it showing the ad as disabled for the entire week? I can see why it would be disabled for today, but for all time up until yesterday, that ad should be shown as very much enabled. This is really going to goof up our ability to track our ad performance over time. Is this a bug? Or is this by design? 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
Adstate column showing disabled when it shouldn't be
In the Ad Performance Report, there is a column called AdState. It shows one of two values: enabled or disabled. We also know that whenever we make a change to an ad's headline or display url (and probably other critical fields as well), that ad receives a new AdId, essentially making it a new ad. The old AdId will still appear in the Ad Performance report, but its AdState will show up as disabled. We need to track ad performance from the previous week, so I modified the code to download the Ad Performance report to grab all the data from the last 5 days (definition.dateRangeType = ReportDefinitionDateRangeType.CUSTOM_DATE;) and set the date min and max values to the previous 5 days. So far, so good. Here's the problem... Yesterday, we changed the headline of one of our ads, which essentially gave it a new AdId, rendering the old AdId to an AdState of disabled. But as I look at the AdState of our Ad Performance Report for that old AdId, it shows the AdState as disabled *for the entire week*. That's not right; we just changed the thing yesterday. Why is it showing the ad as disabled for the entire week? I can see why it would be disabled for today, but for all time up until yesterday, that ad should be shown as very much enabled. This is really going to goof up our ability to track our ad performance over time. Is this a bug? Or is this by design? 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
Re: How to get ClickType, Device Stats using get service of AdGroupService
Not sure it's possible using the AdGroupService. As I look through the API doces (* https://developers.google.com/adwords/api/docs/reference/v201109_1/AdGroupService *https://developers.google.com/adwords/api/docs/reference/v201109_1/AdGroupService), I don't see any place where those data items are selectable. I haven't been working with this API for a long time, but what I've seen is if you want metrics that get down to a granular level like that, you pretty much have to use AdHocs. But I could be wrong (somebody correct me if I am). Eric On Friday, July 20, 2012 4:58:42 AM UTC-4, Sanju wrote: Hi, how can I get Stats of adGroup with respect of Device, Search and Display network and ClickType using get service of AdGroupService. I can get through AdHoc reports but I want to get through get service. *My code follows like this:* * * Long adrpId = Long.parseLong(X);* * Selector selector = new Selector(); String startDate =20120701; String endDate = 20120701; selector.setDateRange(new DateRange(startDate, endDate)); selector.setFields(new String[] { AdGroupName,CampaignId,AdGroupId,Status, AdNetworkType1,AdNetworkType2,Device, ClickType, Impressions, Clicks, Cost, Conversions,AveragePosition,ConversionsManyPerClick }); Predicate adgrpIdPredicate = new Predicate(Id, PredicateOperator.IN, new String[] {adrpId.toString()}); selector.setPredicates(new Predicate[] {adgrpIdPredicate}); // Get all ad groups. AdGroupPage page = adGroupService.get(selector); // Display ad groups. if (page.getEntries() != null) { for (AdGroup adGroup : page.getEntries()) { // here I need to display each adgroup clicks, impressions of network and device wise } }* * Thnx in adv. -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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: How to download named report C#
Thank you, Dorian. No, I didn't know that. I've been slinging Microsoft code for nearly 20 years, but still relatively new to the Adwords API with .Net. So I have to create an ad-hoc report with C# and then I can call it by it's id? Might you know of some C# examples where I can see where you do this? Thanks in advance for your kind response. Eric On Tuesday, July 17, 2012 7:16:07 AM UTC-4, Dorian Kind wrote: You probably know this, but if the reports were originally defined in the UI, they will not be available via the API. Apart from that, I can't offer any help but I'd recommend using ad hoc reports instead of the ReportDefinitionService (which will be deprecated anyway). Cheers On Monday, July 16, 2012 8:48:00 PM UTC+2, road11 wrote: Using the C# v201109_1 code samples as a model, I'm trying to download one of our many previously defined and named reports. Here's the code that Google gave us to get our report definitions that isn't working (assuming a valid AdwordsUser object)... ReportDefinitionService reportDefinitionService = (ReportDefinitionService) user.GetService( AdWordsService.v201109_1.ReportDefinitionService); // Create the selector. ReportDefinitionSelector selector = new ReportDefinitionSelector(); try { // Get all report definitions. ReportDefinitionPage page = reportDefinitionService.get(selector); // Display report definitions. if (page != null page.entries != null page.entries.Length 0) { foreach (ReportDefinition reportDefinition in page.entries) { writer.WriteLine(ReportDefinition with name \{0}\ and id \{1}\ was found., reportDefinition.reportName, reportDefinition.id); } } else { writer.WriteLine(No report definitions were found.); } } catch (Exception ex) { throw new System.ApplicationException(Failed to retrieve report definitions., ex); } ...however, this code keeps telling me that page.entries is null. We've got at least 1400 named reports defined in this Google Adwords account. How is it possible that this code can find none of them? I thought the selector might be the problem, but the ReportDefinitionSelector doesn't even have a fields property, so that can't be the issue. I would be most grateful if someone could post a (working) C# example of how to get a list of available reports and how to download a single named report from an Adwords account. Thank you in advance. -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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 to download named report C#
Using the C# v201109_1 code samples as a model, I'm trying to download one of our many previously defined and named reports. Here's the code that Google gave us to get our report definitions that isn't working (assuming a valid AdwordsUser object)... ReportDefinitionService reportDefinitionService = (ReportDefinitionService) user.GetService( AdWordsService.v201109_1.ReportDefinitionService); // Create the selector. ReportDefinitionSelector selector = new ReportDefinitionSelector(); try { // Get all report definitions. ReportDefinitionPage page = reportDefinitionService.get(selector); // Display report definitions. if (page != null page.entries != null page.entries.Length 0) { foreach (ReportDefinition reportDefinition in page.entries) { writer.WriteLine(ReportDefinition with name \{0}\ and id \{1}\ was found., reportDefinition.reportName, reportDefinition.id); } } else { writer.WriteLine(No report definitions were found.); } } catch (Exception ex) { throw new System.ApplicationException(Failed to retrieve report definitions., ex); } ...however, this code keeps telling me that page.entries is null. We've got at least 1400 named reports defined in this Google Adwords account. How is it possible that this code can find none of them? I thought the selector might be the problem, but the ReportDefinitionSelector doesn't even have a fields property, so that can't be the issue. I would be most grateful if someone could post a (working) C# example of how to get a list of available reports and how to download a single named report from an Adwords account. Thank you in advance. -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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