Hi,

You are connecting to the v13 CampaignService, which has been sunset.
You need to make calls to v200909 CampaignService instead. So your
code needs to be something like:

string authToken = GetAuthToken();
      string requestXml = string.Format(@"
      <?xml version='1.0' encoding='utf-8'?>
<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/
v200909'>
                        <authToken>{0}</authToken>
                        <clientEmail>{1}</clientEmail>
                        <developerToken>{2}</developerToken>
                        <userAgent>{3}</userAgent>
                </RequestHeader>
        </soap:Header>
        <soap:Body>
                <mutate 
xmlns='https://adwords.google.com/api/adwords/cm/v200909'>
                        <operations>
                                <operator>ADD</operator>
                                <operand>
                                        <name>Interplanetary Cruise 
#1280830394855.77</name>
                                        <status>PAUSED</status>
                                        <budget>
                                                <period>DAILY</period>
                                                <amount>
                                                        
<microAmount>50000000</microAmount>
                                                </amount>
                                                
<deliveryMethod>STANDARD</deliveryMethod>
                                        </budget>
                                        <biddingStrategy xsi:type='ManualCPC'/>
                                </operand>
                        </operations>
                </mutate>
        </soap:Body>
</soap:Envelope>",
           authToken, "client_1+my-gmail-email",
          "my-gmail-email++USD", "somewords").Trim();
      WebRequest webRequest = HttpWebRequest.Create(
          "https://adwords-sandbox.google.com/api/adwords/cm/v200909/
CampaignService");
      webRequest.Method = "POST";
      webRequest.ContentType = "text/xml; charset=utf-8";
      webRequest.Headers.Add("SOAPAction", "");
      byte[] postBytes = Encoding.UTF8.GetBytes(requestXml);
      webRequest.ContentLength = postBytes.Length;
      using (Stream strmReq = webRequest.GetRequestStream()) {
        strmReq.Write(postBytes, 0, postBytes.Length);
      }
      try {
        WebResponse response = webRequest.GetResponse();
      } catch (WebException ex) {
        throw new ApplicationException("Could not make Api call.",
ex);
      }

It should be easier to use the .NET client library available from
http://code.google.com/p/google-api-adwords-dotnet/, so is there any
particular reason why you wish to POST raw xmls instead?

Cheers,
Anash P. Oommen,
AdWords API Advisor.

On Aug 4, 2:27 pm, knuzich <[email protected]> wrote:
> tell me please where is mistake?  i'am trying create sandbox campaign
> in .NET
> instead of "my-google-email" i enter my real email, "my-google-
> password" replaced by my real password.
> It is all.  webRequest.GetResponse()  return error  500 ("inner server
> error")
>
> public static void CreateCampaign()
>     {
>         //https://sandbox.google.com/api/adwords/v13/CampaignService?
> wsdl
>         //https://sandbox.google.com/api/adwords/v13
>         //https://adwords.google.com/api/adwords/cm/v200909
>         string authToken = GetAuthToken();
>         string requestXml = string.Format(@"
>       <?xml version='1.0' encoding='utf-8'?>
>       <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://sandbox.google.com/api/adwords/
> v13'>
>             <applicationToken>{0}</applicationToken>
>             <authToken>{1}</authToken>
>             <clientEmail>{2}</clientEmail>
>             <developerToken>{3}</developerToken>
>             <userAgent>{4}</userAgent>
>           </RequestHeader>
>         </soap:Header>
>         <soap:Body>
>           <mutate xmlns='https://sandbox.google.com/api/adwords/v13'>
>             <operations>
>               <operator>ADD</operator>
>               <operand>
>                 <name>Interplanetary Cruise#111</name>
>                 <status>PAUSED</status>
>                 <budget>
>                   <period>DAILY</period>
>                   <amount>
>                     <microAmount>50000000</microAmount>
>                   </amount>
>                   <deliveryMethod>STANDARD</deliveryMethod>
>                 </budget>
>                 <biddingStrategy xsi:type='ManualCPC' />
>               </operand>
>             </operations>
>           </mutate>
>         </soap:Body>
>       </soap:Envelope>",
>              "", authToken, "",
>             "my-google-email++USD", "somewords").Trim();
>
>         WebRequest webRequest = HttpWebRequest.Create(
>             "https://sandbox.google.com/api/adwords/v13/
> CampaignService");
>         webRequest.Method = "POST";
>         webRequest.ContentType = "text/xml; charset=utf-8";
>         webRequest.Headers.Add("SOAPAction", "");
>         byte[] postBytes = Encoding.UTF8.GetBytes(requestXml);
>         webRequest.ContentLength = postBytes.Length;
>
>         using (Stream strmReq = webRequest.GetRequestStream())
>         {
>             strmReq.Write(postBytes, 0, postBytes.Length);
>         }
>         try
>         {
>             WebResponse response = webRequest.GetResponse();
>
>         }
>         catch (WebException ex)
>         {
>             throw new ApplicationException("Could not make Api call.",
> ex);
>         }
>     }
>
> Here GetAuthToken() is
>
> private static string GetAuthToken()
>     {
>         WebRequest webRequest = 
> HttpWebRequest.Create("https://www.google.com/accounts/ClientLogin";);
>         webRequest.Method = "POST";
>         webRequest.ContentType = "application/x-www-form-urlencoded";
>
>         string postParams =
>             "accountType=" + HttpUtility.UrlEncode("GOOGLE") +
>             "&Email=" + HttpUtility.UrlEncode("my-google-email") +
>             "&Passwd=" + HttpUtility.UrlEncode("my-google-password") +
>             "&service=" + HttpUtility.UrlEncode("adwords") +
>             "&source=" + HttpUtility.UrlEncode(string.Format("{0}-{1}-
> {2}", "YOUR_COMPANY_NAME",
>                 "YOUR_APP_NAME", "YOUR_VERSION_ID"));
>
>         byte[] postBytes = Encoding.UTF8.GetBytes(postParams);
>         webRequest.ContentLength = postBytes.Length;
>
>         using (Stream strmReq = webRequest.GetRequestStream())
>         {
>             strmReq.Write(postBytes, 0, postBytes.Length);
>         }
>
>         string retVal = "";
>         try
>         {
>             WebResponse response = webRequest.GetResponse();
>
>             using (StreamReader reader = new
> StreamReader(response.GetResponseStream()))
>             {
>                 string sResponse = reader.ReadToEnd();
>                 string[] splits = sResponse.Split('\n');
>                 foreach (string split in splits)
>                 {
>                     string[] subsplits = split.Split('=');
>                     if (subsplits.Length >= 2 && subsplits[0] ==
> "Auth")
>                     {
>                         retVal = subsplits[1];
>                     }
>                 }
>             }
>         }
>         catch (WebException ex)
>         {
>             throw new ApplicationException("Could not generate auth
> token.", ex);
>         }
>         return retVal;
>     }
>
> what is wrong here?

-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and discussion group:
http://adwordsapi.blogspot.com
http://groups.google.com/group/adwords-api
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

You received this message because you are subscribed to the Google
Groups "AdWords API Forum" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/adwords-api?hl=en

Reply via email to