Re: Placement Performance Report with mobileapp performance

2013-12-11 Thread Takeshi Hagikura (AdWords API Team)
Hi Brandon,

Apologies for the delayed response.

> What kind of data would be excluded?
Can you please share the clientCustomerId and the same request XML? 
I'd like to look what is excluded.

> And how to aggregate Automatic Placement and Managed Placement together? 
URL Performance report doesn't distinguish automatic and managed 
placements. 
It returns the data segmented by the URL ads have been shown. 

> Will you add mobileapp into Placement Performance Report as the Automatic 
Placement Performance Report?
Sorry why you need to Automatic Placement Performance Report?
DoesURL Performance Report meet your needs?

Best,
- Takeshi, AdWords API Team

On Tuesday, December 3, 2013 12:18:44 AM UTC-8, Brandon wrote:
>
> Hi Takeshi,
>
> In fact, I had already tried this solution.
> But the URL Performance Report doesn't show the correct number of results 
> which is 5450 rows and it returns 5085 rows in this case.
> What kind of data would be excluded?
> And how to aggregate Automatic Placement and Managed Placement together? 
> Will you add mobileapp into Placement Performance Report as the Automatic 
> Placement Performance Report?
>
> Thanks,
>
> Brandon
>
>
> Takeshi Hagikura (AdWords API Team)於 2013年12月3日星期二UTC+8下午2時29分33秒寫道:
>>
>> Thanks Brandon,
>>
>> I looked into it further. The mobile app placements are not represented 
>> as a Placement, but a MobileApp criterion. The parameters of such 
>> placements begin with "mobileapp::".
>> The Url Performance 
>> Reportcan
>>  provide that information. 
>>
>> Best,
>> - Takeshi, 
>>
>> On Monday, December 2, 2013 6:43:53 PM UTC+9, Brandon wrote:
>>>
>>> Hi Takeshi,
>>>
>>> Thanks for your replying.
>>> The results could be downloaded here:
>>>
>>> Automatic placement preformance
>>>
>>> https://drive.google.com/file/d/0Bw03qlsABJ1YZ1huOVR3UkhaaGc/edit?usp=sharing
>>>
>>> Placement performance
>>>
>>> https://drive.google.com/file/d/0Bw03qlsABJ1YbWJsbkJJU2tIMWc/edit?usp=sharing
>>>
>>>
>>> And the request is as follows:
>>>
>>> https://adwords.google.com/api/adwords/cm/v201309";>
>>> 
>>> DisplayName
>>> Clicks
>>> Impressions
>>> Ctr
>>> AverageCpc
>>> AverageCpm
>>> Conversions
>>> ConversionsManyPerClick
>>> ConversionRate
>>> ConversionRateManyPerClick
>>> Cost
>>> CostPerConversion
>>> CostPerConversionManyPerClick
>>> 
>>> 20130819
>>> 20131122
>>> 
>>> 
>>> Test Report
>>> PLACEMENT_PERFORMANCE_REPORT
>>> CUSTOM_DATE
>>> XML
>>> false
>>> 
>>>
>>> I was using the same filter to download these two reports(only the 
>>> "reportType" are different).
>>> In my consider, it should be totally the same after I aggregate each 
>>> other.
>>> But it seems like the placement performance report only include the 
>>> performance of sites.
>>> Did I make something wrong?
>>>
>>> Thanks,
>>>
>>> Brandon
>>>
>>>
>>> Takeshi Hagikura (AdWords API Team)於 2013年12月2日星期一UTC+8下午2時53分06秒寫道:

 Hi Brandon,

 I think placements for mobile apps were represented as in the form of 
 {app-id}.adsenseformobileapps.com a while back. 
 Do you have the example request and response? 
 I'd like to make sure if it's not represented as above. 

 Best,
 - Takeshi, AdWords API Team

 On Thursday, November 28, 2013 1:35:25 PM UTC+9, Brandon wrote:
>
> Hi,
>
> In the recently release notes we knew that we can now using Placement 
> Performance Report to get both Automatic Placements Performance and 
> Managed Placements Performance.
> But I can't see any mobileapp performance in this report. Why?
> We need to combine these two report results into one.
> Is there any other way to implement this feature?
>
> Thanks,
>
> Brandon
>


-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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: CustomerSyncService Bug? Service not returning added or deleted adExtensions

2013-12-11 Thread Takeshi Hagikura (AdWords API Team)
Hi Jake,

Apologies for taking it too long. 
We're still working on it. 

Best,
- Takeshi, 

On Tuesday, December 10, 2013 3:13:53 PM UTC-8, ja...@totalcontext.com 
wrote:
>
> Hi Takeshi, Akil,
>
> I'm having the same issue. Could we please have an update on this issue?
>
> Cheers,
> Jake
>
> On Sunday, January 27, 2013 7:29:19 PM UTC-8, Takeshi Hagikura (AdWords 
> API Team) wrote:
>>
>> Unfortunately, it's not possible to track the status externally.
>>
>> Best,
>> - Takeshi
>>
>> On Friday, January 25, 2013 7:24:50 PM UTC+9, Akil Burgess wrote:
>>>
>>> Thanks Takeshi. Is there a way for me to track the status of the bug?
>>>
>>> --
>>> Akil
>>>
>>> On Friday, January 25, 2013 9:07:34 AM UTC, Takeshi Hagikura (AdWords 
>>> API Team) wrote:

 Thanks for the logs.

 Yes, it should be returned.
 I've escalated it as a bug.

 Best,
 - Takeshi, AdWords API Team

 On Thursday, January 24, 2013 9:48:19 PM UTC+9, Akil Burgess wrote:
>
> Hi Takeshi,
>
> Thank you for your response. I have attached the logs for a 
> campaignAdExtension mutate operation and then a subsequent 
> CustomerSyncService get operation to this reply. Please let me know if I 
> can provide anything else that may help.
>
> Thanks,
> Akil
>
> On Thursday, January 24, 2013 8:59:35 AM UTC, Takeshi Hagikura 
> (AdWords API Team) wrote:
>>
>> Hello Akil,
>>
>> Thanks for writing in.
>> Do you also have the request/response logs for CampaignAdExtension 
>> mutate?
>>
>> I'd like to confirm if that should be included in the 
>> CustomerSyncService response.
>>
>> Best,
>> - Takeshi, AdWords API Team
>>
>> On Tuesday, January 22, 2013 1:56:32 AM UTC+9, Akil Burgess wrote:
>>>
>>> Hi All,
>>>
>>> The CustomerSyncService doesn't seem to be including 
>>> addedAdExtensions or deletedAdExtensions data. I've performed several 
>>> CampaignAdExtension updates (via the API and the AdWords web interface) 
>>> in 
>>> our test account and the CustomerSyncService does not show any of these 
>>> changes. When I perform CampaignAdExtensionService get operations I can 
>>> see 
>>> the updated data so it seems like this data should have been processed 
>>> and 
>>> reflected in the CustomerChangeData.
>>>
>>> *All* - Is anyone else seeing this behaviour?
>>>
>>> *API Team* - Is this a bug? Can someone take a look?
>>>
>>> I have pasted my request and response logs at the end of this 
>>> message. As we can see other changes (adgroups) are showing in 
>>> CustomerChangeData but no adExtensions.
>>>
>>> Thanks in advance for any help!
>>>
>>> Akil
>>>
>>>
>>> *Request:*
>>>
>>> http://schemas.xmlsoap.org/soap/envelope/"; xmlns:xsi="
>>> http://www.w3.org/2001/XMLSchema-instance"; xmlns:xsd="
>>> http://www.w3.org/2001/XMLSchema";>https://adwords.google.com/api/adwords/ch/v201209";>>> xmlns="https://adwords.google.com/api/adwords/cm/v201209";>**>>  
>>> xmlns="https://adwords.google.com/api/adwords/cm/v201209";>**>>  
>>> xmlns="https://adwords.google.com/api/adwords/cm/v201209";>2226963136>>  
>>> xmlns="https://adwords.google.com/api/adwords/cm/v201209";>** 
>>> (AwApi-DotNet/15.0.0, Common-Dotnet/1.4.0, .NET CLR/4.0.30319.18010, 
>>> gzip)https://adwords.google.com/api/adwords/ch/v201209";>>>  
>>> xmlns="https://adwords.google.com/api/adwords/cm/v201209";>20130118 
>>> 00 UTChttps://adwords.google.com/api/adwords/cm/v201209";>20130121 164714 
>>> UTC110290473
>>>
>>>
>>> *Response:*
>>>
>>> http://schemas.xmlsoap.org/soap/envelope/
>>> ">https://adwords.google.com/api/adwords/ch/v201209"; xmlns="
>>> https://adwords.google.com/api/adwords/cm/v201209";>0004d3cf3789ea980ab1540155c5CustomerSyncServiceget014860>>  
>>> xmlns="https://adwords.google.com/api/adwords/cm/v201209"; 
>>> xmlns:ns2="https://adwords.google.com/api/adwords/ch/v201209";>110290473FIELDS_UNCHANGED6213230793FIELDS_CHANGEDfalse20130121
>>>  
>>> 163552 
>>> UTC
>>>
>>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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

Re: AuthorizationError.USER_PERMISSION_DENIED While accessing campaigns

2013-12-11 Thread Takeshi Hagikura (AdWords API Team)
Great. Thanks for sharing. 

Best,
- Takeshi, 

On Tuesday, December 10, 2013 11:50:40 AM UTC-8, Christian Gibbs wrote:
>
> I GOT IT!
>
>
>
> After getting the ?code=   from the URL
>
>
> $url = "https://accounts.google.com/o/oauth2/token";;
> $params = array(
> "code" => $authCode,
> "client_id" => $clientId,
> "client_secret" => $clientSecret,
> "redirect_uri" => $callbackUrl,
> "grant_type" => "authorization_code"
> );
>  
> $curl = curl_init();
> curl_setopt($curl, CURLOPT_URL, $url);
> curl_setopt($curl, CURLOPT_HEADER, false);
> curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
> curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
> curl_setopt($curl, CURLOPT_POST, true);
> curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
> curl_setopt($curl, CURLOPT_ENCODING, "");
> $curlData = curl_exec($curl);
> curl_close($curl);
>  $result = json_decode ($curlData);
> print_r( $result );
>  
>  $access_token = $result->access_token;
>
>
>
> $user = new AdWordsUser();
>  $user->SetOAuth2Info(array(
> "client_id" => $clientId,
> "client_secret" => $clientSecret,
> "access_token" => $access_token,
> "refresh_token" => ""
> ));
>
> I save the Auth Info and I was able to pull the other account data!
>
>
> On Tuesday, December 10, 2013 10:01:29 AM UTC-5, Christian Gibbs wrote:
>>
>> I am trying to access accounts that are not linked to our MCC by the 
>> consent of the user.
>>
>> It first starts here,
>>
>> $user = new AdWordsUser();
>>  $user->SetOAuth2Info(array(
>> "response_type" => 'code',
>> "client_id" => $clientId,
>> "client_secret" => $clientSecret,
>> "access_token" => $access, 
>> "refresh_token" => $refresh,
>> "scope" => 'offline'
>> ));
>>  $params = array(
>> "response_type" => 'code',
>> "client_id" => $clientId,
>> "client_secret" => $clientSecret,
>> "access_token" => $access, 
>> "refresh_token" => $refresh,
>> "scope" => 'offline'
>> );
>>  
>>  /*
>>   *  public function GetAuthorizationUrl(array $credentials,
>>   $redirectUri = NULL, $offline = NULL, array $params = NULL) {
>>   */
>>  
>> // Generate an authorization URL given the callback URL
>> try{
>>  $OAuth2Handler = $user->GetOAuth2Handler();
>> $OAuth2Handler->scope = 'https://adwords.google.com/api/adwords/';
>> print_r( $OAuth2Handler );
>> $authUrl = $OAuth2Handler->GetAuthorizationUrl($params, $callbackUrl, 
>> true, null);
>> }catch( Exception $e ){
>> print_r($e->getMessage());
>> }
>>  
>> header("Location: $authUrl");
>>
>>
>>
>> Then it takes you to the consent page.
>>
>> After login is successful,
>>
>>
>> Not sure if I need to set scope = 'offline' Paul Matthews said something 
>> about that but wasnt clear. There is another scope but it is a URL so I 
>> dont know what hes talking about. Maybe you can shed some light on that.
>>
>> Anyway, the callback url runs this code,
>>
>>
>> $user = new AdWordsUser();
>>  $user->SetOAuth2Info(array(
>> "response_type" => 'code',
>> "client_id" => $clientId,
>> "client_secret" => $clientSecret,
>> "access_token" => $access, 
>> "refresh_token" => $refresh,
>> "scope" => 'offline'
>> ));
>>  $authCode = $_REQUEST["code"];
>>  //GetOAuth2Credential function copied below
>>
>>  $oauth2Info = $this->Google_model->GetOAuth2Credential($user, $authCode, 
>> $callbackUrl);
>>  $user->SetOAuth2Info($oauth2Info);
>>   $user->SetAuthToken( $authCode );
>>  
>>
>>
>>
>>
>> function GetOAuth2Credential($user, $code, $redirectUri = NULL) {
>>
>>   $offline = TRUE;
>>   // Get the authorization URL for the OAuth2 token.
>>   // No redirect URL is being used since this is an installed 
>> application. A web
>>   // application would pass in a redirect URL back to the application,
>>   // ensuring it's one that has been configured in the API console.
>>   // Passing true for the second parameter ($offline) will provide us a 
>> refresh
>>   // token which can used be refresh the access token when it expires.
>>   $OAuth2Handler = $user->GetOAuth2Handler();
>>   $authorizationUrl = $OAuth2Handler->GetAuthorizationUrl(
>>   $user->GetOAuth2Info(), $redirectUri, $offline);
>>   // In a web application you would redirect the user to the 
>> authorization URL
>>   // and after approving the token they would be redirected back to the
>>   // redirect URL, with the URL parameter "code" added. For desktop
>>   // or server applications, spawn a browser to the URL and then have the 
>> user
>>   // enter the authorization code that is displayed.
>>   printf("Log in to your AdWords account and open the following 
>> URL:\n%s\n\n",
>>   $authorizationUrl);
>>   //print "After approving the token enter the authorization code here: ";
>>   
>>   // Get the access token using the authorization code. Ensure you use 
>> the same
>>   // redirect URL used when requesting authorization.
>>   $user->SetOAuth2Info(
>> $OAuth2Handler->GetAccessToken(
>> $user

Re: Using AdWord API for mobile campaigns

2013-12-11 Thread Takeshi Hagikura (AdWords API Team)
Hi,

#1,
Technically there is no mobile only ads on search included campaigns.
Please see the related thread 
https://groups.google.com/d/msg/adwords-api/UVSNLXKVh0k/wN52O_fZiS4J

#2, 
What document do you refer for zip code targeting? 

Best,
- Takeshi, 

On Thursday, December 5, 2013 3:54:36 PM UTC-8, ssAdword wrote:
>
> Thank you. 
>
> So if I want to target my ad to mobile devices ONLY, should I target 
> device type by using platform criteria ID 3001? 
>
> also, I noticed the zip code targeting is a beta feature. can you confirm 
> if it's available or not? 
>
> Thank you!
>
>
> On Monday, December 2, 2013 1:38:18 PM UTC-8, ssAdword wrote:
>
>> Hi, 
>> I'm trying to explore functionality of AdWord API.  What I'm hoping to 
>> accomplish is to bulk upload image ads targeting at mobile devices (either 
>> in-app or mobile web display), manage the bid and have layers of targeting 
>> such as zipcode targeting.  It is not for app download but mobile campaign 
>> that drives to my own site.  I have >10K banners (URL links) and need to 
>> dynamically manage them through the API.  
>> I used the AdWord Web interface before to test on small scale and used 
>> 320x50 image ad, targeting at mobile devices and zip codes.  As the site 
>> indicates that AdWord API is almost the same as the web interface. but 
>> under the reference for template ads, I didn't find the right ad size for 
>> mobile ads (320x50) and I'm not sure if image ads is an option for AdWord 
>> API in this case.  
>>  
>> I wonder whether AdWord API is the right tool.  Or should I go for 
>> DoubleClick Campaign Manager?
>>  
>> Stella
>>
>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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: DEBUG: Did not load optional configuration file log exception for every request

2013-12-11 Thread Takeshi Hagikura (AdWords API Team)
Hi, 

As I replied previously, can you please share the pom.xml?

Best,
- Takeshi,

On Friday, December 6, 2013 7:53:55 AM UTC-8, r...@oanda.com wrote:
>
> I encounter this issue, any solution/update?
>
> On Friday, May 31, 2013 6:03:12 AM UTC-4, Takeshi Hagikura wrote:
>>
>> Hi Sanju,
>>
>> Thanks for the report. 
>> I'm looking into that. Do you mind sharing the pom.xml you are using?
>> I'd like to make sure what log framework you are using.
>>
>> Best,
>> - Takeshi, AdWords API Team
>>
>> On Tuesday, May 28, 2013 10:31:33 PM UTC+9, Sanju wrote:
>>>
>>> Hi,
>>>
>>> When am trying to get AdWordsSession object using credentials 
>>>
>>>
>>> And also when am trying to get CampaignService from service object like 
>>> CampaignServiceInterface campaignService = 
>>> adWordsServices.get(adwordsSession, CampaignServiceInterface.class);
>>> am getting following log error:
>>>
>>> com.google.api.ads.common.lib.utils.logging.AdsServiceLoggers.ads_api_lib 
>>> createCombinedConfiguration 
>>> DEBUG: Did not load optional configuration 
>>> google-ads-api-java-build.properties:
>>> com.google.api.ads.common.lib.conf.ConfigurationLoadException: 
>>> Encountered a problem reading the provided configuration file 
>>> "google-ads-api-java-build.properties"!
>>> at 
>>> com.google.api.ads.common.lib.conf.ConfigurationHelper.fromFile(ConfigurationHelper.java:67)
>>> at 
>>> com.google.api.ads.common.lib.conf.ConfigurationHelper.createCombinedConfiguration(ConfigurationHelper.java:140)
>>> 
>>> 
>>> 
>>> Caused by: org.apache.commons.configuration.ConfigurationException: 
>>> Cannot locate configuration source google-ads-api-java-build.properties
>>>
>>>  But am getting the service object reference correct and all the 
>>> operations are going well but above logs making me confusion.
>>>
>>>
>>>
>>> Thnx in adv.
>>>
>>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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: is adwords down right now? getting 502 server error

2013-12-11 Thread Takeshi Hagikura (AdWords API Team)
Hi Zwelte,

Thanks for letting us know it. 
Looks similar to this 
thread
.

Can you please try a different download format (CSV, XML) to see if it 
works?

Best,
- Takeshi, AdWords API Team

On Thursday, December 5, 2013 3:59:22 AM UTC-8, Zweitze wrote:
>
> We got it again today... The good news is that we now log the headers. 
> This was the request:
>
> Request POST to /api/adwords/reportdownload/v201306:
>
>  
>  
>   https://adwords.google.com/api/adwords/cm/v201306";> 
> AccountDescriptiveName 
> AccountCurrencyCode 
> AccountTimeZoneId 
> Impressions 
> AccountId 
>
>xmlns="https://adwords.google.com/api/adwords/cm/v201306";>AdwordsReportAccountInfo_All_Time
>  
>
>xmlns="https://adwords.google.com/api/adwords/cm/v201306";>ACCOUNT_PERFORMANCE_REPORT
>  
>
>xmlns="https://adwords.google.com/api/adwords/cm/v201306";>ALL_TIME
>  
>
>xmlns="https://adwords.google.com/api/adwords/cm/v201306";>GZIPPED_XML
>  
>
>   https://adwords.google.com/api/adwords/cm/v201306";>true
>  
>
> 
>
> Note: the contents were actually URL encoded.
>
> Request headers:
>  Content-Type
>  application/x-www-form-urlencoded
>  Authorization
>  GoogleLogin auth=DQAAr8eQ
>  clientCustomerId
>  8090813184
>  developerToken
>  kNkf...qg_g
>  returnMoneyInMicros
>  True
>  User-Agent
>  Adwords API by Maxlead
>  Host
>  adwords.google.com
>  Content-Length
>  1097
>  Accept-Encoding
>  gzip, deflate
>
> Response HTTP 502, "Bad Gateway".
>
> Unfortunately the content of the response was lost. Here are the response 
> headers:
>  Content-Length
>  983
>  Content-Type
>  text/html; charset=UTF-8
>  Date
>  Thu, 05 Dec 2013 05:30:50 GMT
>  Server
>  GFE/2.0
>
>
> The developer token is the developer token issued to MCC 437-819-4458.
> The request was fired four times with 30 seconds in between, the data 
> above is from the last attempt.
>
>
> Regards
>
>
>
> On Thursday, November 21, 2013 6:04:39 AM UTC+1, Takeshi Hagikura (AdWords 
> API Team) wrote:
>>
>> Hi Zwelzte,
>>
>> Thanks for the input. 
>>
>> Can you please send me your following?
>> - developer token
>> - (If possible) full request and response logs including HTTP headers
>>
>> A developer token is very sensitive info, please make sure you send only 
>> me using "Reply to author" from the top right corner.
>>
>> Best,
>> - Takeshi, AdWords API Team
>>
>> On Wednesday, November 20, 2013 9:22:47 PM UTC+9, Zweitze wrote:
>>>
>>> Unfortunately my response headers were lost.
>>> But I looked a bit further back, I found similar errors on Oct 25 (on 
>>> three accounts), Nov 7 (two accounts), Nov 9 (1 account), Nov 18 (1 
>>> account), Nov 19 (1 account).
>>>
>>> But: these errors ALWAYS occured at 06:32h CEST!
>>> Mind you, we get hundreds to thousands of reports each day, but we only 
>>> get HTTP 502 at 06:32h.
>>>
>>> I should mention a 502 qualifies for retries in our software: in all 
>>> cases the fourth attempt failed. Between the attempts the software waits 30 
>>> seconds.
>>>
>>> Hope this helps.
>>>
>>> On Wednesday, November 20, 2013 7:43:38 AM UTC+1, Takeshi Hagikura 
>>> (AdWords API Team) wrote:

 Thanks everyone, 

 I'm not able to reproduce it though, it may happen in a specific time 
 or sporadically. 
 To look into this further, can you please share the following?

 - Do you always see the same error when you get 502?
 - Can you please share the error response in more detail including HTTP 
 response headers?

 Best,
 - Takeshi, AdWords API Team

 On Tuesday, November 19, 2013 10:50:22 PM UTC+9, Zweitze wrote:
>
> I had this on Nov 18 and 19, both at the same time, 06:32h CEST.
> Report request:
>
>  
> https://adwords.google.com/api/adwords/cm/v201306";> 
> AccountDescriptiveName 
> AccountCurrencyCode 
> AccountTimeZoneId 
> Impressions 
> AccountId 
>  
>  xmlns="https://adwords.google.com/api/adwords/cm/v201306";>AdwordsReportAccountInfo_All_Time
>  
>
>  xmlns="https://adwords.google.com/api/adwords/cm/v201306";>ACCOUNT_PERFORMANCE_REPORT
>  
>
> https://adwords.google.com/api/adwords/cm/v201306";>ALL_TIME
>  
>
> https://adwords.google.com/api/adwords/cm/v201306";>GZIPPED_XML
>  
>
> https://adwords.google.com/api/adwords/cm/v201306";>true
>  
>
> 
>
> This report was tried four times with 30 seconds between the attempts 
> - all attempts failed.
> Note that in a lot of instances everything goes well, for hundreds of 
> reports it was OK (allthough I don't know how many retries were needed 
> for 
> those...)
>
> Note that we run the most reports between 04:30h and 05:30h CEST, 
> without problems. But at 06:32h we do get problems...
>
> Hope this helps.
>
>
>
> On Thursday, November 14, 2013 11:40:01 AM

Re: API v201309 CampaignService selector fields SelectorError.INVALID_FIELD_NAME

2013-12-11 Thread Josh Radcliff (AdWords API Team)
Hi,

I confirmed that our documentation is incorrect in this case.  The fields 
you mentioned are not actually selectable.

I'll follow up to correct the documentation.  Thanks for pointing this out.

Cheers,
Josh, AdWords API Team

On Monday, December 9, 2013 8:49:15 AM UTC-8, Leny wrote:
>
> Thank you Josh,
>
> If you need a requestId:
>
> https://adwords.google.com/api/adwords/cm/v201309"; xmlns:cm="
> https://adwords.google.com/api/adwords/cm/v201309";>
>
> AdServingOptimizationStatus
> Amount
> BidCeiling
> BidType
> BiddingStrategyId
> BiddingStrategyName
> BiddingStrategyType
> BudgetId
> BudgetName
> BudgetReferenceCount
> BudgetStatus
> CpcBid
> DeliveryMethod
> Eligible
> EndDate
> EnhancedCpcEnabled
> FrequencyCapMaxImpressions
> Id
> IsBudgetExplicitlyShared
> Level
> Name
> Period
> PricingMode
> RejectionReasons
> ServingStatus
> Settings
> StartDate
> Status
> TargetContentNetwork
> TargetGoogleSearch
> TargetPartnerSearchNetwork
> TargetSearchNetwork
> TimeUnit
> 
>  Status
>  IN
>  ACTIVE
>  PAUSED
> 
> 
>  0
>  100
> 
>
>   
>
>
>
> *** Incoming SOAP **
> 
> http://schemas.xmlsoap.org/soap/envelope/";>
>  
>   https://adwords.google.com/api/adwords/cm/v201309
> ">
>0004ed1cb2c2aec80ae568892fee
>CampaignService
>get
>1
>541
>   
>  
>  
>   
>soap:Server
>[SelectorError.INVALID_FIELD_NAME @ serviceSelector; 
> trigger:'CpcBid']
>
> https://adwords.google.com/api/adwords/cm/v201309";>
>  [SelectorError.INVALID_FIELD_NAME @ serviceSelector; 
> trigger:'CpcBid']
>  ApiException
>  http://www.w3.org/2001/XMLSchema-instance"; 
> xsi:type="SelectorError">
>   serviceSelector
>   CpcBid
>   SelectorError.INVALID_FIELD_NAME
>   SelectorError
>   INVALID_FIELD_NAME
>  
> 
>
>   
>  
> 
>
> On Thursday, December 5, 2013 10:38:01 PM UTC+1, Josh Radcliff (AdWords 
> API Team) wrote:
>>
>> Hi,
>>
>> As far as I can tell those fields should be selectable.  I'm 
>> investigating and will provide an update once I have more information.
>>
>> Cheers,
>> Josh, AdWords API Team
>>
>> On Monday, December 2, 2013 11:56:00 AM UTC-5, Leny wrote:
>>>
>>> Hi,
>>>
>>> I am trying to get every available fields from the 
>>> CampaignService
>>>  on 
>>> the API v201309, but sadly a few fields are returning an INVALID_FIELD_NAME 
>>> error :
>>> BiddingStrategySource
>>> ContentBid
>>> CpcBid
>>> CpcBidSource
>>> CpmBid
>>> CpmBidSource
>>> PageOnePromotedBidCeiling
>>> PageOnePromotedBidChangesForRaisesOnly
>>> PageOnePromotedBidModifier
>>> PageOnePromotedRaiseBidWhenBudgetConstained
>>> PageOnePromotedRaiseBidWhenLowQualityScore
>>> PageOnePromotedStrategyGoal
>>> PercentCpaBid
>>> PercentCpaBidSource
>>> TargetCpa
>>> TargetCpaBid
>>> TargetSpendBidCeiling
>>> TargetSpendSpendTarget
>>>
>>> Is there any logic making those fields not selectable I could have 
>>> missed ?
>>>
>>> Thank you.
>>>
>>
>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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: MultiplierError.BID_LESS_THAN_MIN_ALLOWED_BID_WITH _MULTIPLIER

2013-12-11 Thread Josh Radcliff (AdWords API Team)
Hi,

We're working on this, but in the meantime one work around is to first set 
the bid in one request, then set the multiplier in a subsequent request.

Thanks,
Josh, AdWords API Team

On Thursday, December 5, 2013 1:49:19 PM UTC-8, Josh Radcliff (AdWords API 
Team) wrote:
>
> Hi,
>
> Thank you for providing the sample request and response.  We're working on 
> resolving this and I will post an update once I have more information.
>
> Cheers,
> Josh, AdWords API Team
>
> On Tuesday, November 26, 2013 8:10:26 PM UTC-5, Devesh Parekh wrote:
>>
>> Fixing a typo to reduce confusion:
>>
>> On Tuesday, November 26, 2013 5:09:25 PM UTC-8, Devesh Parekh wrote:
>>>
>>> I've recently started getting an error when I send bid multipliers with 
>>> low bids. I've pasted a sample request and response *below* where the 
>>> bid multiplier is small enough to cause a difference of at least one cent. 
>>> There are a few problems with this:
>>>
>>>1. This was working fine until very recently.
>>>2. This still works fine if I set the multiplier in the AdWords UI.
>>>3. If I use MutateJobService instead of AdGroupCriterionService, I 
>>>get a response with placeholders but no errors. Silent failures like 
>>> these 
>>>cause these problems to go unnoticed for longer than they otherwise 
>>> would.
>>>
>>>
>>> Request:
>>> https://adwords.google.com/api/adwords/cm/v201306
>>> ">
>>> 
>>> SET
>>> https://adwords.google.com/api/adwords/cm/v2
>>> 01306" xsi:type="ns2:BiddableAdGroupCriterion">
>>> 8101610621
>>> 
>>> 12623861
>>> 
>>> 
>>> 801941
>>> 
>>> MODIFIED>> Status>
>>> 
>>> ACTIVE>> us>
>>> >> xsi:type="ns2:ManualCPCAdGr
>>> oupCriterionExperimentBidMultiplier">
>>> 
>>> 
>>> 0.8571428571428571>> er>
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 7
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>>
>>> Response:
>>> 
>>> soap:Server
>>> 
>>> [MultiplierError.BID_LESS_THAN_MIN_ALLOWED_BID_WITH_MUL
>>> TIPLIER @ 
>>> operations[0].operand.experimentData.experimentBidMultiplier.maxCpcMul
>>> tiplier.multiplier; trigger:'8571']
>>> 
>>> https://adwords.google.com/api/adwords
>>> /cm/v201306">
>>> 
>>> [MultiplierError.BID_LESS_THAN_MIN_ALLOWED_BID_WITH
>>> _MULTIPLIER @ 
>>> operations[0].operand.experimentData.experimentBidMultiplier.maxCp
>>> cMultiplier.multiplier; trigger:'8571']
>>> 
>>> ApiException>> n.Type>
>>> 
>>> 
>>> 
>>>
>>>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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: How to display ads only on desktop computers, as opposed to displaying ads on tablets and mobile

2013-12-11 Thread Josh Radcliff (AdWords API Team)
Hi Charles,

You can do this with Platform criteria.  The Device targeting 
sectionof
 the Ad Management guide describes how to achieve this, but a few points 
that may help are:

   - The criteria ID for Desktop is 
3
   - The Platform criteria can be added to your campaign using the 
   
CampaignCriterionService

The library examples do not contain a Platform target example specifically, 
but the 
AddCampaignTargetingCriteriaillustrates
 how to add criteria to a Campaign.

Cheers,
Josh, AdWords API Team

On Monday, December 9, 2013 5:33:22 AM UTC-8, acc...@koopjespakker.nl wrote:
>
> Does anyone kown how to display ads only on desktop computers(so not on 
> tablets or Mobile phones)?
>
> An example  with use op the AdWords API PHP Client Library would be highly 
> appreciated,
>
> regards,
> Charles
>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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: Error - Reflection is not allowed on private - App Engine

2013-12-11 Thread Anders H
Hi,

All imported jaxws classes in the Java app are from: 
com.google.api.ads.adwords.jaxws.v201309.

I have included the pom.xml being used for reference.

Thanks,
Anders

Den onsdag den 11. december 2013 20.05.41 UTC+1 skrev Takeshi Hagikura 
(AdWords API Team):
>
> Hi, 
>
> Looks like one of your jars that has binding of jaxws is competing with 
> the Java native implementation.
> You need to include only needed jars.
> At least dfp-playground works with the Java library with jaxws on 
> appengine. 
>
> Can you please refer to its 
> pom.xml
>  first?
> At least you need to change the dfp part to adwords like this. 
>
>   
> com.google.api-ads
> dfp-appengine
>   1.18.0 | v   
> com.google.api-ads
> adwords-appengine
>   1.18.0
>
> Best,
> - Takeshi
>
> On Sunday, December 8, 2013 9:09:10 AM UTC-8, Anders H wrote:
>>
>>
>> I am running the GetAccountHierarchy.java example on App Engine with 
>> JAX-WS. The application is created using Apache Maven for dependencies and 
>> the imported jaxws classes are from adwords-appengine-1.22.0.jar.
>>
>> When running the app on appspot I get an exception that doesn't tell me 
>> much about what could be the problem. 
>>
>> This is the piece of code that throws the exception:
>> // Get the ServicedAccountService.
>> ManagedCustomerServiceInterface managedCustomerService =
>>  adWordsServices.get(session, 
>> ManagedCustomerServiceInterface.class);
>>
>> This is the exception:
>> 2013-12-08 11:55:53.087
>>
>> com.sun.xml.bind.v2.runtime.reflect.Accessor$FieldReflection : Unable 
>> to make javax.xml.ws.wsaddressing.W3CEndpointReference.address accessible.
>> java.lang.SecurityException: java.lang.IllegalAccessException: Reflection is 
>> not allowed on private 
>> javax.xml.ws.wsaddressing.W3CEndpointReference$Address 
>> javax.xml.ws.wsaddressing.W3CEndpointReference.address
>>  at 
>> com.google.appengine.runtime.Request.process-44627206b54ccbe5(Request.java)
>>  at 
>> com.sun.xml.bind.v2.runtime.reflect.Accessor$FieldReflection.(Accessor.java:243)
>>  at 
>> com.sun.xml.bind.AccessorFactoryImpl.createFieldAccessor(AccessorFactoryImpl.java:66)
>>  at 
>> com.sun.xml.bind.v2.model.impl.RuntimeClassInfoImpl.createFieldSeed(RuntimeClassInfoImpl.java:252)
>>  at 
>> com.sun.xml.bind.v2.model.impl.RuntimeClassInfoImpl.createFieldSeed(RuntimeClassInfoImpl.java:81)
>>  at 
>> com.sun.xml.bind.v2.model.impl.ClassInfoImpl.findFieldProperties(ClassInfoImpl.java:405)
>>  at 
>> com.sun.xml.bind.v2.model.impl.ClassInfoImpl.getProperties(ClassInfoImpl.java:308)
>>  at 
>> com.sun.xml.bind.v2.model.impl.RuntimeClassInfoImpl.getProperties(RuntimeClassInfoImpl.java:176)
>>  at 
>> com.sun.xml.bind.v2.model.impl.ModelBuilder.getClassInfo(ModelBuilder.java:243)
>>  at 
>> com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:100)
>>  at 
>> com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:81)
>>  at 
>> com.sun.xml.bind.v2.model.impl.ModelBuilder.getClassInfo(ModelBuilder.java:209)
>>  at 
>> com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:95)
>>  at 
>> com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:81)
>>  at 
>> com.sun.xml.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:315)
>>  at 
>> com.sun.xml.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:330)
>>  at 
>> com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:466)
>>  at 
>> com.sun.xml.bind.v2.runtime.JAXBContextImpl.(JAXBContextImpl.java:302)
>>  at 
>> com.sun.xml.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1140)
>>  at 
>> com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:154)
>>  at 
>> com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:121)
>>  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>  at 
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>  at 
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>  at java.lang.reflect.Method.invoke(Method.java:606)
>>  at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:253)
>>  at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:240)
>>  at javax.xml.bind.ContextFinder.find(ContextFinder.java:453)
>>  at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:637)
>>  at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:584)
>>  at com.sun.xml.ws.spi.ProviderImpl$2.run(ProviderImpl.java:220)
>>  at com.sun.xml.ws.spi.ProviderImpl$2.run(ProviderImpl.java:218)
>>  at java.security.AccessController.doPrivileged(AccessController.java:34)
>

Re: Check remaining balance for an MCC account with enabled credit line

2013-12-11 Thread Zweitze
Hello,

You can get all account budgets with the *BudgetOrderService 
*.
 
With the result (you get all budgets, including budgets of past and 
future), find out the active budget. That result will tell you the start 
and end dates of the budget. To find the spent budget, simply run an 
account performance report for the period of the start date until today - 
and ask for the cost field. With the active budget, and spent money you can 
calculate the numbers you need.

But:
1. BudgetOrderService needs a whitelisting - you need to whitelist the MCC 
containing the accounts on which you want to use the BudgetOrderService. 
Contact your Google representative for this.
2. This does not work on accounts with video campaigns. Money spent on 
these campaigns is not reported by any report.

Hope this helps.


On Tuesday, November 12, 2013 4:11:04 PM UTC+1, Артокс Медиа wrote:
>
>
> 
>
>
> 
> Hello, is there a way to get remaining budget or budget percent spent for 
> different clients at MCC account with enabled credit line? We have hundreds 
> of clients and we would like to send alert emails to our account managers 
> about low clients balance. Unfortunatly we could not find a way to do so 
> using AdWords API.
>
>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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: How to authenticate anyone ADWORDS API OAuth2 PHP

2013-12-11 Thread Christian Gibbs
Actually this is what I used to pull the ClientId


$customerService = $user->GetService('CustomerService', ADWORDS_VERSION);
$cust = $customerService->get();
$user->setCustomerClientId( $cust->customerId );



On Tuesday, December 10, 2013 8:52:35 PM UTC-5, Paul Matthews (AdWords API 
Team) wrote:
>
> The clientCustomerId is the identifier for the account you wish to access. 
> You need to specify this in the AdWordsUser to access that account.
>
> The OAuth2 layer is purely to permit access, the clientCustomerId 
> specifieswhich
>  sub account you're accessing.
>
> For more information on this please read the 
> README
> .
>
> Regards,
>
> - Paul, AdWords API Team.
>
> On Tuesday, 10 December 2013 12:58:26 UTC-8, Christian Gibbs wrote:
>>
>> By the way, your video helped. Because I didnt know there was a new 
>> Auth.ini file.
>>
>> Now Im getting this error.
>>
>> The client customer ID must be specified for report downloads.'
>>
>>
>> When I run the campaign service, I can do that and view all the campaigns 
>> but I cannot download the reports because I dont have the clientCustomerId.
>>
>>
>>
>> How is this suppose to work when using OAuth2?
>>
>>
>> I have a refresh token. Everything is working ok, when just viewing the 
>> campaigns but not for downloading reports. The Id is required.
>>
>>
>> Any idea?
>>
>>
>> Thanks
>>
>>
>>
>>
>>
>> On Tuesday, December 10, 2013 2:50:53 PM UTC-5, Christian Gibbs wrote:
>>>
>>> I GOT IT!
>>>
>>>
>>>
>>> After getting the ?code=   from the URL
>>>
>>>
>>> $url = "https://accounts.google.com/o/oauth2/token";;
>>> $params = array(
>>> "code" => $authCode,
>>> "client_id" => $clientId,
>>> "client_secret" => $clientSecret,
>>> "redirect_uri" => $callbackUrl,
>>> "grant_type" => "authorization_code"
>>> );
>>>  
>>> $curl = curl_init();
>>> curl_setopt($curl, CURLOPT_URL, $url);
>>> curl_setopt($curl, CURLOPT_HEADER, false);
>>> curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
>>> curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
>>> curl_setopt($curl, CURLOPT_POST, true);
>>> curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
>>> curl_setopt($curl, CURLOPT_ENCODING, "");
>>> $curlData = curl_exec($curl);
>>> curl_close($curl);
>>>  $result = json_decode ($curlData);
>>> print_r( $result );
>>>  
>>>  $access_token = $result->access_token;
>>>
>>>
>>>
>>> $user = new AdWordsUser();
>>>  $user->SetOAuth2Info(array(
>>> "client_id" => $clientId,
>>> "client_secret" => $clientSecret,
>>> "access_token" => $access_token,
>>> "refresh_token" => ""
>>> ));
>>>
>>> I save the Auth Info and I was able to pull the other account data!
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Tuesday, December 10, 2013 11:33:29 AM UTC-5, Christian Gibbs wrote:

 The OAuth login works fine, when I login myself. I can pull the data. 
 But when I use another google account of mine I get the authorization 
 error.

 I need to achieve this. Please dont say this is the result because the 
 account is unlinked. Please give me some direction on how to achieve this.

 One of your colleague is saying it is possible. 


 On Tuesday, December 10, 2013 11:30:26 AM UTC-5, Christian Gibbs wrote:
>
> I updated everything over like you said with the OAuthHandler class.
>
> One of your staff said this. 
>
>
> Takeshi Hagikura (AdWords API Team)[image: Google Employee] 
> Nov 12
> Hi Bikram,
>
> If the accounts are not linked to your MCC, you need to get a separate 
> access token (and a refresh token) for each client account. 
> In that case, I think an installed application mechanism is not 
> practical because it requires manual process for each account. 
>
> You can use the web application 
> flow by 
> preparing a web server that doesn't require manual process in your side 
> when a client grants your application access to their data. 
>
>
>
> Please give some insight in regards to accessing unlinked accounts. 
> This is what I am interested in. Please understand my goal.
>
> I need this to be able to authorize Adwords account users, that have 
> nothing to do with my MCC account.
>
>
>
> https://groups.google.com/forum/#!msg/adwords-api/8vhiFuU-4is/Y-UprxyBXQgJ
>
>
>
> On Tuesday, December 10, 2013 10:44:13 AM UTC-5, Paul Matthews 
> (AdWords API Team) wrote:
>>
>> Hi Christian,
>>
>> When you say you've done many changes, what kind of changes? Are you 
>> able to get authentication working as per the 
>> screencast? 
>> Using the video is t

Re: Error - Reflection is not allowed on private - App Engine

2013-12-11 Thread Takeshi Hagikura (AdWords API Team)
Hi, 

Looks like one of your jars that has binding of jaxws is competing with the 
Java native implementation.
You need to include only needed jars.
At least dfp-playground works with the Java library with jaxws on 
appengine. 

Can you please refer to its 
pom.xml
 first?
At least you need to change the dfp part to adwords like this. 

  
com.google.api-ads
dfp-appengine
  1.18.0 | v   
com.google.api-ads
adwords-appengine
  1.18.0

Best,
- Takeshi

On Sunday, December 8, 2013 9:09:10 AM UTC-8, Anders H wrote:
>
>
> I am running the GetAccountHierarchy.java example on App Engine with 
> JAX-WS. The application is created using Apache Maven for dependencies and 
> the imported jaxws classes are from adwords-appengine-1.22.0.jar.
>
> When running the app on appspot I get an exception that doesn't tell me 
> much about what could be the problem. 
>
> This is the piece of code that throws the exception:
> // Get the ServicedAccountService.
> ManagedCustomerServiceInterface managedCustomerService =
>  adWordsServices.get(session, 
> ManagedCustomerServiceInterface.class);
>
> This is the exception:
> 2013-12-08 11:55:53.087
>
> com.sun.xml.bind.v2.runtime.reflect.Accessor$FieldReflection : Unable 
> to make javax.xml.ws.wsaddressing.W3CEndpointReference.address accessible.
> java.lang.SecurityException: java.lang.IllegalAccessException: Reflection is 
> not allowed on private javax.xml.ws.wsaddressing.W3CEndpointReference$Address 
> javax.xml.ws.wsaddressing.W3CEndpointReference.address
>   at 
> com.google.appengine.runtime.Request.process-44627206b54ccbe5(Request.java)
>   at 
> com.sun.xml.bind.v2.runtime.reflect.Accessor$FieldReflection.(Accessor.java:243)
>   at 
> com.sun.xml.bind.AccessorFactoryImpl.createFieldAccessor(AccessorFactoryImpl.java:66)
>   at 
> com.sun.xml.bind.v2.model.impl.RuntimeClassInfoImpl.createFieldSeed(RuntimeClassInfoImpl.java:252)
>   at 
> com.sun.xml.bind.v2.model.impl.RuntimeClassInfoImpl.createFieldSeed(RuntimeClassInfoImpl.java:81)
>   at 
> com.sun.xml.bind.v2.model.impl.ClassInfoImpl.findFieldProperties(ClassInfoImpl.java:405)
>   at 
> com.sun.xml.bind.v2.model.impl.ClassInfoImpl.getProperties(ClassInfoImpl.java:308)
>   at 
> com.sun.xml.bind.v2.model.impl.RuntimeClassInfoImpl.getProperties(RuntimeClassInfoImpl.java:176)
>   at 
> com.sun.xml.bind.v2.model.impl.ModelBuilder.getClassInfo(ModelBuilder.java:243)
>   at 
> com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:100)
>   at 
> com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:81)
>   at 
> com.sun.xml.bind.v2.model.impl.ModelBuilder.getClassInfo(ModelBuilder.java:209)
>   at 
> com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:95)
>   at 
> com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:81)
>   at 
> com.sun.xml.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:315)
>   at 
> com.sun.xml.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:330)
>   at 
> com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:466)
>   at 
> com.sun.xml.bind.v2.runtime.JAXBContextImpl.(JAXBContextImpl.java:302)
>   at 
> com.sun.xml.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1140)
>   at 
> com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:154)
>   at 
> com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:121)
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:253)
>   at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:240)
>   at javax.xml.bind.ContextFinder.find(ContextFinder.java:453)
>   at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:637)
>   at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:584)
>   at com.sun.xml.ws.spi.ProviderImpl$2.run(ProviderImpl.java:220)
>   at com.sun.xml.ws.spi.ProviderImpl$2.run(ProviderImpl.java:218)
>   at java.security.AccessController.doPrivileged(AccessController.java:34)
>   at 
> com.sun.xml.ws.spi.ProviderImpl.getEPRJaxbContext(ProviderImpl.java:217)
>   at com.sun.xml.ws.spi.ProviderImpl.(ProviderImpl.java:88)
>   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>   at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
>   at 
> sun.refl

Re: How to authenticate anyone ADWORDS API OAuth2 PHP

2013-12-11 Thread Christian Gibbs
Thank you for your continued support.

I figures this out this morning.

Once I pull the account I want to view,

I use 

$user->SetClientCustomerId( $account_id );

I can get it from the accountId of the campaign object for example.




Also I realized, my initial problem with USER_DENIED was that since I didnt 
update the Auth.ini, I was logging in ok but the logged in user was trying 
to access the Account of the MCC who owns the API access.

So instead of the User accessing their data, they were trying to access the 
MCCs data.

I had to remove the clientId from the Auth.ini and that made it work.



I just wanted to post this, I figure someone may find it helpful for 
pulling accounts under and MCC.


function getAccounts(AdWordsUser $user)
{
 
$managedCustomerService =
   $user->GetService('ManagedCustomerService', ADWORDS_VERSION);
 
 $selector = new Selector();
  $selector->fields = array('CustomerId','Name');
  $selector->ordering[] = new OrderBy('Name', 'ASCENDING');

 
 
 $selector->paging = new Paging(0, AdWordsConstants::RECOMMENDED_PAGE_SIZE);
 
// $page = $managedCustomerService->get($selector);
 
  
 
 $accounts = array();
 
  do {
// Make the get request.
$page = $managedCustomerService->get($selector);
  // Display results.
if (isset($page->entries)) {
   
  return $page->entries;
  
} else {
return array();
}

// Advance the paging index.
$selector->paging->startIndex += AdWordsConstants::RECOMMENDED_PAGE_SIZE;
  } while ($page->totalNumEntries > $selector->paging->startIndex);
 }





On Tuesday, December 10, 2013 8:52:35 PM UTC-5, Paul Matthews (AdWords API 
Team) wrote:
>
> The clientCustomerId is the identifier for the account you wish to access. 
> You need to specify this in the AdWordsUser to access that account.
>
> The OAuth2 layer is purely to permit access, the clientCustomerId 
> specifieswhich
>  sub account you're accessing.
>
> For more information on this please read the 
> README
> .
>
> Regards,
>
> - Paul, AdWords API Team.
>
> On Tuesday, 10 December 2013 12:58:26 UTC-8, Christian Gibbs wrote:
>>
>> By the way, your video helped. Because I didnt know there was a new 
>> Auth.ini file.
>>
>> Now Im getting this error.
>>
>> The client customer ID must be specified for report downloads.'
>>
>>
>> When I run the campaign service, I can do that and view all the campaigns 
>> but I cannot download the reports because I dont have the clientCustomerId.
>>
>>
>>
>> How is this suppose to work when using OAuth2?
>>
>>
>> I have a refresh token. Everything is working ok, when just viewing the 
>> campaigns but not for downloading reports. The Id is required.
>>
>>
>> Any idea?
>>
>>
>> Thanks
>>
>>
>>
>>
>>
>> On Tuesday, December 10, 2013 2:50:53 PM UTC-5, Christian Gibbs wrote:
>>>
>>> I GOT IT!
>>>
>>>
>>>
>>> After getting the ?code=   from the URL
>>>
>>>
>>> $url = "https://accounts.google.com/o/oauth2/token";;
>>> $params = array(
>>> "code" => $authCode,
>>> "client_id" => $clientId,
>>> "client_secret" => $clientSecret,
>>> "redirect_uri" => $callbackUrl,
>>> "grant_type" => "authorization_code"
>>> );
>>>  
>>> $curl = curl_init();
>>> curl_setopt($curl, CURLOPT_URL, $url);
>>> curl_setopt($curl, CURLOPT_HEADER, false);
>>> curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
>>> curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
>>> curl_setopt($curl, CURLOPT_POST, true);
>>> curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
>>> curl_setopt($curl, CURLOPT_ENCODING, "");
>>> $curlData = curl_exec($curl);
>>> curl_close($curl);
>>>  $result = json_decode ($curlData);
>>> print_r( $result );
>>>  
>>>  $access_token = $result->access_token;
>>>
>>>
>>>
>>> $user = new AdWordsUser();
>>>  $user->SetOAuth2Info(array(
>>> "client_id" => $clientId,
>>> "client_secret" => $clientSecret,
>>> "access_token" => $access_token,
>>> "refresh_token" => ""
>>> ));
>>>
>>> I save the Auth Info and I was able to pull the other account data!
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Tuesday, December 10, 2013 11:33:29 AM UTC-5, Christian Gibbs wrote:

 The OAuth login works fine, when I login myself. I can pull the data. 
 But when I use another google account of mine I get the authorization 
 error.

 I need to achieve this. Please dont say this is the result because the 
 account is unlinked. Please give me some direction on how to achieve this.

 One of your colleague is saying it is possible. 


 On Tuesday, December 10, 2013 11:30:26 AM UTC-5, Christian Gibbs wrote:
>
> I updated everything over like you said with the OAuthHandler class.
>
> One of your staff said this. 
>
>
> Takeshi Hagikura (AdWords API Team)[image: Google Employee] 
> Nov 12
>

Re: keyword id 3000004

2013-12-11 Thread GregT
Okay, thanks, Josh.

To answer your earlier question about how we handle the 300 and 306 
placeholders, those placeholders are only for display campaign 
functionality.  We use the keyword report only for search campaign data and 
use other reports to gather the display campaign data -- so we don't end up 
downloading these other placeholders through this report.

Thanks again,
Greg

On Wednesday, December 4, 2013 12:39:24 PM UTC-6, Josh Radcliff (AdWords 
API Team) wrote:
>
> Hi Greg,
>
> I've confirmed that the placeholder IDs (30x) will always be reported 
> as active (by design) since they are a special case.  These keyword IDs 
> represent an aggregation of keywords, display keywords, etc., so they won't 
> have values that cannot be aggregated, such as Quality Score.
>
> Hope that clears things up.  Let me know if you still have additional 
> questions.
>
> Regards,
> Josh, AdWords API Team
>
> On Wednesday, December 4, 2013 9:23:43 AM UTC-5, Josh Radcliff (AdWords 
> API Team) wrote:
>>
>> Hi Greg,
>>
>> Thanks for confirming that this was run for ALL_TIME - that explains why 
>> you saw the old 304 ID.  Regarding the status of that Keyword, my 
>> suspicion is that since it is a universal placeholder ID like 300 
>> and 
>> 306,
>>  
>> the concept of a status doesn't really apply, or rather that it will always 
>> be ACTIVE.  I'm looking to confirm this though and will get back to you.
>>
>> I would be curious to know how you handle the 300 and 306 
>> placeholder IDs, or have you not encountered those yet?
>>
>> Cheers,
>> Josh, AdWords API Team
>>
>> On Monday, December 2, 2013 4:38:18 PM UTC-5, GregT wrote:
>>>
>>> Hi, Josh.
>>>
>>> My apologies -- I posted about two different keyword performance report 
>>> issues on the same day here, and got some of the specifics of this one 
>>> confused with the other.  I looked through our logs to verify... the 
>>> purpose of this particular report was to just get structure -- i.e. get the 
>>> attributes of all keywords -- so it was run for ALL_TIME, and did not 
>>> include anything but attribute fields -- 
>>> namely, KeywordMatchType, KeywordText, DestinationUrl, IsNegative, 
>>> QualityScore, MaxCpc, ApprovalStatus, AdGroupName, FirstPageCpc, Status, 
>>> AdGroupId, and Id.  The campaign ids were what I sent over email, along 
>>> with 23 additional campaigns - I can send those ids to you as well, if you 
>>> need them.  Everything else should be as I posted or emailed.  
>>>
>>> Note that the keyword with the id 304 was returned as having an 
>>> active status (so we tried to process it and store it locally, which 
>>> failed, since the fields like approval status, quality score, etc., did not 
>>> have real values).  If it is deprecated, I wouldn't expect it to be 
>>> returned as an active keyword?
>>>
>>> Sorry for the prior wrong information.
>>> Thanks,
>>> Greg
>>>
>>>
>>> On Monday, December 2, 2013 11:33:00 AM UTC-6, Josh Radcliff (AdWords 
>>> API Team) wrote:

 Hi Greg,

 Thanks for the additional info.  Is it possible that you ran the 
 reports for *2010* instead of *2013*?  The deprecated 304 value 
 does appear on reports for that old time frame, but not after.

 Cheers,
 Josh, AdWords API Team

 On Tuesday, November 26, 2013 4:46:31 PM UTC-5, GregT wrote:
>
> Hi, Josh.
>
> Unfortunately, I don't have access to that particular account anymore, 
> so I don't know if it's still happening.  I've sent you the customer id, 
> campaign ids, and date range via email previously.  The rest of the info: 
> this is for the keyword performance report, in GZIPPED_CSV format, with 
> the 
> fields AdGroupId, AdGroupName, AverageCpc, AveragePosition, CampaignId, 
> CampaignName, Cost, Clicks, Impressions, Date, Id, KeywordMatchType, 
> MaxCpc, KeywordText, AdNetworkType1, Device, QualityScore, Conversions, 
> ConversionsManyPerClick, and TotalConvValue, with returnMoneyInMicros set 
> to true, using v201309 of the API.  We last ran this report Nov 19 and 
> saw 
> this then, but haven't run it since and, as I said, can't anymore at the 
> moment.  We probably ran the report 5 or 6 times that day, and saw it 
> each 
> time.
>
> Thanks,
> Greg
>
> On Monday, November 25, 2013 9:54:25 AM UTC-6, Josh Radcliff (AdWords 
> API Team) wrote:
>>
>> Hi Greg,
>>
>> Thanks for sending over the additional details.  I've tried to 
>> reproduce that behavior but I'm not seeing 304 or 
>> "AutomaticKeywords" 
>> in the results.
>>
>>1. Could you send over the full report definition you are using 
>>so I can replicate the request in its entirety?
>>2. Are you still seeing this behavior today?  If not, could you 
>>let me know the dat

Re: "calls from ads" conversion casing

2013-12-11 Thread GregT
Hi, Paul.

Any update on this?

Thanks,
Greg

On Tuesday, November 26, 2013 3:36:56 PM UTC-6, GregT wrote:
>
> Hi, Paul.
>
> I sent you an email with the information.
>
> Thanks,
> Greg
>
> On Monday, November 25, 2013 5:40:55 AM UTC-6, Paul Matthews (AdWords API 
> Team) wrote:
>>
>> Hi Greg,
>>
>> Can you provide us with an example response from the API (keeping to our 
>> forum 
>> rules 
>> about 
>> including sensitive information)? I'm unaware of any lowercase filters 
>> applied to reports - they should be returned in the same case as they're 
>> submitted.
>>
>> Regards,
>>
>> - Paul, AdWords API Team.
>>
>> On Friday, 22 November 2013 21:19:38 UTC, GregT wrote:
>>>
>>> Anyone from Google able to give information on whether this is a bug or 
>>> is expected to have different casing of the same conversion tracker 
>>> returned in different reports?
>>>
>>> Thanks in advance,
>>> Greg
>>>
>>> On Wednesday, November 20, 2013 11:17:57 AM UTC-6, GregT wrote:

 Hi,

 As talked about in 
 https://support.google.com/adwords/answer/2454052?hl=en, Google 
 creates a "calls from ads" conversion tracker to track conversions from 
 click-to-call ads using Google forwarding numbers.  For a particular 
 client 
 (might be happening with others too, not sure), downloading conversion 
 data 
 using reports is yielding inconsistency in the ConversionTypeName of 
 the conversion, depending on the report.  In this particular case, the 
 account performance report is returning "Calls from ads" as the name of 
 the 
 conversion type, whereas the keyword performance report is returning 
 "calls 
 from ads" (i.e. all lowercase).  The UI shows "Calls from ads" as the name.

 We match up conversions in reports by their name, since almost all of 
 the reports unfortunately do not expose the conversion tracker id (the 
 account performance report is one of the few that does, but the keyword 
 performance report doesn't) -- and since the names aren't identical, that 
 has led to issues matching up the conversions.  We haven't seen this with 
 any other conversion type - the case is the same across all the reports we 
 use.  Is this a bug on Google's end, or should we expect that the names of 
 conversion trackers are case insensitive and can change across different 
 reports (even though we've never seen this before)?

 Thanks,
 Greg

>>>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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.


Connect Python Client Library and Api Adwords

2013-12-11 Thread Mario Murias
Hi,

I'm new in python and google app engine, and I'm trying to learn to connect 
with the Adwords API using the Python client library for this website :
https://developers.google.com/adwords/api/docs/clientlibraries?hl=es

So far I have not got any positive result , because, for example , if I 
agree to Code Examples , not sure where to set my credentials to access the 
Adwords Api .

I am trying to run the example in the README the following link:
https://github.com/googleads/googleads-python-lib/blob/master/adspygoogle/adwords/README?hl=en
In step 4 , I need the following information :
 - OAuth 2.0 token refresh
 - User agent
 - Developer token

But once done step 4 . where do I can continue ?

I just need a push to get connect to the API from any small example program 
. I have Google Adwords account , but not sure if I have to use OAuth2 , 
Test Google Account or other method of access to the API.

Any help is welcome .
Greetings and thanks in advance .
Mario

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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.


excluding placements / negative criteria - by Mobile application

2013-12-11 Thread Berry Tsakala
Few weeks ago i asked how to exclude a placement.
( I solved it, and the discussion is here  
https://groups.google.com/forum/#!topic/adwords-api/Tw6VyUasa7I )

Now I want to exclude a *Mobile App.*

*(The questions are at the end of the post)*


in the UI, I see all sorts of placements: urls, mobile apps (and maybe 
others?)
A mobile app often looks like "*mobile::2-com.berry,tsakala*".

If I try to exclude by placementUrl: placement='
*mobile::2-com.berry,tsakala'* I receive an *error *from google API:
[CriterionError.INVALID_FORMAT_FOR_PLACEMENT_URL @ 
operations[0].operand.criterion.url; 
trigger:'mobileapp::2-ix.com.android.virtualwalkietalkie']

So I tried to follow the documentation:
https://developers.google.com/adwords/api/docs/reference/v201306/CampaignCriterionService.
*NegativeCampaignCriterion*
* -->  *
https://developers.google.com/adwords/api/docs/reference/v201306/CampaignCriterionService.
*MobileApplication*

There's "xsi_type = 'MobileApplication'" But 

   - it appears to be "beta" <--- what does "Beta" mean in this context?
   - if I try to use it anyway, i receive this error:
   *[BetaError.BETA_FEATURE @ operations[0].operand.criterion]*
   



Questions:

   1. Is there *ANOTHER way *of excluding a specific *mobile app *via API?
   2. is there a way to try the *Beta *API ?
   3. Am I doing something wrong ? :)


The Adwords API *version *I'm using is *v201306  *(same as mentioned in the 
mobileApplication docs)
I'm using Python, if it matters.
This is my current code:

placement_url = "*mobileapp::2-com.berry,tsakala*"
placement_url = placement_url.replace('mobileapp::', "")
operations = [ {
'operator': 'ADD',
'operand': {
'type': 'NegativeCampaignCriterion',
'campaignId': campaign_id,
'criterion': {
'xsi_type': 'MobileApplication',  
'appId': placement_url,
},
}
} ]


-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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.