<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://community.microsoftadvertising.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">adCenter API Blog for Developers</title><subtitle type="html" /><id>http://community.microsoftadvertising.com/blogs/api/atom.aspx</id><link rel="alternate" type="text/html" href="http://community.microsoftadvertising.com/blogs/api/default.aspx" /><link rel="self" type="application/atom+xml" href="http://community.microsoftadvertising.com/blogs/api/atom.aspx" /><generator uri="http://communityserver.org" version="4.1.40407.4157">Community Server</generator><updated>2010-02-01T09:51:00Z</updated><entry><title>Microsoft adCenter API Top 10 Viewed Topics for February 2010</title><link rel="alternate" type="text/html" href="/blogs/api/archive/2010/03/08/microsoft-adcenter-api-top-10-viewed-topics-for-february-2010.aspx" /><id>/blogs/api/archive/2010/03/08/microsoft-adcenter-api-top-10-viewed-topics-for-february-2010.aspx</id><published>2010-03-08T22:44:00Z</published><updated>2010-03-08T22:44:00Z</updated><content type="html">&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Here are the most viewed adCenter API topics on MSDN for February 2010. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa983013.aspx"&gt;Microsoft adCenter API&lt;/a&gt; &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb735029.aspx"&gt;United States&lt;/a&gt; &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb671719.aspx"&gt;Microsoft adCenter Campaign Management API Reference&lt;/a&gt; &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc817316.aspx"&gt;Campaign Management Service Operations&lt;/a&gt; &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd797137.aspx"&gt;California (United States)&lt;/a&gt; &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd796917.aspx"&gt;Alabama (United States)&lt;/a&gt; &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee703993.aspx"&gt;Microsoft adCenter Campaign Management API&lt;/a&gt; &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb126207.aspx"&gt;WSDL Overview&lt;/a&gt; &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb672087.aspx"&gt;KeywordPerformanceReportColumn Value Set&lt;/a&gt; &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb672002.aspx"&gt;Microsoft adCenter API Programming Reference&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Thank you. &lt;/p&gt;
&lt;p&gt;Walter Poupore &lt;br /&gt;Developer Content Manager &lt;br /&gt;Microsoft&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://community.microsoftadvertising.com/aggbug.aspx?PostID=17598" width="1" height="1"&gt;</content><author><name>Walter Poupore - MSFT</name><uri>http://community.microsoftadvertising.com/members/Walter-Poupore-_2D00_-MSFT/default.aspx</uri></author><category term="Documentation" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/Documentation/default.aspx" /><category term="adCenter API" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/adCenter+API/default.aspx" /><category term="community" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/community/default.aspx" /><category term="Categories:Advertisers:adCenter API:Documentation" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/Categories_3A00_Advertisers_3A00_adCenter+API_3A00_Documentation/default.aspx" /><category term="categories" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories/default.aspx" /><category term="categories:advertisers:adcenter api" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_advertisers_3A00_adcenter+api/default.aspx" /><category term="advertisers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/advertisers/default.aspx" /><category term="categories:advertisers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_advertisers/default.aspx" /><category term="announcements" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/announcements/default.aspx" /><category term="release notes" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/release+notes/default.aspx" /><category term="categories:featured" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_featured/default.aspx" /><category term="categories:featured:community" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_featured_3A00_community/default.aspx" /><category term="featured" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/featured/default.aspx" /><category term="categories:developers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers/default.aspx" /><category term="developers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/developers/default.aspx" /><category term="categories:developers:adcenter api" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers_3A00_adcenter+api/default.aspx" /><category term="categories:developers:adcenter api:announcements" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers_3A00_adcenter+api_3A00_announcements/default.aspx" /><category term="categories:developers:adcenter api:release notes" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers_3A00_adcenter+api_3A00_release+notes/default.aspx" /></entry><entry><title>CustomerID Now Available in AdCenter Web UI</title><link rel="alternate" type="text/html" href="/blogs/api/archive/2010/02/25/customerid-now-available-in-adcenter-web-ui.aspx" /><id>/blogs/api/archive/2010/02/25/customerid-now-available-in-adcenter-web-ui.aspx</id><published>2010-02-25T17:17:00Z</published><updated>2010-02-25T17:17:00Z</updated><content type="html">&lt;p&gt;It is now possible to view your CustomerID in the Microsoft adCenter web user interface. The CustomerID is an identifier that is used in some API calls. To view your CustomerID in the web UI, click on the Accounts &amp;amp; Billing tab after logging in. Then click on the Company Information sub-tab. You will then see a value for the Customer ID value.&lt;br /&gt;&lt;br /&gt;Jeff Dillon, API Support&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://community.microsoftadvertising.com/aggbug.aspx?PostID=16743" width="1" height="1"&gt;</content><author><name>Jeff Dillon - MSFT</name><uri>http://community.microsoftadvertising.com/members/Jeff-Dillon-_2D00_-MSFT/default.aspx</uri></author><category term="adCenter API" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/adCenter+API/default.aspx" /><category term="community" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/community/default.aspx" /><category term="categories" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories/default.aspx" /><category term="categories:advertisers:adcenter api" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_advertisers_3A00_adcenter+api/default.aspx" /><category term="advertisers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/advertisers/default.aspx" /><category term="categories:advertisers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_advertisers/default.aspx" /><category term="Categories:Advertisers:adCenter" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/Categories_3A00_Advertisers_3A00_adCenter/default.aspx" /><category term="categories:featured" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_featured/default.aspx" /><category term="categories:featured:community" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_featured_3A00_community/default.aspx" /><category term="featured" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/featured/default.aspx" /><category term="adcenter" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/adcenter/default.aspx" /><category term="categories:developers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers/default.aspx" /><category term="developers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/developers/default.aspx" /><category term="categories:developers:adcenter api" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers_3A00_adcenter+api/default.aspx" /><category term="categories:developers:engineering and development" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers_3A00_engineering+and+development/default.aspx" /><category term="engineering and development" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/engineering+and+development/default.aspx" /></entry><entry><title>Setting Default Bid Values in adCenter API</title><link rel="alternate" type="text/html" href="/blogs/api/archive/2010/02/24/setting-default-bid-values.aspx" /><id>/blogs/api/archive/2010/02/24/setting-default-bid-values.aspx</id><published>2010-02-24T21:20:00Z</published><updated>2010-02-24T21:20:00Z</updated><content type="html">&lt;p&gt;We occasionally get questions around the new bid behavior introduced in API Version 6. &lt;/p&gt;
&lt;p&gt;Common questions include:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;ldquo;How do I remove a match type?&amp;rdquo;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;ldquo;We updated a keyword bid to zero; we thought we would see a default bid value in the web UI?&amp;rdquo;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;ldquo;We never bid for Exact match, so why are we showing .05 cents as the bid in the web UI? An Exact bid doesn&amp;rsquo;t show up when we retrieve the same keyword bid values via the API.&amp;rdquo;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;So I thought I would take the time to clear things up. Basically, keep in mind the following rules:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Setting a keyword bid amount to &amp;ldquo;zero&amp;rdquo; means you do not wish to bid on that match type, hence it is not represented in the UI.&amp;nbsp; So explicitly setting to zero removes a match type.&lt;/li&gt;
&lt;li&gt;Passing a &amp;ldquo;null&amp;rdquo; value means you DO wish to bid on that match type and the bid amount will be determined by the default ad group bid. The default ad group bid cannot be zero, and its default value is 5 cents. So &amp;ldquo;null = inherit&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Passing a non-null, non-zero value for a bid amount will set the bid amount to the value that has been defined.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There is information on MSDN &lt;a href="http://msdn.microsoft.com/en-us/library/bb671833.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Bid Amounts&lt;/h3&gt;
&lt;p&gt;When adding a new keyword, you specify to use the default ad group bid by passing null for the bid object. Otherwise, pass the keyword bid amount in the &lt;code&gt;Amount&lt;/code&gt; element of the &lt;a href="http://msdn.microsoft.com/en-us/library/dd797130.aspx"&gt;Bid&lt;/a&gt; object.&lt;/p&gt;
&lt;p&gt;When updating an existing keyword, you specify to use the default ad group bid by passing null for the &lt;code&gt;Amount&lt;/code&gt; element of the &lt;a href="http://msdn.microsoft.com/en-us/library/dd797130.aspx"&gt;Bid&lt;/a&gt; object. Passing null for the bid object in this case causes the existing bid amount to not be changed. Passing a valid value in the &lt;code&gt;Amount&lt;/code&gt; element of the &lt;a href="http://msdn.microsoft.com/en-us/library/dd797130.aspx"&gt;Bid&lt;/a&gt; object causes that bid amount to be updated.&lt;/p&gt;
&lt;p&gt;You can specify up to two decimal places for the &lt;code&gt;BroadMatchBid&lt;/code&gt;, &lt;code&gt;ExactMatchBid&lt;/code&gt;, &lt;code&gt;PhraseMatchBid&lt;/code&gt;, and &lt;code&gt;ContentMatchBid&lt;/code&gt; values.&lt;/p&gt;
&lt;p&gt;For more information, see &lt;a href="http://msdn.microsoft.com/en-us/library/bb414827.aspx"&gt;Bid Amounts&lt;/a&gt; on MSDN.&lt;/p&gt;
&lt;p&gt;I will include an example here. I have set the ad group default bid for Exact to $5. The remaining ad group level bids are left to their default values. At the keyword level, via the API I have set the Broad bid to $2, Phrase bid to zero, and Exact bid to null. As you can see in the web UI screenshot below, the Exact bid is inheriting the ad group value of $5, and shows as non-bolded. The explicitly set $2 Broad bid is showing as bold. The Phrase match type is not displayed in the UI as the keyword value was set to 0, effectively removing this match type.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img height="264" width="645" src="http://community.microsoftadvertising.com/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/api.Images/3463.Bids.JPG" alt="Bids" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Jeff Dillon, API Support&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://community.microsoftadvertising.com/aggbug.aspx?PostID=16700" width="1" height="1"&gt;</content><author><name>Jeff Dillon - MSFT</name><uri>http://community.microsoftadvertising.com/members/Jeff-Dillon-_2D00_-MSFT/default.aspx</uri></author><category term="adCenter API" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/adCenter+API/default.aspx" /><category term="community" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/community/default.aspx" /><category term="categories" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories/default.aspx" /><category term="categories:advertisers:adcenter api" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_advertisers_3A00_adcenter+api/default.aspx" /><category term="advertisers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/advertisers/default.aspx" /><category term="categories:advertisers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_advertisers/default.aspx" /><category term="campaigns" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/campaigns/default.aspx" /><category term="categories:featured" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_featured/default.aspx" /><category term="categories:featured:community" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_featured_3A00_community/default.aspx" /><category term="featured" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/featured/default.aspx" /><category term="categories:developers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers/default.aspx" /><category term="developers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/developers/default.aspx" /><category term="categories:developers:adcenter api" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers_3A00_adcenter+api/default.aspx" /><category term="categories:developers:engineering and development" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers_3A00_engineering+and+development/default.aspx" /><category term="engineering and development" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/engineering+and+development/default.aspx" /><category term="categories:developers:adcenter api:campaigns" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers_3A00_adcenter+api_3A00_campaigns/default.aspx" /></entry><entry><title>How to get the revenue or conversion values using adCenter API?</title><link rel="alternate" type="text/html" href="/blogs/api/archive/2010/02/24/how-to-get-the-revenue-or-conversion-values-using-adcenter-api.aspx" /><id>/blogs/api/archive/2010/02/24/how-to-get-the-revenue-or-conversion-values-using-adcenter-api.aspx</id><published>2010-02-24T17:08:00Z</published><updated>2010-02-24T17:08:00Z</updated><content type="html">&lt;p&gt;Customers have asked for new reports that we currently do not provide via the API. These are excellent requests and this is the kind of feedback we welcome via the community and via support. This helps the product team set future direction for feature development.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Currently, using the keyword performance report, you can retrieve the following:&lt;/p&gt;
&lt;p&gt;ConversionRate - The conversion rate&lt;/p&gt;
&lt;p&gt;Conversions - The number of conversions&lt;/p&gt;
&lt;p&gt;CostPerConversion - The cost per conversion.&lt;/p&gt;
&lt;p&gt;More report values are described here:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb671562.aspx"&gt;http://msdn.microsoft.com/en-us/library/bb671562.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Customers have expressed interest in reports such as PageviewValue, SignupValue, ConversionVAlue, etc. These values are not currently provided in the adCenter API. New features are added regularly so subscribe to the blog or forums for more information about future additions. &lt;/p&gt;
&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;br /&gt;&lt;br /&gt;


&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://community.microsoftadvertising.com/aggbug.aspx?PostID=16678" width="1" height="1"&gt;</content><author><name>Chris Norred - MSFT</name><uri>http://community.microsoftadvertising.com/members/Chris-Norred-_2D00_-MSFT/default.aspx</uri></author><category term="adCenter API" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/adCenter+API/default.aspx" /><category term="Categories:Advertisers:adCenter API:Reporting" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/Categories_3A00_Advertisers_3A00_adCenter+API_3A00_Reporting/default.aspx" /><category term="categories" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories/default.aspx" /><category term="categories:advertisers:adcenter api" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_advertisers_3A00_adcenter+api/default.aspx" /><category term="advertisers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/advertisers/default.aspx" /><category term="categories:advertisers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_advertisers/default.aspx" /><category term="reporting" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/reporting/default.aspx" /><category term="categories:developers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers/default.aspx" /><category term="developers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/developers/default.aspx" /><category term="categories:developers:adcenter api" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers_3A00_adcenter+api/default.aspx" /><category term="categories:developers:engineering and development" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers_3A00_engineering+and+development/default.aspx" /><category term="engineering and development" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/engineering+and+development/default.aspx" /><category term="categories:developers:adcenter api:reporting" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers_3A00_adcenter+api_3A00_reporting/default.aspx" /></entry><entry><title>France has 2 Belvezets, so does the adCenter API</title><link rel="alternate" type="text/html" href="/blogs/api/archive/2010/02/24/france-has-2-belvezets-so-does-the-adcenter-api.aspx" /><id>/blogs/api/archive/2010/02/24/france-has-2-belvezets-so-does-the-adcenter-api.aspx</id><published>2010-02-24T16:55:00Z</published><updated>2010-02-24T16:55:00Z</updated><content type="html">&lt;p&gt;A customer recently asked our API support team: &amp;ldquo;We&amp;rsquo;ve&amp;nbsp; found two ambiguous targets in the MSDN library &lt;a href="http://msdn.microsoft.com/en-us/library/dd797184.aspx"&gt;http://msdn.microsoft.com/en-us/library/dd797184.aspx&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;Belvezet&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Belvezet, Al&amp;egrave;s K FR&lt;/p&gt;
&lt;p&gt;Belv&amp;eacute;zet&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Belv&amp;eacute;zet, Al&amp;egrave;s K FR&lt;/p&gt;
&lt;p&gt;One with an accent and the other without. &lt;/p&gt;
&lt;p&gt;&amp;ldquo;Are they duplicates?&amp;rdquo; &lt;/p&gt;
&lt;p&gt;Not a technical question, of course, but an opportunity to turn to Bing and see what it tells us. &lt;a href="http://www.bing.com/search?q=belvezet&amp;amp;form=QBRE&amp;amp;qs=n&amp;amp;sc=1-6"&gt;http://www.bing.com/search?q=belvezet&amp;amp;form=QBRE&amp;amp;qs=n&amp;amp;sc=1-6&lt;/a&gt; According to Bing, there are two communes named Belvezet in France.&lt;/p&gt;
&lt;p&gt;Belvezet &amp;ndash; no accent &amp;ndash; is in the Loz&amp;egrave;re department, traversed by the river Chassezac. Population 81.&lt;/p&gt;
&lt;p&gt;Belv&amp;eacute;zet &amp;ndash; with accent &amp;ndash; is in the Gard department in southern France. Population 210. &lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s a targeted campaign.&lt;/p&gt;
&lt;p&gt;-Chris&lt;/p&gt;
&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;br /&gt;&lt;br /&gt;


&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://community.microsoftadvertising.com/aggbug.aspx?PostID=16676" width="1" height="1"&gt;</content><author><name>Chris Norred - MSFT</name><uri>http://community.microsoftadvertising.com/members/Chris-Norred-_2D00_-MSFT/default.aspx</uri></author><category term="Documentation" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/Documentation/default.aspx" /><category term="adCenter API" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/adCenter+API/default.aspx" /><category term="community" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/community/default.aspx" /><category term="Categories:Advertisers:adCenter API:Ad Group Targeting" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/Categories_3A00_Advertisers_3A00_adCenter+API_3A00_Ad+Group+Targeting/default.aspx" /><category term="Categories:Advertisers:adCenter API:Targeting" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/Categories_3A00_Advertisers_3A00_adCenter+API_3A00_Targeting/default.aspx" /><category term="categories" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories/default.aspx" /><category term="categories:advertisers:adcenter api" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_advertisers_3A00_adcenter+api/default.aspx" /><category term="advertisers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/advertisers/default.aspx" /><category term="categories:advertisers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_advertisers/default.aspx" /><category term="ad group targeting" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/ad+group+targeting/default.aspx" /><category term="targeting" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/targeting/default.aspx" /><category term="country and region ids" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/country+and+region+ids/default.aspx" /><category term="categories:featured" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_featured/default.aspx" /><category term="categories:featured:community" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_featured_3A00_community/default.aspx" /><category term="featured" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/featured/default.aspx" /><category term="categories:developers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers/default.aspx" /><category term="developers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/developers/default.aspx" /><category term="categories:developers:adcenter api" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers_3A00_adcenter+api/default.aspx" /><category term="categories:developers:adcenter api:targeting" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers_3A00_adcenter+api_3A00_targeting/default.aspx" /><category term="categories:developers:engineering and development" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers_3A00_engineering+and+development/default.aspx" /><category term="engineering and development" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/engineering+and+development/default.aspx" /></entry><entry><title>Microsoft adCenter API Top 10 Viewed Topics for January 2010</title><link rel="alternate" type="text/html" href="/blogs/api/archive/2010/02/23/microsoft-adcenter-api-top-10-viewed-topics-for-january-2010.aspx" /><id>/blogs/api/archive/2010/02/23/microsoft-adcenter-api-top-10-viewed-topics-for-january-2010.aspx</id><published>2010-02-23T21:32:00Z</published><updated>2010-02-23T21:32:00Z</updated><content type="html">&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Here are the most viewed adCenter API topics on MSDN for January 2010. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa983013.aspx"&gt;Microsoft adCenter API&lt;/a&gt; &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb672002.aspx"&gt;Microsoft adCenter API Programming Reference&lt;/a&gt; &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd796925.aspx"&gt;Microsoft adCenter Web Service Addresses&lt;/a&gt; &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc949801.aspx"&gt;Cashback Rebate Program&lt;/a&gt; &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa982823.aspx"&gt;Introducing Microsoft adCenter API&lt;/a&gt;&amp;nbsp; &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb126207.aspx"&gt;WSDL Overview&lt;/a&gt; &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb671736.aspx"&gt;What&amp;rsquo;s New in the SDK for the Microsoft adCenter API&lt;/a&gt;&amp;nbsp; &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa983143.aspx"&gt;Developing with the Microsoft adCenter API&lt;/a&gt; &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa983138.aspx"&gt;Getting Started with the Microsoft adCenter API&lt;/a&gt; &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb126214.aspx"&gt;Microsoft adCenter API Overview&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Thank you. &lt;/p&gt;
&lt;p&gt;Walter Poupore &lt;br /&gt;Developer Content Manager &lt;br /&gt;Microsoft&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://community.microsoftadvertising.com/aggbug.aspx?PostID=16642" width="1" height="1"&gt;</content><author><name>Walter Poupore - MSFT</name><uri>http://community.microsoftadvertising.com/members/Walter-Poupore-_2D00_-MSFT/default.aspx</uri></author><category term="Documentation" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/Documentation/default.aspx" /><category term="adCenter API" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/adCenter+API/default.aspx" /><category term="community" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/community/default.aspx" /><category term="Categories:Advertisers:adCenter API:Documentation" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/Categories_3A00_Advertisers_3A00_adCenter+API_3A00_Documentation/default.aspx" /><category term="categories" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories/default.aspx" /><category term="categories:advertisers:adcenter api" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_advertisers_3A00_adcenter+api/default.aspx" /><category term="advertisers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/advertisers/default.aspx" /><category term="categories:advertisers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_advertisers/default.aspx" /><category term="categories:featured" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_featured/default.aspx" /><category term="categories:featured:community" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_featured_3A00_community/default.aspx" /><category term="featured" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/featured/default.aspx" /><category term="categories:developers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers/default.aspx" /><category term="developers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/developers/default.aspx" /><category term="categories:developers:adcenter api" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers_3A00_adcenter+api/default.aspx" /><category term="categories:developers:engineering and development" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers_3A00_engineering+and+development/default.aspx" /><category term="engineering and development" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/engineering+and+development/default.aspx" /></entry><entry><title>CustomerID is mandatory for campaign level targeting in adCenter API</title><link rel="alternate" type="text/html" href="/blogs/api/archive/2010/02/22/customerid-is-mandatory-for-campaign-level-targeting-in-adcenter-api.aspx" /><id>/blogs/api/archive/2010/02/22/customerid-is-mandatory-for-campaign-level-targeting-in-adcenter-api.aspx</id><published>2010-02-22T21:29:46Z</published><updated>2010-02-22T21:29:46Z</updated><content type="html">&lt;p&gt;Another tip, or FAQ, from our support engineering team: &lt;/p&gt;  &lt;p&gt;Since the release of adCenter API v6, we’ve gotten some questions about the use of CustomerID in getting and setting campaign level targeting.&lt;/p&gt;  &lt;p&gt;“Why is CustomerID mandatory for this API and not for the others?”&lt;/p&gt;  &lt;p&gt;In the version 6 release, targeting was enabled at the campaign-level, and using the object model, the target setting can be refined at the ad group level. Shamit Patel, our program manager for API, explained this well in the blog post on Waterfall Targeting &lt;a href="http://community.microsoftadvertising.com/blogs/api/archive/2009/10/13/adcenter-api-campaign-level-targeting-quot-waterfall-targeting-quot.aspx"&gt;http://community.microsoftadvertising.com/blogs/api/archive/2009/10/13/adcenter-api-campaign-level-targeting-quot-waterfall-targeting-quot.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;One of the advantages when coding is that you can create a single target object, save it in your customer library, and use it across all accounts. This is first feature for which we’ve enabled this model. It should be more efficient, however the CustomerID is required for targeting calls.&lt;/p&gt;  &lt;p&gt;-Chris&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;br /&gt;&lt;br /&gt;

&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://community.microsoftadvertising.com/aggbug.aspx?PostID=16606" width="1" height="1"&gt;</content><author><name>Chris Norred - MSFT</name><uri>http://community.microsoftadvertising.com/members/Chris-Norred-_2D00_-MSFT/default.aspx</uri></author><category term="Categories:Advertisers:adCenter API:Top Issues" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/Categories_3A00_Advertisers_3A00_adCenter+API_3A00_Top+Issues/default.aspx" /><category term="Categories:Advertisers:adCenter API:Targeting" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/Categories_3A00_Advertisers_3A00_adCenter+API_3A00_Targeting/default.aspx" /><category term="categories:advertisers:adcenter api" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_advertisers_3A00_adcenter+api/default.aspx" /><category term="categories:advertisers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_advertisers/default.aspx" /><category term="categories:featured" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_featured/default.aspx" /><category term="categories:featured:community" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_featured_3A00_community/default.aspx" /><category term="categories:developers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers/default.aspx" /><category term="categories:developers:adcenter api" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers_3A00_adcenter+api/default.aspx" /><category term="categories:developers:adcenter api:targeting" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers_3A00_adcenter+api_3A00_targeting/default.aspx" /><category term="categories:developers:engineering and development" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers_3A00_engineering+and+development/default.aspx" /></entry><entry><title>Tip: Spaces around credentials cause adCenter API errors</title><link rel="alternate" type="text/html" href="/blogs/api/archive/2010/02/22/tip-spaces-around-credentials-cause-adcenter-api-errors.aspx" /><id>/blogs/api/archive/2010/02/22/tip-spaces-around-credentials-cause-adcenter-api-errors.aspx</id><published>2010-02-22T21:02:00Z</published><updated>2010-02-22T21:02:00Z</updated><content type="html">&lt;p&gt;I&amp;rsquo;m continuing with our posts on some of the tips shared by our support engineers. These are overlooked steps or easy-to-correct errors that sometimes prompt support questions. As always, if you have followup questions, let us know and I&amp;rsquo;ll research it with the engineering team and report back.&lt;/p&gt;
&lt;p&gt;Be sure to remove the spaces around the credentials in the API calls. Sometimes a space goes unnoticed and this can be a cause for the error: &lt;b&gt;Authentication failed. Either supplied credentials are invalid or the account is inactive.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Sometimes you may see some calls succeed and others fail with the exact same credentials. If you&amp;rsquo;ve inadvertently left a space around the credentials in one call but not the other, this can be the cause.&lt;/p&gt;
&lt;p&gt;For example, check for spaces around the credentials you use in place of the 111...s below:&lt;/p&gt;
&lt;p&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&amp;lt;soapenv:Envelope xmlns:soapenv=&lt;a href="http://schemas.xmlsoap.org/soap/envelope/"&gt;&amp;quot;http://schemas.xmlsoap.org/soap/envelope/&amp;quot;&lt;/a&gt; xmlns:xsd=&lt;a href="http://www.w3.org/2001/XMLSchema"&gt;&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&lt;/a&gt; xmlns:xsi=&lt;a href="http://www.w3.org/2001/XMLSchema-instance"&gt;&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;/a&gt;&amp;gt; &lt;br /&gt;&amp;lt;soapenv:Header&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ns1:ApplicationToken soapenv:actor=&lt;a href="http://schemas.xmlsoap.org/soap/actor/next"&gt;&amp;quot;http://schemas.xmlsoap.org/soap/actor/next&amp;quot;&lt;/a&gt; soapenv:mustUnderstand=&amp;quot;0&amp;quot; xmlns:ns1=&lt;a href="https://adcenter.microsoft.com/v6"&gt;&amp;quot;https://adcenter.microsoft.com/v6&amp;quot;&lt;/a&gt;&amp;gt; &lt;br /&gt;11111111 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ns1:ApplicationToken&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ns2:CustomerAccountId soapenv:actor=&lt;a href="http://schemas.xmlsoap.org/soap/actor/next"&gt;&amp;quot;http://schemas.xmlsoap.org/soap/actor/next&amp;quot;&lt;/a&gt; soapenv:mustUnderstand=&amp;quot;0&amp;quot; xmlns:ns2=&lt;a href="https://adcenter.microsoft.com/v6"&gt;&amp;quot;https://adcenter.microsoft.com/v6&amp;quot;&lt;/a&gt;&amp;gt; &lt;br /&gt;111 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ns2:CustomerAccountId&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ns3:CustomerId soapenv:actor=&lt;a href="http://schemas.xmlsoap.org/soap/actor/next"&gt;&amp;quot;http://schemas.xmlsoap.org/soap/actor/next&amp;quot;&lt;/a&gt; soapenv:mustUnderstand=&amp;quot;0&amp;quot; xmlns:ns3=&lt;a href="https://adcenter.microsoft.com/v6"&gt;&amp;quot;https://adcenter.microsoft.com/v6&amp;quot;&lt;/a&gt;&amp;gt;&lt;/p&gt;
&lt;p&gt;1111 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ns3:CustomerId&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ns4:DeveloperToken soapenv:actor=&lt;a href="http://schemas.xmlsoap.org/soap/actor/next"&gt;&amp;quot;http://schemas.xmlsoap.org/soap/actor/next&amp;quot;&lt;/a&gt; soapenv:mustUnderstand=&amp;quot;0&amp;quot; xmlns:ns4=&lt;a href="https://adcenter.microsoft.com/v6"&gt;&amp;quot;https://adcenter.microsoft.com/v6&amp;quot;&lt;/a&gt;&amp;gt; &lt;br /&gt;11111111 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ns4:DeveloperToken&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ns5:Password soapenv:actor=&lt;a href="http://schemas.xmlsoap.org/soap/actor/next"&gt;&amp;quot;http://schemas.xmlsoap.org/soap/actor/next&amp;quot;&lt;/a&gt; soapenv:mustUnderstand=&amp;quot;0&amp;quot; xmlns:ns5=&lt;a href="https://adcenter.microsoft.com/v6"&gt;&amp;quot;https://adcenter.microsoft.com/v6&amp;quot;&lt;/a&gt;&amp;gt; &lt;br /&gt;11111111 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ns5:Password&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ns6:UserName soapenv:actor=&lt;a href="http://schemas.xmlsoap.org/soap/actor/next"&gt;&amp;quot;http://schemas.xmlsoap.org/soap/actor/next&amp;quot;&lt;/a&gt; soapenv:mustUnderstand=&amp;quot;0&amp;quot; xmlns:ns6=&lt;a href="https://adcenter.microsoft.com/v6"&gt;&amp;quot;https://adcenter.microsoft.com/v6&amp;quot;&lt;/a&gt;&amp;gt; &lt;br /&gt;111_11111 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ns6:UserName&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;-Chris&lt;/p&gt;
&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;br /&gt;&lt;br /&gt;


&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://community.microsoftadvertising.com/aggbug.aspx?PostID=16605" width="1" height="1"&gt;</content><author><name>Chris Norred - MSFT</name><uri>http://community.microsoftadvertising.com/members/Chris-Norred-_2D00_-MSFT/default.aspx</uri></author><category term="Top Issues" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/Top+Issues/default.aspx" /><category term="adCenter API" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/adCenter+API/default.aspx" /><category term="community" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/community/default.aspx" /><category term="Categories:Advertisers:adCenter API:Top Issues" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/Categories_3A00_Advertisers_3A00_adCenter+API_3A00_Top+Issues/default.aspx" /><category term="Categories:Advertisers:adCenter API:Error Handling" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/Categories_3A00_Advertisers_3A00_adCenter+API_3A00_Error+Handling/default.aspx" /><category term="categories" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories/default.aspx" /><category term="categories:advertisers:adcenter api" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_advertisers_3A00_adcenter+api/default.aspx" /><category term="advertisers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/advertisers/default.aspx" /><category term="categories:advertisers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_advertisers/default.aspx" /><category term="error handling" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/error+handling/default.aspx" /><category term="categories:featured" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_featured/default.aspx" /><category term="categories:featured:community" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_featured_3A00_community/default.aspx" /><category term="featured" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/featured/default.aspx" /><category term="categories:developers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers/default.aspx" /><category term="developers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/developers/default.aspx" /><category term="categories:developers:adcenter api" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers_3A00_adcenter+api/default.aspx" /><category term="categories:developers:adcenter api:error handling" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers_3A00_adcenter+api_3A00_error+handling/default.aspx" /></entry><entry><title>adCenter API users: Microsoft, Yahoo! Search Agreement Cleared</title><link rel="alternate" type="text/html" href="/blogs/api/archive/2010/02/17/xxxxxxxxxx.aspx" /><id>/blogs/api/archive/2010/02/17/xxxxxxxxxx.aspx</id><published>2010-02-17T22:14:00Z</published><updated>2010-02-17T22:14:00Z</updated><content type="html">&lt;p&gt;Read the update from Carolyn on the &lt;a href="http://community.microsoftadvertising.com/blogs/advertiser/archive/2010/02/18/microsoft-yahoo-search-agreement-cleared.aspx"&gt;adCenter Blog&lt;/a&gt; and read &lt;a href="http://community.microsoftadvertising.com/blogs/analytics/archive/2010/02/18/thoughts-on-the-microsoft-amp-yahoo-search-alliance.aspx"&gt;Microsoft VP Darren Huston&amp;#39;s Thoughts on the Microsoft and Yahoo! Search Alliance&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;Visit the Search Alliance site at &lt;a href="http://www.searchalliance.com/"&gt;www.searchalliance.com&lt;/a&gt;&amp;nbsp;for answers to FAQs and additional detail.&lt;/p&gt;
&lt;p&gt;Thank you for using the community,&lt;/p&gt;
&lt;p&gt;-Chris&lt;/p&gt;
&lt;p&gt;Community Program Manager&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://community.microsoftadvertising.com/aggbug.aspx?PostID=16452" width="1" height="1"&gt;</content><author><name>Chris Norred - MSFT</name><uri>http://community.microsoftadvertising.com/members/Chris-Norred-_2D00_-MSFT/default.aspx</uri></author><category term="adCenter API" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/adCenter+API/default.aspx" /><category term="community" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/community/default.aspx" /><category term="categories" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories/default.aspx" /><category term="categories:advertisers:adcenter api" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_advertisers_3A00_adcenter+api/default.aspx" /><category term="advertisers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/advertisers/default.aspx" /><category term="categories:advertisers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_advertisers/default.aspx" /><category term="categories:featured" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_featured/default.aspx" /><category term="categories:featured:community" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_featured_3A00_community/default.aspx" /><category term="featured" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/featured/default.aspx" /></entry><entry><title>Use multi-threading to pause more than 100 campaigns</title><link rel="alternate" type="text/html" href="/blogs/api/archive/2010/02/16/use-multi-threading-to-pause-more-than-100-campaigns.aspx" /><id>/blogs/api/archive/2010/02/16/use-multi-threading-to-pause-more-than-100-campaigns.aspx</id><published>2010-02-17T00:51:00Z</published><updated>2010-02-17T00:51:00Z</updated><content type="html">&lt;p&gt;Another tips that comes from our support team: &lt;/p&gt;
&lt;p&gt;The current adCenter API includes a limit on the number of campaigns that can be paused or unpaused at any one time. If this limit is exceeded, it will return the error:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1119 The list of campaign Ids exceeds the limit.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re pausing more than 100 campaigns at one time, you will receive an error such as below:&lt;/p&gt;
&lt;pre&gt;&amp;lt;OperationErrors&amp;gt;&amp;lt;OperationError&amp;gt;&amp;lt;Code&amp;gt;1119&amp;lt;/Code&amp;gt;&amp;lt;Details i:nil=&amp;quot;true&amp;quot;/&amp;gt;&lt;/pre&gt;
&lt;pre&gt;&amp;lt;ErrorCode&amp;gt;CampaignServiceCampaignIdsArrayExceedsLimit&amp;lt;/ErrorCode&amp;gt;&lt;/pre&gt;
&lt;pre&gt;&amp;lt;Message&amp;gt;The list of campaign Ids exceeds the limit.&amp;lt;/Message&amp;gt;&lt;/pre&gt;
&lt;pre&gt;&amp;lt;/OperationError&amp;gt;&amp;lt;/OperationErrors&amp;gt;&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;p&gt;Some customers have asked for an increase in the limit and this is a pending update.&lt;/p&gt;
&lt;p&gt;Meanwhile, the best workaround is to use a multi-threading approach and to pass multiple requests for the pause and resume requirements for your campaigns.&lt;/p&gt;
&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;br /&gt;&lt;br /&gt;


&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://community.microsoftadvertising.com/aggbug.aspx?PostID=16414" width="1" height="1"&gt;</content><author><name>Chris Norred - MSFT</name><uri>http://community.microsoftadvertising.com/members/Chris-Norred-_2D00_-MSFT/default.aspx</uri></author><category term="adCenter API" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/adCenter+API/default.aspx" /><category term="categories" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories/default.aspx" /><category term="categories:advertisers:adcenter api" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_advertisers_3A00_adcenter+api/default.aspx" /><category term="advertisers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/advertisers/default.aspx" /><category term="categories:advertisers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_advertisers/default.aspx" /><category term="campaigns" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/campaigns/default.aspx" /><category term="categories:developers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers/default.aspx" /><category term="developers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/developers/default.aspx" /><category term="categories:developers:adcenter api" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers_3A00_adcenter+api/default.aspx" /><category term="categories:developers:adcenter api:campaigns" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers_3A00_adcenter+api_3A00_campaigns/default.aspx" /></entry><entry><title>Tips for Using the adCenter API Documentation on MSDN</title><link rel="alternate" type="text/html" href="/blogs/api/archive/2010/02/12/adcenter-api-documentation.aspx" /><id>/blogs/api/archive/2010/02/12/adcenter-api-documentation.aspx</id><published>2010-02-12T20:53:00Z</published><updated>2010-02-12T20:53:00Z</updated><content type="html">&lt;p&gt;In 2009, there were well over 200,000 page views in the adCenter API Microsoft Developer Network (MSDN) documentation. We thought you might appreciate a few tips about the adCenter API documentation.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;All of the advertising API documentation is located in the MSDN library under &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/dd179335.aspx"&gt;Microsoft Advertising Services&lt;/a&gt;. Currently, documentation is available for the Atlas APIs as well as the adCenter APIs. &lt;/li&gt;
&lt;li&gt;All of the current adCenter API Web service production and sandbox URLs can be found at &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/dd796925.aspx"&gt;Microsoft adCenter Web Service Addresses&lt;/a&gt;. &lt;/li&gt;
&lt;li&gt;Each of the individual adCenter Web services is documented in its own section. In each of these sections, there is a &amp;ldquo;Release Notes&amp;rdquo; topic that contains high-level information about the changes to the &lt;em&gt;Web service&lt;/em&gt; in the latest release. The &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/bb671736.aspx"&gt;What&amp;#39;s New in the SDK for the Microsoft adCenter API&lt;/a&gt; topic contains the changes to the &lt;em&gt;documentation&lt;/em&gt; in the latest release. &lt;/li&gt;
&lt;li&gt;In each Web service section, there is a &amp;ldquo;Developing with&amp;rdquo; topic that contains detailed information about how to create an application that uses that Web service. This is where you will find code examples for that Web service. For example, the &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/ee703968.aspx"&gt;Microsoft adCenter Campaign Management API Examples&lt;/a&gt; topic contains code examples for common scenarios using the adCenter campaign management Web service. &lt;/li&gt;
&lt;li&gt;Because Web services can be used by any programming language that can support SOAP, there are a vast number of languages in use with the adCenter API. We strive to provide code examples in the most common languages. We have code examples in all of the following languages. In addition to these, we are working on code examples in Ruby. If you know of other languages that we should have code examples in, please let us know by sending email to &lt;a target="_blank" href="mailto:acsdkfbk@microsoft.com"&gt;adCenter SDK Content Feedback&lt;/a&gt;. 
&lt;ul&gt;
&lt;li&gt;C# &lt;/li&gt;
&lt;li&gt;Java &lt;/li&gt;
&lt;li&gt;Perl &lt;/li&gt;
&lt;li&gt;PHP &lt;/li&gt;
&lt;li&gt;Python &lt;/li&gt;
&lt;li&gt;Visual Basic &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://community.microsoftadvertising.com/aggbug.aspx?PostID=16267" width="1" height="1"&gt;</content><author><name>Strohm Armstrong - MSFT</name><uri>http://community.microsoftadvertising.com/members/Strohm-Armstrong-_2D00_-MSFT/default.aspx</uri></author><category term="Documentation" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/Documentation/default.aspx" /><category term="adCenter API" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/adCenter+API/default.aspx" /><category term="community" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/community/default.aspx" /><category term="categories" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories/default.aspx" /><category term="categories:advertisers:adcenter api" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_advertisers_3A00_adcenter+api/default.aspx" /><category term="advertisers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/advertisers/default.aspx" /><category term="categories:advertisers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_advertisers/default.aspx" /><category term="categories:featured" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_featured/default.aspx" /><category term="categories:featured:community" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_featured_3A00_community/default.aspx" /><category term="featured" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/featured/default.aspx" /><category term="adcenterapi" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/adcenterapi/default.aspx" /><category term="msdn" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/msdn/default.aspx" /></entry><entry><title>Troubleshooting adCenter API error: Setting Editorial Status is not allowed.</title><link rel="alternate" type="text/html" href="/blogs/api/archive/2010/02/11/troubleshooting-adcenter-api-error-setting-editorial-status-is-not-allowed.aspx" /><id>/blogs/api/archive/2010/02/11/troubleshooting-adcenter-api-error-setting-editorial-status-is-not-allowed.aspx</id><published>2010-02-11T16:21:00Z</published><updated>2010-02-11T16:21:00Z</updated><content type="html">&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;Developers working with our API sometimes run into errors when executing Update operations in which they try to update an entity&amp;#39;s status. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;During operations like UpdateCampaigns(), UpdateAdGroups(), UpdateKeywords(), etc, the status of adCenter objects cannot be modified. In addition, editorial status cannot be modified by the user, and is determined and set only by the system.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;As a result, a request containing the code below will fail:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;i&gt;&amp;nbsp; &amp;lt;s:Body&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;UpdateKeywordsRequest xmlns=&amp;quot;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;a target="_blank" href="https://mail.microsoft.com/owa/redir.aspx?C=a9d1219d30d04e04ae2390e890e268c8&amp;amp;URL=https%3a%2f%2fadcenter.microsoft.com%2fv6"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;i&gt;https://adcenter.microsoft.com/v6&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;i&gt;&amp;quot;&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;AdGroupId&amp;gt;******&amp;lt;/AdGroupId&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Keywords xmlns:i=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Keyword&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;b&gt;&lt;i&gt;&amp;lt;EditorialStatus&amp;gt;Active&amp;lt;/EditorialStatus&amp;gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Id&amp;gt;******&amp;lt;/Id&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Param1&amp;gt;test&amp;lt;/Param1&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;b&gt;&lt;i&gt;&amp;lt;Status&amp;gt;Paused&amp;lt;/Status&amp;gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Keyword&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Keywords&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/UpdateKeywordsRequest&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;i&gt;&amp;nbsp; &amp;lt;/s:Body&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;You can get two possible errors in those cases: &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;i&gt;&amp;lt;Message&amp;gt;Status cannot be changed on Update; instead, use Pause or Resume APIs.&amp;lt;/Message&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;or&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;i&gt;&amp;lt;Message&amp;gt;Setting Editorial Status is not allowed.&amp;lt;/Message&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;To avoid this error, make sure you set the Status and EditorialStatus of your entities to null when executing Update operations, as in the sample below:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;i&gt;&amp;lt;s:Body&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;i&gt;&amp;lt;UpdateKeywordsRequest xmlns=&amp;quot;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;a target="_blank" href="https://mail.microsoft.com/owa/redir.aspx?C=a9d1219d30d04e04ae2390e890e268c8&amp;amp;URL=https%3a%2f%2fadcenter.microsoft.com%2fv6"&gt;&lt;span style="font-family:Calibri,sans-serif;"&gt;&lt;i&gt;https://adcenter.microsoft.com/v6&lt;/i&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;i&gt;&amp;quot;&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;i&gt;&amp;lt;AdGroupId&amp;gt;******&amp;lt;/AdGroupId&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;i&gt;&amp;lt;Keywords xmlns:i=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;i&gt;&amp;lt;Keyword&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;b&gt;&lt;i&gt;&amp;lt;EditorialStatus i:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;i&gt;&amp;lt;Id&amp;gt;******&amp;lt;/Id&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;i&gt;&amp;lt;Param1&amp;gt;test&amp;lt;/Param1&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;b&gt;&lt;i&gt;&amp;lt;Status i:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;i&gt;&amp;lt;/Keyword&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;i&gt;&amp;lt;/Keywords&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;i&gt;&amp;lt;/UpdateKeywordsRequest&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;i&gt;&amp;lt;/s:Body&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin:0px;"&gt;&lt;span style="font-family:Times New Roman,serif;font-size:small;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:x-small;"&gt;&lt;span style="font-size:11pt;"&gt;If you want to update an entity&amp;#39;s status, you should use operations like PauseCampaigns(), UpdateCampaigns(), PauseAdGroups(), etc.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;&lt;br /&gt;


&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://community.microsoftadvertising.com/aggbug.aspx?PostID=15947" width="1" height="1"&gt;</content><author><name>Mirena Chausheva-MSFT</name><uri>http://community.microsoftadvertising.com/members/Mirena-Chausheva_2D00_MSFT/default.aspx</uri></author><category term="adCenter API" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/adCenter+API/default.aspx" /><category term="community" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/community/default.aspx" /><category term="categories" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories/default.aspx" /><category term="categories:advertisers:adcenter api" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_advertisers_3A00_adcenter+api/default.aspx" /><category term="advertisers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/advertisers/default.aspx" /><category term="categories:advertisers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_advertisers/default.aspx" /><category term="announcements" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/announcements/default.aspx" /><category term="error handling" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/error+handling/default.aspx" /><category term="categories:featured" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_featured/default.aspx" /><category term="categories:featured:community" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_featured_3A00_community/default.aspx" /><category term="featured" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/featured/default.aspx" /><category term="categories:developers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers/default.aspx" /><category term="developers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/developers/default.aspx" /><category term="categories:developers:adcenter api" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers_3A00_adcenter+api/default.aspx" /><category term="categories:developers:adcenter api:announcements" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers_3A00_adcenter+api_3A00_announcements/default.aspx" /><category term="categories:developers:adcenter api:error handling" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers_3A00_adcenter+api_3A00_error+handling/default.aspx" /></entry><entry><title>Changing the Exception Handling for .NET adCenter API Examples</title><link rel="alternate" type="text/html" href="/blogs/api/archive/2010/02/01/changing-the-exception-handling-for-net-adcenter-api-examples.aspx" /><id>/blogs/api/archive/2010/02/01/changing-the-exception-handling-for-net-adcenter-api-examples.aspx</id><published>2010-02-01T20:19:00Z</published><updated>2010-02-01T20:19:00Z</updated><content type="html">&lt;p&gt;Just letting you know that we&amp;#39;ll be changing the exception handling in our adCenter examples for C# and Visual Basic to reflect the &lt;a href="http://msdn.microsoft.com/en-us/library/ms735119.aspx"&gt;WCF&lt;/a&gt; recommended approach for exception handling. Please consider doing the same with your implementations if you are not already doing so.&lt;/p&gt;
&lt;p&gt;Currently our examples use try/catch/finally and release the client (call the Close() method) in the finally block. The problem is that Close() can throw exceptions. If Close() throws an exception, you must call the Abort() method to ensure that all resources are released; otherwise, you could be leaking resources on the server. The recommended practice is to call Close() within the try block, and call Abort() from the caught exceptions. &lt;/p&gt;
&lt;p&gt;For example,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static void Main(...) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; service = new CampaignManagementServiceClient(&amp;quot;BasicHttpBinding_ICampaignManagementService&amp;quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddAdGroupsToCampaign(service, ...);&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; service.Close(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (CommunicationException e) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(e.Message); &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (service != null) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; service.Abort(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (TimeoutException e) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(e.Message); &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (service != null) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; service.Abort(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (Exception e) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(e.Message); &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (service != null) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; service.Abort(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static void AddAdGroupsToCampaign(service, ...) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddAdGroupsResponse response = service.AddAdGroups(request); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (FaultException&amp;lt;AdApiFaultDetail&amp;gt; fault) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (FaultException&amp;lt;ApiFaultDetail&amp;gt; fault) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The following links provide the details from the WCF docs:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms733912.aspx"&gt;Accessing Services Using a WCF Client&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Handling Exceptions&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Handling exceptions in client applications is straightforward. If a channel is opened, used, and closed inside a try block, then the conversation has succeeded, unless an exception is thrown. Typically, if an exception is thrown the conversation is aborted.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa354510.aspx"&gt;Expected Exceptions&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa355056.aspx"&gt;Avoiding Problems with the Using Statement&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Thanks and enjoy!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://community.microsoftadvertising.com/aggbug.aspx?PostID=15407" width="1" height="1"&gt;</content><author><name>Scott White - MSFT</name><uri>http://community.microsoftadvertising.com/members/Scott-White-_2D00_-MSFT/default.aspx</uri></author><category term="adCenter API" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/adCenter+API/default.aspx" /><category term="community" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/community/default.aspx" /><category term="categories" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories/default.aspx" /><category term="categories:advertisers:adcenter api" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_advertisers_3A00_adcenter+api/default.aspx" /><category term="advertisers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/advertisers/default.aspx" /><category term="categories:advertisers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_advertisers/default.aspx" /><category term="error handling" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/error+handling/default.aspx" /><category term="categories:featured" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_featured/default.aspx" /><category term="categories:featured:community" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_featured_3A00_community/default.aspx" /><category term="featured" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/featured/default.aspx" /><category term="categories:developers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers/default.aspx" /><category term="developers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/developers/default.aspx" /><category term="categories:developers:adcenter api" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers_3A00_adcenter+api/default.aspx" /></entry><entry><title>Using the WCFTestClient Tool to Test Service Operations</title><link rel="alternate" type="text/html" href="/blogs/api/archive/2010/02/01/using-the-wcftestclient-tool-to-test-service-operations.aspx" /><id>/blogs/api/archive/2010/02/01/using-the-wcftestclient-tool-to-test-service-operations.aspx</id><published>2010-02-01T18:41:00Z</published><updated>2010-02-01T18:41:00Z</updated><content type="html">&lt;p&gt;Hello&lt;/p&gt;
&lt;p&gt;In case you didn&amp;#39;t know, Visual Studio ships a handy tool called WCFTestClient.exe that you should try. It&amp;#39;s a great tool for discovering and testing WSDL operations without writing any code. You can view the request and response messages in a formatted view or in XML. For details, see &lt;a href="http://msdn.microsoft.com/en-us/library/bb552364.aspx"&gt;WCF Test Client (WcfTestClient.exe)&lt;/a&gt;. There is one catch&amp;hellip; it is available only with Visual Studio 2008 SP1.&lt;/p&gt;
&lt;p&gt;If you use the default Visual Studio install folder, you can find the tool in the C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ folder.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://community.microsoftadvertising.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/api.metablogapi/1050.clip_5F00_image001_5F00_41D12EDF.png"&gt;&lt;img height="409" width="644" src="http://community.microsoftadvertising.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/api.metablogapi/4705.clip_5F00_image001_5F00_thumb_5F00_72F0697F.png" alt="clip_image001" border="0" title="clip_image001" style="display:inline;border-width:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;After starting the WCF Test Client tool, click &lt;b&gt;File&lt;/b&gt;-&amp;gt;&lt;b&gt;Add Service&lt;/b&gt;, and enter the endpoint address of the service you want to open. For a list of adCenter sandbox addresses, see &lt;a href="http://msdn.microsoft.com/en-us/library/dd796925.aspx"&gt;Microsoft adCenter Web Services Addresses&lt;/a&gt; (when you play with this tool, make sure that you use the sandbox addresses and not the production addresses).&lt;/p&gt;
&lt;p&gt;The left pane of the WCF Test Client main window lists all the available services, along with their respective endpoints and operations.&lt;/p&gt;
&lt;p&gt;When you double-click on an operation in the left pane, the operation is opened in the right pane. The operation&amp;#39;s tab shows the request and response properties in either a &lt;b&gt;Formatted&lt;/b&gt; or &lt;b&gt;XML&lt;/b&gt; view. When you click &lt;b&gt;Formatted&lt;/b&gt;, you can enter arbitrary values for the properties to test the service. To send the request to the service, click &lt;b&gt;Invoke&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;There is one trick that is not documented or obvious when working with arrays. To specify an array in your request, enter length=&lt;i&gt;n&lt;/i&gt; in the &lt;b&gt;Value&lt;/b&gt; column, where &lt;i&gt;n&lt;/i&gt; is the number of elements that you want in the array. You can then expand the list (click the + sign) to add the values of the array elements.&lt;/p&gt;
&lt;p&gt;The following snippets show the progression.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://community.microsoftadvertising.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/api.metablogapi/2727.image_5F00_2005564E.png"&gt;&lt;img height="46" width="519" src="http://community.microsoftadvertising.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/api.metablogapi/0412.image_5F00_thumb_5F00_11C6DD5E.png" alt="image" border="0" title="image" style="display:inline;border-width:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://community.microsoftadvertising.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/api.metablogapi/3716.image_5F00_3C52986E.png"&gt;&lt;img height="45" width="519" src="http://community.microsoftadvertising.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/api.metablogapi/3730.image_5F00_thumb_5F00_35335BF6.png" alt="image" border="0" title="image" style="display:inline;border-width:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://community.microsoftadvertising.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/api.metablogapi/7532.image_5F00_15184F39.png"&gt;&lt;img height="79" width="517" src="http://community.microsoftadvertising.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/api.metablogapi/0412.image_5F00_thumb_5F00_6DDE0603.png" alt="image" border="0" title="image" style="display:inline;border-width:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://community.microsoftadvertising.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/api.metablogapi/7851.image_5F00_0D8CDFCC.png"&gt;&lt;img height="132" width="522" src="http://community.microsoftadvertising.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/api.metablogapi/1663.image_5F00_thumb_5F00_0D20ACD7.png" alt="image" border="0" title="image" style="display:inline;border-width:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://community.microsoftadvertising.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/api.metablogapi/0508.image_5F00_5ABCD957.png"&gt;&lt;img height="115" width="518" src="http://community.microsoftadvertising.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/api.metablogapi/0412.image_5F00_thumb_5F00_4C7E6067.png" alt="image" border="0" title="image" style="display:inline;border-width:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks and enjoy!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://community.microsoftadvertising.com/aggbug.aspx?PostID=15402" width="1" height="1"&gt;</content><author><name>Scott White - MSFT</name><uri>http://community.microsoftadvertising.com/members/Scott-White-_2D00_-MSFT/default.aspx</uri></author><category term="adCenter API" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/adCenter+API/default.aspx" /><category term="community" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/community/default.aspx" /><category term="categories" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories/default.aspx" /><category term="categories:advertisers:adcenter api" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_advertisers_3A00_adcenter+api/default.aspx" /><category term="advertisers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/advertisers/default.aspx" /><category term="categories:advertisers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_advertisers/default.aspx" /><category term="categories:featured" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_featured/default.aspx" /><category term="categories:featured:community" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_featured_3A00_community/default.aspx" /><category term="featured" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/featured/default.aspx" /><category term="categories:developers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers/default.aspx" /><category term="developers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/developers/default.aspx" /><category term="categories:developers:adcenter api" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers_3A00_adcenter+api/default.aspx" /><category term="testing operations" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/testing+operations/default.aspx" /></entry><entry><title>Calling adCenter API Operations Asynchronously</title><link rel="alternate" type="text/html" href="/blogs/api/archive/2010/02/01/calling-adcenter-api-operations-asynchronously.aspx" /><id>/blogs/api/archive/2010/02/01/calling-adcenter-api-operations-asynchronously.aspx</id><published>2010-02-01T17:51:00Z</published><updated>2010-02-01T17:51:00Z</updated><content type="html">&lt;p&gt;Hello&lt;/p&gt;
&lt;p&gt;Some of you may be aware of this already but I want to make sure that you know that you can call the CampaignManagement, Administration, and Reporting service operations asynchronously in C# and Visual Basic. For details on calling service operations asynchronously, see the &lt;a href="http://msdn.microsoft.com/en-us/library/ms735119.aspx"&gt;WCF&lt;/a&gt; documentation: &lt;a href="http://msdn.microsoft.com/en-us/library/ms734701.aspx"&gt;Synchronous and Asynchronous Operations&lt;/a&gt;, &lt;a href="http://msdn.microsoft.com/en-us/library/ms730059.aspx"&gt;How to: Call WCF Service Operations Asynchronously&lt;/a&gt;, and &lt;a href="http://msdn.microsoft.com/en-us/library/ms228969.aspx"&gt;Asynchronous Programming Design Patterns&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Asynchronous operations are typically used to perform tasks that might take a long time to complete, such as opening large files, connecting to remote computers, or querying a database. An asynchronous operation executes in a thread separate from the main application thread. When an application calls methods to perform an operation asynchronously, the application can continue executing while the asynchronous method performs its task. Basically, use asynchronous calls when your application can continue doing useful work while the method call runs.&lt;/p&gt;
&lt;p&gt;If you use the svcutil.exe utility, include the /async and&amp;nbsp; /tcv:Version35 switches. If you use the &lt;b&gt;Add Service Reference&lt;/b&gt; wizard in Visual Studio, click the &lt;b&gt;Advanced&amp;hellip;&lt;/b&gt; button and check the &lt;b&gt;Generate asynchronous operations&lt;/b&gt; checkbox in the &lt;b&gt;Service Reference Settings&lt;/b&gt; window (along with the &lt;b&gt;Always generate message contracts&lt;/b&gt; checkbox).&lt;/p&gt;
&lt;p&gt;You can use event handlers or delegates to receive notification of when the asynchronous call completes. Event handlers are easier to write but delegates offer more flexibility. If you need to pass context information to the callback, you should use delegates. For example, when printing the string that indicates that the group was added, it might be nice to identify the campaign to which the group was added. If you use an event handler, you would need to come up with some external mechanism for keeping track of which campaign goes with which async call result. However, with the delegate model, the context information (in this case, the campaign ID) is passed through to the callback.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve included examples for both callback models.&lt;/p&gt;
&lt;p&gt;The following is a simple example that shows how to call the AddAdGroups operation asynchronously using an event handler.&lt;/p&gt;
&lt;p&gt;using System; &lt;br /&gt;using System.Collections.Generic; &lt;br /&gt;using System.Linq; &lt;br /&gt;using System.Text; &lt;br /&gt;using System.Threading; &lt;br /&gt;using System.ServiceModel; &lt;br /&gt;using AsyncExample.CampaignManagement; &lt;/p&gt;
&lt;p&gt;namespace AsyncExample &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; class Program &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static Exception asyncException = null; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static AutoResetEvent AsyncResultsDone = new AutoResetEvent(false); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static CampaignManagementServiceClient service = null; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static void Main(string[] args) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (args.Length != 5) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(&amp;quot;usage:\nAsyncExample campaignid username password devtoken accountid&amp;quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; service = new CampaignManagementServiceClient(&amp;quot;BasicHttpBinding_ICampaignManagementService&amp;quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddAdGroupsToCampaign(Convert.ToInt64(args[0]), args[1], args[2], args[3], Convert.ToInt64(args[4])); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; service.Close(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (CommunicationException e) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(e.Message); &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (service != null) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; service.Abort(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (TimeoutException e) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(e.Message); &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (service != null) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; service.Abort(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (Exception e) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(e.Message); &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (service != null) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; service.Abort(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static void AddAdGroupsToCampaign( &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; long campaignId, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string username, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string password, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string devToken, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; long accountId) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddAdGroupsRequest request = new AddAdGroupsRequest(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.CustomerAccountId = accountId.ToString(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.DeveloperToken = devToken; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.UserName = username; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.Password = password; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AdGroup[] adGroups = new AdGroup[1]; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Force batch errors by not setting the properties of &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // the ad group object. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; adGroups[0] = new AdGroup(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //adGroups[0].Name = &amp;quot;Skis&amp;quot;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //adGroups[0].AdDistribution = AdDistribution.Search; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //adGroups[0].BiddingModel = BiddingModel.Keyword; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //adGroups[0].PricingModel = PricingModel.Cpc; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //adGroups[0].LanguageAndRegion = &amp;quot;EnglishUnitedStates&amp;quot;; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Bid bid = new Bid(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //bid.Amount = 10.25; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //adGroups[0].ExactMatchBid = bid; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //adGroups[0].StartDate = null; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Date endDate = new Date(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //endDate.Day = 31; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //endDate.Month = 3; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //endDate.Year = 2010; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //adGroups[0].EndDate = endDate; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.AdGroups = adGroups; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.CampaignId = campaignId; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; service.AddAdGroupsCompleted += new EventHandler&amp;lt;AddAdGroupsCompletedEventArgs&amp;gt;(AddAdGroupsCallback); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; service.AddAdGroupsAsync(request); &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Blocks until the operation completes; released in AddAdGroupsCallback. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AsyncResultsDone.WaitOne(); &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (asyncException != null) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw (asyncException); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static void AddAdGroupsCallback(object sender, AddAdGroupsCompletedEventArgs args) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // If you need the service object, cast sender to CampaignManagementServiceClient. For example, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // CampaignManagementServiceClient service = (CampaignManagementServiceClient)sender; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (args.Error != null) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(&amp;quot;The following error(s) occurred while performing the AddAdGroups operation.\n&amp;quot;); &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw (args.Error); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (FaultException&amp;lt;ApiFaultDetail&amp;gt; fault) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ApiFaultDetail detail = fault.Detail; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Display the service operation errors. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (OperationError error in detail.OperationErrors) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(&amp;quot;Message: {0}\nError code: {1}\n&amp;quot;, error.Message, error.ErrorCode); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Display the service operation batch errors. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (BatchError error in detail.BatchErrors) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(&amp;quot;Message: {0}\nError code: {1}\n&amp;quot;, error.Message, error.Code); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (FaultException&amp;lt;AdApiFaultDetail&amp;gt; fault) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AdApiFaultDetail detail = fault.Detail; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Display the generic API errors. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (AdApiError error in detail.Errors) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(&amp;quot;Message: {0}\nError code: {1}\n&amp;quot;, error.Message, error.ErrorCode); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (Exception e) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // This will likely be the CommunicationException or TimeoutException &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // exception. Need to get this exception back to the calling thread to &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // handle; using the asyncException member for this purpose. The asyncException &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // member is checked in the calling thread and is thrown if set. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; asyncException = e; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (args.Cancelled) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(&amp;quot;The AddAdGroups operation was canceled.&amp;quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddAdGroupsResponse response = args.Result; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (long id in response.AdGroupIds) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(&amp;quot;AdGroup {0} was added&amp;quot;, id); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AsyncResultsDone.Set(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The following is a simple example that shows how to call the AddAdGroups operation asynchronously using a delegate. &lt;/p&gt;
&lt;p&gt;using System; &lt;br /&gt;using System.Collections.Generic; &lt;br /&gt;using System.Linq; &lt;br /&gt;using System.Text; &lt;br /&gt;using System.Threading; &lt;br /&gt;using System.ServiceModel; &lt;br /&gt;using AsyncExample.CampaignManagement; &lt;/p&gt;
&lt;p&gt;namespace AsyncExample &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; class Program &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static AutoResetEvent AsyncResultsDone = new AutoResetEvent(false); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static CampaignManagementServiceClient service = null; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static void Main(string[] args) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (args.Length != 5) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(&amp;quot;usage:\nAsyncExample campaignid username password devtoken accountid&amp;quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; service = new CampaignManagementServiceClient(&amp;quot;BasicHttpBinding_ICampaignManagementService&amp;quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddAdGroupsToCampaign(Convert.ToInt64(args[0]), args[1], args[2], args[3], Convert.ToInt64(args[4])); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; service.Close(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (CommunicationException e) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(e.Message); &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (service != null) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; service.Abort(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (TimeoutException e) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(e.Message); &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (service != null) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; service.Abort(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (Exception e) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(e.Message); &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (service != null) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; service.Abort(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Packages the request object and calls the AddAdGroups operation &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // asynchronously. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static void AddAdGroupsToCampaign( &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; long campaignId, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string username, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string password, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string devToken, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; long accountId) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddAdGroupsRequest request = new AddAdGroupsRequest(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.CustomerAccountId = accountId.ToString(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.DeveloperToken = devToken; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.UserName = username; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.Password = password; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AdGroup[] adGroups = new AdGroup[1]; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Force batch errors by not setting the properties of &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // the ad group object. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; adGroups[0] = new AdGroup(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //adGroups[0].Name = &amp;quot;Skis&amp;quot;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //adGroups[0].AdDistribution = AdDistribution.Search; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //adGroups[0].BiddingModel = BiddingModel.Keyword; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //adGroups[0].PricingModel = PricingModel.Cpc; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //adGroups[0].LanguageAndRegion = &amp;quot;EnglishUnitedStates&amp;quot;; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Bid bid = new Bid(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //bid.Amount = 10.25; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //adGroups[0].ExactMatchBid = bid; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //adGroups[0].StartDate = null; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Date endDate = new Date(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //endDate.Day = 31; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //endDate.Month = 3; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //endDate.Year = 2010; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //adGroups[0].EndDate = endDate; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.AdGroups = adGroups; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.CampaignId = campaignId; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Begin the asynchronous call. Use the RequestState object &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // to provide context for the call. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RequestState state = new RequestState(service, campaignId); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; service.BeginAddAdGroups(request, new AsyncCallback(AddAdGroupsCallback), state); &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Blocks until the operation completes; released in AddAdGroupsCallback. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AsyncResultsDone.WaitOne(); &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // If the call failed, throw any exception that the callback did not handle; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // the callback handles the fault exceptions, so this is likely a communication &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // or timeout exception. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (state.UnhandledException != null) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw (state.UnhandledException); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Defines the state object that gives context to the asynchronous call. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; class RequestState &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; object context = null; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exception unhandledException = null; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CampaignManagementServiceClient service; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // For this example, the context object is the campaign identifier &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // to which the add groups are being added. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public RequestState(CampaignManagementServiceClient service, object context) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.service = service; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.context = context; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public object Context &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get { return context; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // The exception that the callback did not handle. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Exception UnhandledException &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get { return unhandledException; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set { this.unhandledException = value; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Completes the asynchronous call. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public AddAdGroupsResponse GetResult(IAsyncResult result) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return service.EndAddAdGroups(result); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Implements the AsyncCallback Delegate. This is called when &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // the operation completes. The delegate processes the response. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // The delegate handles any fault exceptions but lets the calling &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // thread handle any others. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static void AddAdGroupsCallback(IAsyncResult result) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RequestState state = result.AsyncState as RequestState; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; long campaignId = (long)state.Context; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddAdGroupsResponse response = state.GetResult(result); &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (long id in response.AdGroupIds) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(&amp;quot;AdGroup {0} was added to campaign {1}&amp;quot;, id, campaignId); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (FaultException&amp;lt;AdApiFaultDetail&amp;gt; fault) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AdApiFaultDetail detail = fault.Detail; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(&amp;quot;The following error(s) occurred while performing the AddAdGroups operation.\n&amp;quot;); &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Display the generic API errors. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (AdApiError error in detail.Errors) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(&amp;quot;Message: {0}\nError code: {1}\n&amp;quot;, error.Message, error.ErrorCode); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (FaultException&amp;lt;ApiFaultDetail&amp;gt; fault) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ApiFaultDetail detail = fault.Detail; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(&amp;quot;The following error(s) occurred while performing the AddAdGroups operation.\n&amp;quot;); &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Display the service operation errors. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (OperationError error in detail.OperationErrors) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(&amp;quot;Message: {0}\nError code: {1}\n&amp;quot;, error.Message, error.ErrorCode); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Display the service batch errors. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (BatchError error in detail.BatchErrors) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(&amp;quot;Message: {0}\nError code: {1}\n&amp;quot;, error.Message, error.Code); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (Exception e) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Need to get this exception back to the calling thread to handle; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // using the UnhandledException property of the state object for this &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // purpose. The UnhandledException property is checked in the calling &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // thread and is thrown if set. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; state.UnhandledException = e; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; finally &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Release the wait in the calling thread. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AsyncResultsDone.Set(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks and enjoy!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://community.microsoftadvertising.com/aggbug.aspx?PostID=15400" width="1" height="1"&gt;</content><author><name>Scott White - MSFT</name><uri>http://community.microsoftadvertising.com/members/Scott-White-_2D00_-MSFT/default.aspx</uri></author><category term="adCenter API" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/adCenter+API/default.aspx" /><category term="community" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/community/default.aspx" /><category term="categories" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories/default.aspx" /><category term="categories:advertisers:adcenter api" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_advertisers_3A00_adcenter+api/default.aspx" /><category term="advertisers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/advertisers/default.aspx" /><category term="categories:advertisers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_advertisers/default.aspx" /><category term="categories:featured" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_featured/default.aspx" /><category term="categories:featured:community" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_featured_3A00_community/default.aspx" /><category term="featured" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/featured/default.aspx" /><category term="categories:developers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers/default.aspx" /><category term="developers" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/developers/default.aspx" /><category term="categories:developers:adcenter api" scheme="http://community.microsoftadvertising.com/blogs/api/archive/tags/categories_3A00_developers_3A00_adcenter+api/default.aspx" /></entry></feed>