Invalid values for campaign state (and other types)
Hi, when querying for campaign states sometimes invalid values are returned, e.g. 6nabled instead of Enabled. Is this a bug or a feature? This happens for other types like e.g. keyword match type too. The pattern seems to be, that the first character is replaced by a number. -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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/320d32d7-a734-47a6-9476-24f0e802eb94%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Accessing API - can't figure out what account ID to use - dotnet client library
Hi, I tried replying privately to Anash last week, but I haven't heard back from him yet, and I can't seem to find any confirmation that my private post actually went through yet, so let me know if I need to re-send my information, or if there is anyone else I should talk to instead. Thanks, Mike On Thursday, February 5, 2015 at 11:54:41 AM UTC-5, Anash P. Oommen (AdWords API Team) wrote: Hi Mike, So, I assume you are trying to get something as simple as a GetCampaigns example to work. If that's the case, then only an advertiser account can have campaigns, MCC accounts cannot. But based on your description alone, I cannot tell for sure if the child accounts under your MCC are advertiser accounts, or MCC accounts themselves. My suggestion is this: 1. Set ClientCustomerID to the customer id of your MCC account (it is on the top right corner of the website once you login into the MCC account. 2. Run https://github.com/googleads/googleads-dotnet-lib/blob/master/examples/AdWords/CSharp/v201409/AccountManagement/GetAccountHierarchy.cs. It is available as part of the client library distribution. The script will print your account's hierarchical structure. The accounts at the leaf level are usually advertiser accounts, but you can also navigate to these accounts by clicking the account listed under My Client Center tab of your MCC account. 3. Keep looking until you find an account with campaigns in it. Copy its customerId to ClientCustomerId. Now run GetCampaigns.cs, and you should get the campaigns within that account. If none of this works, then follow the instructions on https://github.com/googleads/googleads-dotnet-lib/wiki/How-to-capture-SOAP-messages to send me the SOAP logs for a call that didn't work. Make sure you use the Reply to Author option. Also provide your MCC customer ID. I'll investigate this further. Cheers, Anash On Thursday, February 5, 2015 at 10:00:50 PM UTC+5:30, rpay...@gmail.com wrote: Thanks for the reply, but I'm still not perfectly clear on this. I used an MCC account to create the OAuth2RefreshToken, so I'm not sure what the account under that MCC account would be. When I'm logged in as the MCC account that created the OAuth2RefreshToken, in the MCC environment (in the Client column of the Performance tab), I see a list of 30 clients, each with an account ID. In the Budget tab, I see these same 30 clients with the account IDs, and more account IDs in the Budget account column. None of the IDs I've tried from any of these sources seem to work. Are all of these IDs the wrong thing to try, and is there somewhere else I should look for an account ID? On Thursday, February 5, 2015 at 7:18:00 AM UTC-5, Anash P. Oommen (AdWords API Team) wrote: Hi Mike, The value you give for ClientCustomerId depends on what value you have the OAuth2RefreshToken for. If OAuth2RefreshToken is for an MCC account, then you can provide ClientCustomerId for any account under that MCC account. If it is for an individual Advertiser account, then ClientCustomerId should be the customer id for that account. Cheers, Anash P. Oommen, AdWords API Advisor. On Thursday, February 5, 2015 at 9:18:27 AM UTC+5:30, rpay...@gmail.com wrote: Hi, I'm new to the API and AdWords in general. I'm trying to get all of the campaign data for a number of advertisers. When I'm in the MCC site, I can see all of these advertisers and their IDs. I see my ID in the top of the screen. I created a test account with another ID. The App.config file asks for ClientCustomerId, but none of the IDs I send it seem to work. I talked to the MCC help hotline, and they said the developer token looked good, and the MCC was linked to the API app. My gmail account which I use for the MCC was used to create the OAuth data. Do I somehow need to create another ID with which to create OAuth data, and how would I give this account access to the adwords data if not in MCC? I have also tried some of the IDs I got from a downloaded report in the MCC ui. When I rolled back to the v201406 client library, I was able to find 2 campaigns if I didn't set ClientCustomerId, but I couldn't figure out where these came from. add key=DeveloperToken value=xx/ add key=ClientCustomerId value=xxx-xxx-/-- !-- OAuth2 configuration -- add key='AuthorizationMethod' value='OAuth2' / add key='OAuth2ClientId' value=' -.apps.googleusercontent.com' / add key='OAuth2ClientSecret' value='x-xx' / add key='OAuth2RefreshToken' value='1/x_xxx_xx' / Thanks, Mike -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and Google+: https://googleadsdeveloper.blogspot.com/ https://plus.google.com/+GoogleAdsDevelopers/posts
Re: Create and Update Sitelinks for Campaigns
Thanks for your reply! I tried your hints, but now there is a new error: RequestError.INVALID_INPUT @ ; trigger:'You are accessing an AdWords API version v201402 that has been discontinued. Calls to this version may fail. Please visit the AdWords API blog for information on migration to the new AdWords API version.' But I am sure, that I use v201406. This is defined in the init.php: define('ADWORDS_VERSION', 'v201406'); Where is my Problem? Is there a tutorial which shows how to add and modify sitelinks via the API? Am Donnerstag, 29. Januar 2015 21:26:48 UTC+1 schrieb Josh Radcliff (AdWords API Team): Hi Christian, To modify which feed items are used for sitelinks for a given campaign, you would submit a CampaignFeedService.mutate https://developers.google.com/adwords/api/docs/reference/v201409/CampaignFeedService#mutate request with a *CampaignFeedOperation* with: - operator https://developers.google.com/adwords/api/docs/reference/v201409/CampaignFeedService.CampaignFeedOperation#operator = *SET* - operand https://developers.google.com/adwords/api/docs/reference/v201409/CampaignFeedService.CampaignFeedOperation#operand = a CampaignFeed https://developers.google.com/adwords/api/docs/reference/v201409/CampaignFeedService.CampaignFeed with: - *feedId* set to your feed ID - *campaignId* set to your campaign ID - *placeholderTypes* set to an array containing *1* - *matchingFunction* modified with the new set of ConstantOperands https://developers.google.com/adwords/api/docs/reference/v201409/CampaignFeedService.ConstantOperand pointing to the new set of feed item IDs I'm guessing from the error you're receiving that you are trying to perform an *ADD* operation, but that's failing because you can only have one *CampaignFeed* for a given combination of *feedId, campaignId, *and* placeholderType*. Cheers, Josh, AdWords API Team On Thursday, January 29, 2015 at 5:52:56 AM UTC-5, abc def wrote: Hi, I am using the adwords api v201406 (I know there is a newer version) to generate campaigns, adgroups and so on. For these campaigns I will add sitelinks. To ADD the sitelinks it works fine. But sometimes I would like delete sitelinks and add new sitelinks in these campaigns. And this is my problem. For my coding I use the examples from the PHP Library /AdvancedOperations/UpdateSitelinks.php and AddSitelinks.php. So first I create a SitelinksFeed and then SitelinksFeedItems (my sitelinks for the campaigns) in the feed. Then I create a SitelinksFeedMapping and put it with the SitelinksCampaignFeed into my campaign. This works. But what I have to do to delete and add sitelinks in the same SitelinksCampaignFeed? By generating the feed I store the feeds id getting from the api, and when putting a new sitelink in the feed, I use these id. But I always get the errors CampaignFeedError.FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE @ operations[0].operand.placeholderTypes; CampaignFeedError.CANNOT_ADD_ALREADY_EXISTING_CAMPAIGN_FEED @ operations[0].operand; I think I had to use the feed, but there is the message that the feed exists. And how to delete the campaign feed and add a new? Is there any tutorial which helps me to add sitelinks in an existing SitelinksCampaignFeed? Thank you. I hope you will understand my Problem. Greetings from Germany, Christian -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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/21b3ae1f-fced-4be0-a140-b194b6136007%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Invalid values for campaign state (and other types)
Hi, Are you seeing this in reporting requests or SOAP requests? Could you post an example of a request and response, after removing any sensitive information? If you prefer, you can send those files *only to me* by clicking *Reply to Author* on this post. Thanks, Josh, AdWords API Team On Wednesday, February 11, 2015 at 11:51:24 AM UTC-5, markus...@s24.com wrote: Hi, when querying for campaign states sometimes invalid values are returned, e.g. 6nabled instead of Enabled. Is this a bug or a feature? This happens for other types like e.g. keyword match type too. The pattern seems to be, that the first character is replaced by a number. -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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/fb4809a4-f6ad-4b58-a6a8-93225d14f780%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: CustomerSyncService does not return changedFeeds in CampaignChangeData object
Hi, Yes, that's correct. Thanks, Josh, AdWords API Team On Wednesday, February 11, 2015 at 4:25:17 AM UTC-5, Tomas Rimkus wrote: So, if I create a new Feed and associate it with a Campaign using CampaignFeedService, the ID of the new Feed should show up under changedCampaigns-changedFeeds when checking for campaign changes? Is that correct? On Wednesday, February 11, 2015 at 12:22:23 AM UTC+1, Josh Radcliff (AdWords API Team) wrote: Hi, The CampaignChangeData.changedFeeds https://developers.google.com/adwords/api/docs/reference/v201409/CustomerSyncService.CampaignChangeData#changedFeeds collection does not reflect changes to attributes of *Feed**Items*. Instead, it reflects changes to the *association* between a Campaign and a Feed -- that's why *changedFeeds* is a collection of *Feed* IDs instead of a collection of *FeedItem* IDs. This association can change due to a change in CampaignFeed https://developers.google.com/adwords/api/docs/reference/v201409/CampaignFeedService.CampaignFeed objects or a change in FeedItem.campaignTargeting https://developers.google.com/adwords/api/docs/reference/v201409/FeedItemService.FeedItem#campaignTargeting . For changes to individual *FeedItem*s, you should look at the CustomerChangeData.changedFeeds https://developers.google.com/adwords/api/docs/reference/v201409/CustomerSyncService.CustomerChangeData#changedFeeds returned by the sync service. Thanks, Josh, AdWords API Team On Tuesday, February 10, 2015 at 4:35:57 AM UTC-5, Tomas Rimkus wrote: Ok, another thing. Can you please confirm it or deny? changedCampaigns-changedFeeds will indicate changes to feed items only if feed items are associated with some campaign using feedItem-campaignTargeting association. Or maybe changedCampaigns-changedFeeds only shows changes to feed fields and changes to feed items are disregarded? Can you explain how it works and why I get changes under changedFeeds-changedFeedItems but changedCampaigns-changedFeeds reports that there were no changes when same date interval is used and feeds are associated with campaign using CampaignFeedService? -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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/7c786bcc-bad2-43fd-8992-abf5c6242fb4%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Accessing API - can't figure out what account ID to use - dotnet client library
Hi Mike, The *AuthorizationError.USER_PERMISSION_DENIED* error in your sample response indicates that you are using OAuth credentials from a user that does not have access to the *clientCustomerId* in your request. Please try regenerating your OAuth credentials (refresh token) using these instructions https://github.com/googleads/googleads-dotnet-lib/wiki/Using-OAuth2TokenGenerator. Make sure that you are logged in as a user with access to the MCC. You may want to use an incognito window in Chrome for this, as that will ensure that you aren't accidentally logged into the wrong account. Thanks, Josh, AdWords API Team On Wednesday, February 11, 2015 at 12:35:22 PM UTC-5, rpay...@gmail.com wrote: Hi, I tried replying privately to Anash last week, but I haven't heard back from him yet, and I can't seem to find any confirmation that my private post actually went through yet, so let me know if I need to re-send my information, or if there is anyone else I should talk to instead. Thanks, Mike On Thursday, February 5, 2015 at 11:54:41 AM UTC-5, Anash P. Oommen (AdWords API Team) wrote: Hi Mike, So, I assume you are trying to get something as simple as a GetCampaigns example to work. If that's the case, then only an advertiser account can have campaigns, MCC accounts cannot. But based on your description alone, I cannot tell for sure if the child accounts under your MCC are advertiser accounts, or MCC accounts themselves. My suggestion is this: 1. Set ClientCustomerID to the customer id of your MCC account (it is on the top right corner of the website once you login into the MCC account. 2. Run https://github.com/googleads/googleads-dotnet-lib/blob/master/examples/AdWords/CSharp/v201409/AccountManagement/GetAccountHierarchy.cs. It is available as part of the client library distribution. The script will print your account's hierarchical structure. The accounts at the leaf level are usually advertiser accounts, but you can also navigate to these accounts by clicking the account listed under My Client Center tab of your MCC account. 3. Keep looking until you find an account with campaigns in it. Copy its customerId to ClientCustomerId. Now run GetCampaigns.cs, and you should get the campaigns within that account. If none of this works, then follow the instructions on https://github.com/googleads/googleads-dotnet-lib/wiki/How-to-capture-SOAP-messages to send me the SOAP logs for a call that didn't work. Make sure you use the Reply to Author option. Also provide your MCC customer ID. I'll investigate this further. Cheers, Anash On Thursday, February 5, 2015 at 10:00:50 PM UTC+5:30, rpay...@gmail.com wrote: Thanks for the reply, but I'm still not perfectly clear on this. I used an MCC account to create the OAuth2RefreshToken, so I'm not sure what the account under that MCC account would be. When I'm logged in as the MCC account that created the OAuth2RefreshToken, in the MCC environment (in the Client column of the Performance tab), I see a list of 30 clients, each with an account ID. In the Budget tab, I see these same 30 clients with the account IDs, and more account IDs in the Budget account column. None of the IDs I've tried from any of these sources seem to work. Are all of these IDs the wrong thing to try, and is there somewhere else I should look for an account ID? On Thursday, February 5, 2015 at 7:18:00 AM UTC-5, Anash P. Oommen (AdWords API Team) wrote: Hi Mike, The value you give for ClientCustomerId depends on what value you have the OAuth2RefreshToken for. If OAuth2RefreshToken is for an MCC account, then you can provide ClientCustomerId for any account under that MCC account. If it is for an individual Advertiser account, then ClientCustomerId should be the customer id for that account. Cheers, Anash P. Oommen, AdWords API Advisor. On Thursday, February 5, 2015 at 9:18:27 AM UTC+5:30, rpay...@gmail.com wrote: Hi, I'm new to the API and AdWords in general. I'm trying to get all of the campaign data for a number of advertisers. When I'm in the MCC site, I can see all of these advertisers and their IDs. I see my ID in the top of the screen. I created a test account with another ID. The App.config file asks for ClientCustomerId, but none of the IDs I send it seem to work. I talked to the MCC help hotline, and they said the developer token looked good, and the MCC was linked to the API app. My gmail account which I use for the MCC was used to create the OAuth data. Do I somehow need to create another ID with which to create OAuth data, and how would I give this account access to the adwords data if not in MCC? I have also tried some of the IDs I got from a downloaded report in the MCC ui. When I rolled back to the v201406 client library, I was able to find 2 campaigns if I didn't set ClientCustomerId, but I couldn't figure
Re: Create and Update Sitelinks for Campaigns
Hi, Regarding the version error, please make sure you are passing the proper version when retrieving the service, e.g., $feedService = $user-GetService('FeedService', ADWORDS_VERSION); For more details on working with sitelinks, please read the Sitelinks guide https://developers.google.com/adwords/api/docs/guides/feed-services. At the end of that guide are links to examples in each client library. Thanks, Josh, AdWords API Team On Wednesday, February 11, 2015 at 12:10:54 PM UTC-5, abc def wrote: Thanks for your reply! I tried your hints, but now there is a new error: RequestError.INVALID_INPUT @ ; trigger:'You are accessing an AdWords API version v201402 that has been discontinued. Calls to this version may fail. Please visit the AdWords API blog for information on migration to the new AdWords API version.' But I am sure, that I use v201406. This is defined in the init.php: define('ADWORDS_VERSION', 'v201406'); Where is my Problem? Is there a tutorial which shows how to add and modify sitelinks via the API? Am Donnerstag, 29. Januar 2015 21:26:48 UTC+1 schrieb Josh Radcliff (AdWords API Team): Hi Christian, To modify which feed items are used for sitelinks for a given campaign, you would submit a CampaignFeedService.mutate https://developers.google.com/adwords/api/docs/reference/v201409/CampaignFeedService#mutate request with a *CampaignFeedOperation* with: - operator https://developers.google.com/adwords/api/docs/reference/v201409/CampaignFeedService.CampaignFeedOperation#operator = *SET* - operand https://developers.google.com/adwords/api/docs/reference/v201409/CampaignFeedService.CampaignFeedOperation#operand = a CampaignFeed https://developers.google.com/adwords/api/docs/reference/v201409/CampaignFeedService.CampaignFeed with: - *feedId* set to your feed ID - *campaignId* set to your campaign ID - *placeholderTypes* set to an array containing *1* - *matchingFunction* modified with the new set of ConstantOperands https://developers.google.com/adwords/api/docs/reference/v201409/CampaignFeedService.ConstantOperand pointing to the new set of feed item IDs I'm guessing from the error you're receiving that you are trying to perform an *ADD* operation, but that's failing because you can only have one *CampaignFeed* for a given combination of *feedId, campaignId, *and* placeholderType*. Cheers, Josh, AdWords API Team On Thursday, January 29, 2015 at 5:52:56 AM UTC-5, abc def wrote: Hi, I am using the adwords api v201406 (I know there is a newer version) to generate campaigns, adgroups and so on. For these campaigns I will add sitelinks. To ADD the sitelinks it works fine. But sometimes I would like delete sitelinks and add new sitelinks in these campaigns. And this is my problem. For my coding I use the examples from the PHP Library /AdvancedOperations/UpdateSitelinks.php and AddSitelinks.php. So first I create a SitelinksFeed and then SitelinksFeedItems (my sitelinks for the campaigns) in the feed. Then I create a SitelinksFeedMapping and put it with the SitelinksCampaignFeed into my campaign. This works. But what I have to do to delete and add sitelinks in the same SitelinksCampaignFeed? By generating the feed I store the feeds id getting from the api, and when putting a new sitelink in the feed, I use these id. But I always get the errors CampaignFeedError.FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE @ operations[0].operand.placeholderTypes; CampaignFeedError.CANNOT_ADD_ALREADY_EXISTING_CAMPAIGN_FEED @ operations[0].operand; I think I had to use the feed, but there is the message that the feed exists. And how to delete the campaign feed and add a new? Is there any tutorial which helps me to add sitelinks in an existing SitelinksCampaignFeed? Thank you. I hope you will understand my Problem. Greetings from Germany, Christian -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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
Re: Retreiving structural data for sitelinks
Hi Visar, When you removed all sitelinks from CampaignA, did you do so using the UI? I ask because it may be that the UI may be simply setting the CampaignFeed.status https://developers.google.com/adwords/api/docs/reference/v201409/CampaignFeedService.CampaignFeed#status to *REMOVED* in that case. If so, you can add a predicate in your CampaignFeedService.get https://developers.google.com/adwords/api/docs/reference/v201409/CampaignFeedService#get request on *STATUS = ENABLED* to exclude such *CampaignFeeds*. Cheers, Josh, AdWords API Team On Wednesday, February 11, 2015 at 6:41:20 AM UTC-5, Visar wrote: Hi again Anash, I've been trying to implement the code you've illustrated but I'm having a few problems. Problem 1) When you use: campaignFeed.matchingFunction.@operator == FunctionOperator.IN this only picks out those campaigns with more than one sitelink ad extension. Those with only one sitelink ad extension have an EQUALS FunctionOperator rather than an IN. Is it safe to remove this condition, in order to pick up those campaigns matched with one sitelink ad extension only? Problem 2) There is a bigger problem. The matching function does indeed return all active site link ad extensions associated with campaigns. However, if one removes the all the site links from a campaign (so that the campaign is left with no site links), the previously associated site link group is still returned by the matching function. I.e there seems to be a residue when removing the site links from the campaign wholesale. This maybe be illustrated better as follows: If we start with an account with the following state CampaignA = [SitelinkA, SitelinkB] The matching function returns: CampaignA = [SitelinkA, SitelinkB] If we remove the site links so that there are no associated site links for the campaign CampaignA = [] The residue of the old grouping of site links will still show up in the matching function as follows CampaignA = [SitelinkA, SitelinkB] If, however, one removes just a single site link from the original state of affairs, so that in the account it looks like CampaignA = [SitelinkA] The matching function will correctly return CampaignA = [SitelinkA] If we were to now further remove SitelinkA the matching function will incorrectly report that SitelinkA is associated with CampaignA. Therefore when completely removing site links, there is a residue in the corresponding matching function. Is this a bug? Is there any way to produce a list of all current and active sitelink-campaign associations? Visar On Wednesday, November 26, 2014 at 11:53:00 AM UTC, Anash P. Oommen (AdWords API Team) wrote: Hi Visar, You need to use the CampaignFeedService to retrieve the MatchingFunction and then parse it to identify the FeedItems that are associated with a campaign. The C# code to do this looks : private CampaignFeed[] GetCampaignFeeds(AdWordsUser user, Feed feed) { CampaignFeedService campaignFeedService = (CampaignFeedService) user. GetService( AdWordsService.v201409.CampaignFeedService); CampaignFeedPage page = campaignFeedService.query(string.Format( SELECT CampaignId, MatchingFunction where + Status='ENABLED'and FeedId = '{0}' and PlaceholderTypes=1, feed. id)); return page.entries; } private Listlong GetFeedItemsForCampaign(CampaignFeed campaignFeed) { Listlong feedItems = new Listlong(); if (campaignFeed.matchingFunction.lhsOperand.Length == 1 campaignFeed.matchingFunction.lhsOperand[0] is RequestContextOperand (campaignFeed.matchingFunction.lhsOperand[0] as RequestContextOperand).contextType == RequestContextOperandContextType.FEED_ITEM_ID campaignFeed.matchingFunction.@operator == FunctionOperator.IN) { foreach (ConstantOperand argument in campaignFeed.matchingFunction. rhsOperand) { feedItems.Add(argument.longValue); } } return feedItems; } GetFeedItemsForCampaign only handles the simplest of the cases (FEEDITEM_ID IN [id1, id2, id3]). In theory, the matchingfunction can be an arbitrary expression tree, but if you stick to what the UI can do, then it is restricted to (FEEDITEM_ID IN [id1, id2, id3]) and DEVICE_PLATFORM = 'Mobile' Cheers, Anash P. Oommen, AdWords API Advisor. On Wednesday, November 26, 2014 6:23:50 AM UTC-5, Visar wrote: Hi, I'm having a little trouble using the API to retrieve structural data on sitelinks within an account. What I'm looking to do is to construct a list of which sitelinks belong to which campaigns (this is unavailable in the reports due to the lack of Zero Impressions support). Ideally data which could be placed into a table of the form: CampaignID SitelinkID 01 1123412 01 1232349 02 2342342 etc.. Given that I have an exhaustive list of all the campaign IDs and sitelink IDs (as placeholder feed item
Re: Accessing API - can't figure out what account ID to use - dotnet client library
Hi, Josh. I just tried this again, and it still didn't work. Here are the steps I took: 1. Logged into the developer console as an account that sees 30 advertisers in the MCC, which also is the account that created the app and developer token. 2. Deleted the old Client ID in the OAuth Credentials section. 3. Created a new credential for a Native Application to generate a new client ID and secret. 4. Input these new fields into the OAuth2TokenGenerator that came with the .net client library to generate a new refresh token. 5. Entered the account ID that I used to create the OAuth credentials (this IS also an MCC account), along with the OAuth credentials I created, into app.config. I'm still getting the same issue, what could I be missing? Thanks for the help, Mike On Wednesday, February 11, 2015 at 2:12:42 PM UTC-5, Josh Radcliff (AdWords API Team) wrote: Hi Mike, The *AuthorizationError.USER_PERMISSION_DENIED* error in your sample response indicates that you are using OAuth credentials from a user that does not have access to the *clientCustomerId* in your request. Please try regenerating your OAuth credentials (refresh token) using these instructions https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fgoogleads%2Fgoogleads-dotnet-lib%2Fwiki%2FUsing-OAuth2TokenGeneratorsa=Dsntz=1usg=AFQjCNGPJqQT-bRL7cFUBas3jyNuqDA3Dw. Make sure that you are logged in as a user with access to the MCC. You may want to use an incognito window in Chrome for this, as that will ensure that you aren't accidentally logged into the wrong account. Thanks, Josh, AdWords API Team On Wednesday, February 11, 2015 at 12:35:22 PM UTC-5, rpay...@gmail.com wrote: Hi, I tried replying privately to Anash last week, but I haven't heard back from him yet, and I can't seem to find any confirmation that my private post actually went through yet, so let me know if I need to re-send my information, or if there is anyone else I should talk to instead. Thanks, Mike On Thursday, February 5, 2015 at 11:54:41 AM UTC-5, Anash P. Oommen (AdWords API Team) wrote: Hi Mike, So, I assume you are trying to get something as simple as a GetCampaigns example to work. If that's the case, then only an advertiser account can have campaigns, MCC accounts cannot. But based on your description alone, I cannot tell for sure if the child accounts under your MCC are advertiser accounts, or MCC accounts themselves. My suggestion is this: 1. Set ClientCustomerID to the customer id of your MCC account (it is on the top right corner of the website once you login into the MCC account. 2. Run https://github.com/googleads/googleads-dotnet-lib/blob/master/examples/AdWords/CSharp/v201409/AccountManagement/GetAccountHierarchy.cs. It is available as part of the client library distribution. The script will print your account's hierarchical structure. The accounts at the leaf level are usually advertiser accounts, but you can also navigate to these accounts by clicking the account listed under My Client Center tab of your MCC account. 3. Keep looking until you find an account with campaigns in it. Copy its customerId to ClientCustomerId. Now run GetCampaigns.cs, and you should get the campaigns within that account. If none of this works, then follow the instructions on https://github.com/googleads/googleads-dotnet-lib/wiki/How-to-capture-SOAP-messages to send me the SOAP logs for a call that didn't work. Make sure you use the Reply to Author option. Also provide your MCC customer ID. I'll investigate this further. Cheers, Anash On Thursday, February 5, 2015 at 10:00:50 PM UTC+5:30, rpay...@gmail.com wrote: Thanks for the reply, but I'm still not perfectly clear on this. I used an MCC account to create the OAuth2RefreshToken, so I'm not sure what the account under that MCC account would be. When I'm logged in as the MCC account that created the OAuth2RefreshToken, in the MCC environment (in the Client column of the Performance tab), I see a list of 30 clients, each with an account ID. In the Budget tab, I see these same 30 clients with the account IDs, and more account IDs in the Budget account column. None of the IDs I've tried from any of these sources seem to work. Are all of these IDs the wrong thing to try, and is there somewhere else I should look for an account ID? On Thursday, February 5, 2015 at 7:18:00 AM UTC-5, Anash P. Oommen (AdWords API Team) wrote: Hi Mike, The value you give for ClientCustomerId depends on what value you have the OAuth2RefreshToken for. If OAuth2RefreshToken is for an MCC account, then you can provide ClientCustomerId for any account under that MCC account. If it is for an individual Advertiser account, then ClientCustomerId should be the customer id for that account. Cheers, Anash P. Oommen, AdWords API Advisor. On Thursday, February 5,
Re: Accessing API - can't figure out what account ID to use - dotnet client library
Hi, I just replied privately, but I can never tell if it actually did go through. Please let me know as soon as possible if you don't get the private reply. Thanks, Mike On Wednesday, February 11, 2015 at 4:56:03 PM UTC-5, Josh Radcliff (AdWords API Team) wrote: Hi Mike, Sorry if I wasn't clear. You don't need a new client ID, but rather you need OAuth credentials generated while logged in as a user who owns (or has access to your MCC). Could you send the following *only to me* by clicking *Reply to Author*? 1. The user (email address) that you were logged in as when you accepted the OAuth prompt. 2. The AdWords or MCC account ID you are trying to access in your request. I know you sent one account ID to Anash already, but I just want to make sure I have the information from your latest attempt. Thanks, Josh, AdWords API Team On Wednesday, February 11, 2015 at 3:00:07 PM UTC-5, rpay...@gmail.com wrote: Hi, Josh. I just tried this again, and it still didn't work. Here are the steps I took: 1. Logged into the developer console as an account that sees 30 advertisers in the MCC, which also is the account that created the app and developer token. 2. Deleted the old Client ID in the OAuth Credentials section. 3. Created a new credential for a Native Application to generate a new client ID and secret. 4. Input these new fields into the OAuth2TokenGenerator that came with the .net client library to generate a new refresh token. 5. Entered the account ID that I used to create the OAuth credentials (this IS also an MCC account), along with the OAuth credentials I created, into app.config. I'm still getting the same issue, what could I be missing? Thanks for the help, Mike On Wednesday, February 11, 2015 at 2:12:42 PM UTC-5, Josh Radcliff (AdWords API Team) wrote: Hi Mike, The *AuthorizationError.USER_PERMISSION_DENIED* error in your sample response indicates that you are using OAuth credentials from a user that does not have access to the *clientCustomerId* in your request. Please try regenerating your OAuth credentials (refresh token) using these instructions https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fgoogleads%2Fgoogleads-dotnet-lib%2Fwiki%2FUsing-OAuth2TokenGeneratorsa=Dsntz=1usg=AFQjCNGPJqQT-bRL7cFUBas3jyNuqDA3Dw. Make sure that you are logged in as a user with access to the MCC. You may want to use an incognito window in Chrome for this, as that will ensure that you aren't accidentally logged into the wrong account. Thanks, Josh, AdWords API Team On Wednesday, February 11, 2015 at 12:35:22 PM UTC-5, rpay...@gmail.com wrote: Hi, I tried replying privately to Anash last week, but I haven't heard back from him yet, and I can't seem to find any confirmation that my private post actually went through yet, so let me know if I need to re-send my information, or if there is anyone else I should talk to instead. Thanks, Mike On Thursday, February 5, 2015 at 11:54:41 AM UTC-5, Anash P. Oommen (AdWords API Team) wrote: Hi Mike, So, I assume you are trying to get something as simple as a GetCampaigns example to work. If that's the case, then only an advertiser account can have campaigns, MCC accounts cannot. But based on your description alone, I cannot tell for sure if the child accounts under your MCC are advertiser accounts, or MCC accounts themselves. My suggestion is this: 1. Set ClientCustomerID to the customer id of your MCC account (it is on the top right corner of the website once you login into the MCC account. 2. Run https://github.com/googleads/googleads-dotnet-lib/blob/master/examples/AdWords/CSharp/v201409/AccountManagement/GetAccountHierarchy.cs. It is available as part of the client library distribution. The script will print your account's hierarchical structure. The accounts at the leaf level are usually advertiser accounts, but you can also navigate to these accounts by clicking the account listed under My Client Center tab of your MCC account. 3. Keep looking until you find an account with campaigns in it. Copy its customerId to ClientCustomerId. Now run GetCampaigns.cs, and you should get the campaigns within that account. If none of this works, then follow the instructions on https://github.com/googleads/googleads-dotnet-lib/wiki/How-to-capture-SOAP-messages to send me the SOAP logs for a call that didn't work. Make sure you use the Reply to Author option. Also provide your MCC customer ID. I'll investigate this further. Cheers, Anash On Thursday, February 5, 2015 at 10:00:50 PM UTC+5:30, rpay...@gmail.com wrote: Thanks for the reply, but I'm still not perfectly clear on this. I used an MCC account to create the OAuth2RefreshToken, so I'm not sure what the account under that MCC account would be. When I'm logged in as the MCC account that
Re: Accessing API - can't figure out what account ID to use - dotnet client library
Hi Mike, Sorry if I wasn't clear. You don't need a new client ID, but rather you need OAuth credentials generated while logged in as a user who owns (or has access to your MCC). Could you send the following *only to me* by clicking *Reply to Author*? 1. The user (email address) that you were logged in as when you accepted the OAuth prompt. 2. The AdWords or MCC account ID you are trying to access in your request. I know you sent one account ID to Anash already, but I just want to make sure I have the information from your latest attempt. Thanks, Josh, AdWords API Team On Wednesday, February 11, 2015 at 3:00:07 PM UTC-5, rpay...@gmail.com wrote: Hi, Josh. I just tried this again, and it still didn't work. Here are the steps I took: 1. Logged into the developer console as an account that sees 30 advertisers in the MCC, which also is the account that created the app and developer token. 2. Deleted the old Client ID in the OAuth Credentials section. 3. Created a new credential for a Native Application to generate a new client ID and secret. 4. Input these new fields into the OAuth2TokenGenerator that came with the .net client library to generate a new refresh token. 5. Entered the account ID that I used to create the OAuth credentials (this IS also an MCC account), along with the OAuth credentials I created, into app.config. I'm still getting the same issue, what could I be missing? Thanks for the help, Mike On Wednesday, February 11, 2015 at 2:12:42 PM UTC-5, Josh Radcliff (AdWords API Team) wrote: Hi Mike, The *AuthorizationError.USER_PERMISSION_DENIED* error in your sample response indicates that you are using OAuth credentials from a user that does not have access to the *clientCustomerId* in your request. Please try regenerating your OAuth credentials (refresh token) using these instructions https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fgoogleads%2Fgoogleads-dotnet-lib%2Fwiki%2FUsing-OAuth2TokenGeneratorsa=Dsntz=1usg=AFQjCNGPJqQT-bRL7cFUBas3jyNuqDA3Dw. Make sure that you are logged in as a user with access to the MCC. You may want to use an incognito window in Chrome for this, as that will ensure that you aren't accidentally logged into the wrong account. Thanks, Josh, AdWords API Team On Wednesday, February 11, 2015 at 12:35:22 PM UTC-5, rpay...@gmail.com wrote: Hi, I tried replying privately to Anash last week, but I haven't heard back from him yet, and I can't seem to find any confirmation that my private post actually went through yet, so let me know if I need to re-send my information, or if there is anyone else I should talk to instead. Thanks, Mike On Thursday, February 5, 2015 at 11:54:41 AM UTC-5, Anash P. Oommen (AdWords API Team) wrote: Hi Mike, So, I assume you are trying to get something as simple as a GetCampaigns example to work. If that's the case, then only an advertiser account can have campaigns, MCC accounts cannot. But based on your description alone, I cannot tell for sure if the child accounts under your MCC are advertiser accounts, or MCC accounts themselves. My suggestion is this: 1. Set ClientCustomerID to the customer id of your MCC account (it is on the top right corner of the website once you login into the MCC account. 2. Run https://github.com/googleads/googleads-dotnet-lib/blob/master/examples/AdWords/CSharp/v201409/AccountManagement/GetAccountHierarchy.cs. It is available as part of the client library distribution. The script will print your account's hierarchical structure. The accounts at the leaf level are usually advertiser accounts, but you can also navigate to these accounts by clicking the account listed under My Client Center tab of your MCC account. 3. Keep looking until you find an account with campaigns in it. Copy its customerId to ClientCustomerId. Now run GetCampaigns.cs, and you should get the campaigns within that account. If none of this works, then follow the instructions on https://github.com/googleads/googleads-dotnet-lib/wiki/How-to-capture-SOAP-messages to send me the SOAP logs for a call that didn't work. Make sure you use the Reply to Author option. Also provide your MCC customer ID. I'll investigate this further. Cheers, Anash On Thursday, February 5, 2015 at 10:00:50 PM UTC+5:30, rpay...@gmail.com wrote: Thanks for the reply, but I'm still not perfectly clear on this. I used an MCC account to create the OAuth2RefreshToken, so I'm not sure what the account under that MCC account would be. When I'm logged in as the MCC account that created the OAuth2RefreshToken, in the MCC environment (in the Client column of the Performance tab), I see a list of 30 clients, each with an account ID. In the Budget tab, I see these same 30 clients with the account IDs, and more account IDs in the Budget account column. None of
Re: CustomerSyncService does not return changedFeeds in CampaignChangeData object
So, if I create a new Feed and associate it with a Campaign using CampaignFeedService, the ID of the new Feed should show up under changedCampaigns-changedFeeds when checking for campaign changes? Is that correct? On Wednesday, February 11, 2015 at 12:22:23 AM UTC+1, Josh Radcliff (AdWords API Team) wrote: Hi, The CampaignChangeData.changedFeeds https://developers.google.com/adwords/api/docs/reference/v201409/CustomerSyncService.CampaignChangeData#changedFeeds collection does not reflect changes to attributes of *Feed**Items*. Instead, it reflects changes to the *association* between a Campaign and a Feed -- that's why *changedFeeds* is a collection of *Feed* IDs instead of a collection of *FeedItem* IDs. This association can change due to a change in CampaignFeed https://developers.google.com/adwords/api/docs/reference/v201409/CampaignFeedService.CampaignFeed objects or a change in FeedItem.campaignTargeting https://developers.google.com/adwords/api/docs/reference/v201409/FeedItemService.FeedItem#campaignTargeting . For changes to individual *FeedItem*s, you should look at the CustomerChangeData.changedFeeds https://developers.google.com/adwords/api/docs/reference/v201409/CustomerSyncService.CustomerChangeData#changedFeeds returned by the sync service. Thanks, Josh, AdWords API Team On Tuesday, February 10, 2015 at 4:35:57 AM UTC-5, Tomas Rimkus wrote: Ok, another thing. Can you please confirm it or deny? changedCampaigns-changedFeeds will indicate changes to feed items only if feed items are associated with some campaign using feedItem-campaignTargeting association. Or maybe changedCampaigns-changedFeeds only shows changes to feed fields and changes to feed items are disregarded? Can you explain how it works and why I get changes under changedFeeds-changedFeedItems but changedCampaigns-changedFeeds reports that there were no changes when same date interval is used and feeds are associated with campaign using CampaignFeedService? -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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/fb8f259e-0dba-467f-b375-cdb428be533f%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Where is upgraded URL interface in test accounts?
This page https://developers.google.com/adwords/api/docs/guides/upgraded-urls says *Upgraded URLs are automatically supported in test accounts*. But we can't find the new interface in any of our test accounts. The new interface I'm referring to is the one shown here: http://adwords.blogspot.co.uk/2015/02/get-faster-and-easier-url-tracking-with.html Any idea? Oliver -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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/7bbc455f-e277-42d9-b1d0-87b99a82c3e2%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Retreiving structural data for sitelinks
Hi again Anash, I've been trying to implement the code you've illustrated but I'm having a few problems. Problem 1) When you use: campaignFeed.matchingFunction.@operator == FunctionOperator.IN this only picks out those campaigns with more than one sitelink ad extension. Those with only one sitelink ad extension have an EQUALS FunctionOperator rather than an IN. Is it safe to remove this condition, in order to pick up those campaigns matched with one sitelink ad extension only? Problem 2) There is a bigger problem. The matching function does indeed return all active site link ad extensions associated with campaigns. However, if one removes the all the site links from a campaign (so that the campaign is left with no site links), the previously associated site link group is still returned by the matching function. I.e there seems to be a residue when removing the site links from the campaign wholesale. This maybe be illustrated better as follows: If we start with an account with the following state CampaignA = [SitelinkA, SitelinkB] The matching function returns: CampaignA = [SitelinkA, SitelinkB] If we remove the site links so that there are no associated site links for the campaign CampaignA = [] The residue of the old grouping of site links will still show up in the matching function as follows CampaignA = [SitelinkA, SitelinkB] If, however, one removes just a single site link from the original state of affairs, so that in the account it looks like CampaignA = [SitelinkA] The matching function will correctly return CampaignA = [SitelinkA] If we were to now further remove SitelinkA the matching function will incorrectly report that SitelinkA is associated with CampaignA. Therefore when completely removing site links, there is a residue in the corresponding matching function. Is this a bug? Is there any way to produce a list of all current and active sitelink-campaign associations? Visar On Wednesday, November 26, 2014 at 11:53:00 AM UTC, Anash P. Oommen (AdWords API Team) wrote: Hi Visar, You need to use the CampaignFeedService to retrieve the MatchingFunction and then parse it to identify the FeedItems that are associated with a campaign. The C# code to do this looks : private CampaignFeed[] GetCampaignFeeds(AdWordsUser user, Feed feed) { CampaignFeedService campaignFeedService = (CampaignFeedService) user. GetService( AdWordsService.v201409.CampaignFeedService); CampaignFeedPage page = campaignFeedService.query(string.Format( SELECT CampaignId, MatchingFunction where + Status='ENABLED'and FeedId = '{0}' and PlaceholderTypes=1, feed.id )); return page.entries; } private Listlong GetFeedItemsForCampaign(CampaignFeed campaignFeed) { Listlong feedItems = new Listlong(); if (campaignFeed.matchingFunction.lhsOperand.Length == 1 campaignFeed.matchingFunction.lhsOperand[0] is RequestContextOperand (campaignFeed.matchingFunction.lhsOperand[0] as RequestContextOperand).contextType == RequestContextOperandContextType.FEED_ITEM_ID campaignFeed.matchingFunction.@operator == FunctionOperator.IN) { foreach (ConstantOperand argument in campaignFeed.matchingFunction. rhsOperand) { feedItems.Add(argument.longValue); } } return feedItems; } GetFeedItemsForCampaign only handles the simplest of the cases (FEEDITEM_ID IN [id1, id2, id3]). In theory, the matchingfunction can be an arbitrary expression tree, but if you stick to what the UI can do, then it is restricted to (FEEDITEM_ID IN [id1, id2, id3]) and DEVICE_PLATFORM = 'Mobile' Cheers, Anash P. Oommen, AdWords API Advisor. On Wednesday, November 26, 2014 6:23:50 AM UTC-5, Visar wrote: Hi, I'm having a little trouble using the API to retrieve structural data on sitelinks within an account. What I'm looking to do is to construct a list of which sitelinks belong to which campaigns (this is unavailable in the reports due to the lack of Zero Impressions support). Ideally data which could be placed into a table of the form: CampaignID SitelinkID 01 1123412 01 1232349 02 2342342 etc.. Given that I have an exhaustive list of all the campaign IDs and sitelink IDs (as placeholder feed item IDs), could someone please illustrate how this could be done, i.e which services to use and how to actually use them. Please be as detailed as possible. I'm currently using PHP but can work with any language. Cheers -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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
Re: Как получить статистику кампании не в файл
Да, в result. Обратите внимание, что это может создавать проблемы с расходом памяти для больших отчетов. Именно поэтому рекомендуется сохранять отчеты в файл. -Даниил. On Tuesday, February 10, 2015 at 5:21:38 PM UTC+3, Константин Поляков wrote: Спасибо за полезный ответ! Вот это имеете ввиду? * $filePath = NULL;* DownloadCriteriaReportExample($user, $filePath); Не совсем понял что понимается под path, и куда возвращается искомая строка? В result? *$result* = ReportUtils::DownloadReport($reportDefinition, $filePath, $user, $options); вторник, 10 февраля 2015 г., 16:44:45 UTC+3 пользователь Danial Klimkin написал: Константин, добрый день, В соответствии с документацией библиотеки: * Downloads a report with AWQL. If the path parameter is specified it will be * downloaded to the file at that path, otherwise it will be downloaded to * memory and be returned as a string. Т.е. при указании path = NULL библиотека вернет содержимое отчета в виде строки. https://github.com/googleads/googleads-php-lib/blob/master/src/Google/Api/Ads/AdWords/Util/ReportUtils.php -Даниил, команда AdWords API. On Tuesday, February 10, 2015 at 11:16:57 AM UTC+3, Константин Поляков wrote: Добрый день! Только начинаю постигать API Столкнулся с довольно тривиальной задачей - получить статистику кампаний - клики, конверсию и потраченную сумму. Пользуясь примерами клиентской библиотеки нашел наиболее подходящую функцию - DownloadCriteriaReport.php Она делает то что нужно, но выводит нужные мне цифры в отчет CSV и выгружает этот файл мне на сервер. Мне же необходимо получить эти данные в виде массива или объекта (PHP) чтобы записывать из в БД. Спасибо! -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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/7f0d2429-8955-4039-ae75-3a423f11f753%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Campaign Service returns UNEXPECTED_INTERNAL_API_ERROR with Shopping Campaigns
When requesting a shopping campaign to be added I am receiving an internal error back from Google. Does anyone have any clues as to why this might be? Below is the SOAP request/response: REQUEST: soap:Envelope xmlns:soap=http://schemas.xmlsoap.org/soap/envelope/; xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xmlns:xsd=http://www.w3.org/2001/XMLSchema; soap:Header RequestHeader xmlns=https://adwords.google.com/api/adwords/cm/v201409; clientCustomerId*/clientCustomerId developerToken*/developerToken userAgent***/userAgent /RequestHeader /soap:Header soap:Body mutate xmlns=https://adwords.google.com/api/adwords/cm/v201409; operations operatorADD/operator operand nameEdCamp1234/namestatusENABLED/status budget budgetId213066684/budgetIddeliveryMethodSTANDARD/deliveryMethod /budget adServingOptimizationStatusOPTIMIZE/adServingOptimizationStatus settings xsi:type=ShoppingSetting merchantId*/merchantIdsalesCountryAlgeria/salesCountry campaignPriority0/campaignPriority /settings advertisingChannelTypeSEARCH/advertisingChannelType networkSetting targetGoogleSearchtrue/targetGoogleSearchtargetSearchNetworktrue/targetSearchNetwork targetContentNetworktrue/targetContentNetwork targetPartnerSearchNetworkfalse/targetPartnerSearchNetwork /networkSetting biddingStrategyConfiguration biddingStrategyId492638724/biddingStrategyId /biddingStrategyConfiguration /operand /operations /mutate /soap:Body /soap:Envelope RESPONSE: soap:Envelope xmlns:soap=http://schemas.xmlsoap.org/soap/envelope/; soap:Header ResponseHeader xmlns=https://adwords.google.com/api/adwords/cm/v201409; requestId00050eccae2114510ac45ea758007d6c/requestId serviceNameCampaignService/serviceName methodNamemutate/methodName operations0/operations responseTime57/responseTime /ResponseHeader /soap:Header soap:Body soap:Fault faultcodesoap:Server/faultcode faultstring[InternalApiError.UNEXPECTED_INTERNAL_API_ERROR @ com.google.ads.api.services.common.error.InternalApiError.lt;initgt;(InternalApiErro]/faultstring detail ApiExceptionFault xmlns=https://adwords.google.com/api/adwords/cm/v201409; message[InternalApiError.UNEXPECTED_INTERNAL_API_ERROR @ com.google.ads.api.services.common.error.InternalApiError.lt;initgt;(InternalApiErro]/message ApplicationException.TypeApiException/ApplicationException.Type errors xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xsi:type=InternalApiError fieldPath/fieldPath trigger/trigger errorStringInternalApiError.UNEXPECTED_INTERNAL_API_ERROR/errorString ApiError.TypeInternalApiError/ApiError.Type reasonUNEXPECTED_INTERNAL_API_ERROR/reason /errors /ApiExceptionFault /detail /soap:Fault /soap:Body /soap:Envelope -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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/c2b46169-eb0c-41ab-80f5-88c2617fc140%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Google Adwords Api search volume with Exact match
Hello, Please see this example to start: https://github.com/googleads/googleads-dotnet-lib/blob/master/examples/AdWords/CSharp/v201409/Optimization/EstimateKeywordTraffic.cs Note where the match type is set: KeywordMatchType.EXACT; -Danial, AdWords API Team. On Wednesday, February 11, 2015 at 3:24:30 PM UTC+3, sam4...@gmail.com wrote: I am trying to query Google Adwords Api using .Net. I would like to get Global Search volume and Local Search volume. I would like to use get only results for Exact match. which method should I approach at the Api? -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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/287aa716-50c8-463b-99d9-2e8c9b12a902%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Can't set 'displaySelect' via the Python Adwords client
Hi, I'm trying to create a 'Search network with Display Select'-campaign via the v201409 API. I'm using the official 'googleads' Python client library (Version 3.0.1). Creating search-campaigns without displaySelect works fine but when I pass 'displaySelect': 'true' (with the correct networkSettings as described in http://googleadsdeveloper.blogspot.nl/2014/03/changes-required-for-creating-new.html) I get an error from lxml: TypeNotFound: Type not found: 'displaySelect'. In my experience this usually means that I'm passing the parameter in the wrong place, here is my operand: operand = { 'name': name, 'status': status, 'advertisingChannelType': campaign_type, 'biddingStrategyConfiguration': { 'biddingStrategyType': 'MANUAL_CPC', }, 'budget': { 'budgetId': budget_id }, 'networkSetting': { 'targetGoogleSearch': 'true', 'targetSearchNetwork': 'false', 'targetContentNetwork': 'true', 'targetPartnerSearchNetwork': 'false', }, 'displaySelect': 'true' } Does anyone see where it goes wrong? -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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/91d70b2b-43e7-4ef5-9973-dfef111c0b61%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Where is upgraded URL interface in test accounts?
Hello Oliver, This guide tells about the API support only. The API support for upgraded URLs on test accounts was available when the doc was published. As per AdWords user interface, as the blog post says: We’ll be rolling out upgraded URLs to all advertisers starting this week. -Danial, AdWords API Team. On Wednesday, February 11, 2015 at 3:11:21 PM UTC+3, Oliver wrote: This page https://developers.google.com/adwords/api/docs/guides/upgraded-urls says *Upgraded URLs are automatically supported in test accounts*. But we can't find the new interface in any of our test accounts. The new interface I'm referring to is the one shown here: http://adwords.blogspot.co.uk/2015/02/get-faster-and-easier-url-tracking-with.html Any idea? Oliver -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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/4e84f178-af4e-4275-a9d0-e3e66cd2ca0b%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Can't set 'displaySelect' via the Python Adwords client
Hello Robert, As per the migration guide, display select field is no longer available: https://developers.google.com/adwords/api/docs/guides/migration/v201409 Any campaign targeted to both Display and Search networks is enabled for displaySelect now. -Danial, AdWords API Team. On Wednesday, February 11, 2015 at 4:29:40 PM UTC+3, Robert Kreuzer wrote: Hi, I'm trying to create a 'Search network with Display Select'-campaign via the v201409 API. I'm using the official 'googleads' Python client library (Version 3.0.1). Creating search-campaigns without displaySelect works fine but when I pass 'displaySelect': 'true' (with the correct networkSettings as described in http://googleadsdeveloper.blogspot.nl/2014/03/changes-required-for-creating-new.html) I get an error from lxml: TypeNotFound: Type not found: 'displaySelect'. In my experience this usually means that I'm passing the parameter in the wrong place, here is my operand: operand = { 'name': name, 'status': status, 'advertisingChannelType': campaign_type, 'biddingStrategyConfiguration': { 'biddingStrategyType': 'MANUAL_CPC', }, 'budget': { 'budgetId': budget_id }, 'networkSetting': { 'targetGoogleSearch': 'true', 'targetSearchNetwork': 'false', 'targetContentNetwork': 'true', 'targetPartnerSearchNetwork': 'false', }, 'displaySelect': 'true' } Does anyone see where it goes wrong? -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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/67097fe5-b593-4c5c-aeb7-eaa7bbae7976%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Cannot set or change several BiddingStrategyConfiguration
Hello Danial! thanks, i successfuly create sharedBiddingStrategy and add it to campaign. But i cant know how set bid strategy like interface variant AdWords will set my bids to help maximize clicks within my target budget with CPC bid limit ? https://www.dropbox.com/s/fcwutioz4a3965v/%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D0%BE%D1%82%202015-02-12%2009.25.08.png?dl=0 Добрый день, гибкая стратегия ставок задается без проблем. Однако никак не удается разобраться с установкой Система AdWords будет выбирать ставки так, чтобы обеспечить максимальное число кликов в рамках целевого бюджета. и Включение Оптимизатора цены за конверсию как это сделано в интерфейсе. https://www.dropbox.com/s/tneuscdyza41ahd/%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D0%BE%D1%82%202015-02-12%2009.28.32.png Это рудименты интерфейса или как то через API их можно выставить? вторник, 10 февраля 2015 г., 17:07:21 UTC+3 пользователь Danial Klimkin написал: Hello Lena, For the bidding scheme, you need to create one with BiddingStrategyService and provide it's ID: https://developers.google.com/adwords/api/docs/reference/v201409/BiddingStrategyService As per EnhancedCpc, it's no longer available in the API since v201402: EnhancedCpc setting can no longer be enabled for Manual CPC bidding strategy from https://developers.google.com/adwords/api/docs/reference/#v201402 -Danial, AdWords API Team. On Tuesday, February 10, 2015 at 1:24:50 PM UTC+3, Лена Про wrote: Hello. I have several problemv with using BiddingStrategyConfiguration. First, i cant set TargetSpend Binnding on campaign creation: $biddingScheme= new \TargetSpendBiddingScheme(); $biddingScheme-bidCeiling= new \Money(100); $biddingStrategyConfiguration = new \BiddingStrategyConfiguration(); $biddingStrategyConfiguration-biddingScheme = $biddingScheme; $campaign-biddingStrategyConfiguration = $biddingStrategyConfiguration; $operation = new \CampaignOperation(); $operation-operand = $campaign; $operation-operator = 'ADD'; I get error : [BiddingErrors.INVALID_BIDDING_SCHEME @ operations[0].operand.biddingStrategyConfiguration.biddingScheme; trigger:'When a named bidding strategy is being set biddingScheme must be null'] Ok, i try this: $biddingStrategyConfiguration = new \BiddingStrategyConfiguration(); $biddingStrategyConfiguration-biddingStrategyType = 'TARGET_SPEND'; $campaign-biddingStrategyConfiguration = $biddingStrategyConfiguration; I get error: BiddingErrors.INVALID_ANONYMOUS_BIDDING_STRATEGY_TYPE @ operations[0].operand.biddingStrategyConfiguration.biddingStrategyType; trigger:'TARGET_SPEND' Then use this code campaign create successfuly: $biddingScheme = new \ManualCpcBiddingScheme(); $biddingScheme-enhancedCpcEnabled = false; $biddingStrategyConfiguration = new \BiddingStrategyConfiguration(); $biddingStrategyConfiguration-biddingScheme = $biddingScheme; I try change enhancedCpcEnabled to true. Error: [BiddingErrors.CANNOT_ATTACH_BIDDING_STRATEGY_TO_CAMPAIGN @ operations[0].operand.biddingStrategyConfiguration.biddingScheme.enhancedCpcEnabled; trigger:'true'] -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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/4d4075d3-3fa3-45cd-9bfe-c0af263308fa%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.