- Removed the PublicSign clause from all csproj files. Fixes googleads#437.
- Version for Google.Ads.Gax was bumped to 1.0.3.
- Version for Google.Ads.GoogleAds.Core was bumped to 1.0.1.
- Updated some code examples.
- Reworked UploadCallConversion.cs to support a missing parameter and support partial failure.
- Removed some redundant code from HandlePartialFailure.cs.
- Modified ValidateAd.cs to fail on unhandled errors.
- Improved the instructions for LoginCustomerId in GenerateUserCredentials example.
- Fixed the release script to load secrets from Keystore.
- Continued with the Gax library refactoring. Google.Ads.GoogleAds is now split into Google.Ads.GoogleAds (which contains the stubs), and Google.Ads.GoogleAds.Core (which contains the library logic).
- Fixed an issue with DetectAndApplyRecommendations.cs to handle an empty list of recommendations.
- Google.Ads.Gax version was bumped to v1.0.2.
- Google.Ads.GoogleAds.Core version was set to 1.0.0 for its first release.
- Rewrote the release script to work on Linux instead of Windows.
- Updated some code examples.
- Reworked AddAdCustomizer.cs to use CustomizerAttributes and ResponsiveSearchAds instead of feeds and ExpandedTextAds.
- Rename the ValidateTextAd.cs to ValidateAd.cs.
- Rename the campaignId parameter to baseCampaignId in CreateExperiment.cs
- Rename UpdatedExpandedTextAd.cs to UpdateResponsiveSearchAd.cs to illustrate how to update RSAs.
- Update AddBusinessProfileLocationExtensions.cs to mark businessProfileAccessToken as an optional parameter.
- Removed some code examples since ExpandedTextAds are now sunset.
- AddExpandedTextAdWithUpgradedUrls.cs
- AddExpandedTextAds.cs
- Removed support for v9 of the Google Ads API.
- Updated GenerateUserCredentials example to force an OAuth2 Consent screen every time.
- Added support for version v11 of the Google Ads API.
- Added new code examples:
- CampaignManagement\CreateExperiment.cs
- Recommendations\DetectAndApplyRecommendations.cs
- Removed some code examples:
- CampaignManagement\CreateCampaignExperiment.cs
- CampaignManagement\GraduateCampaignExperiment.cs
- Updated some code examples
- Fixed the AddSmartCampaign.cs example to use BusinessProfileLocation instead of BusinessProfileId
- Fixed the protobuf key name in the user agent header.
- Updated all code examples to remove INSERT_XXX_ placeholders from the Main() method.
- Added an additional test case to ensure that FieldMask handles empty messages correctly.
- Made more changes related to the Google.Ads.Gax refactoring.
- Deleted an orphaned file.
- Fixed some incorrect namespaces.
- Fixed the internal visibility of Google.Ads.Gax assembly to a bunch of additional assemblies.
- Extract some common test utilities into a separate assembly.
- Added a THIRD-PARTY-LICENSE.txt that captures the licenses of all the third_party transitive dependencies into a single file. This file will also be embedded into the nupkg distribution.
- Fixed an NPE when initalizing GoogleAdsException without metadata. Fixes googleads#402
- The project was split into two assemblies -- Google.Ads.Gax and Google.Ads.GoogleAds. This was
done to extract common functionality so that we can use it for other Ads APIs. The main difference
from a usage perspective is that several utility classes like
FieldMasks
,MediaUtilities
, etc. moved from theGoogle.Ads.GoogleAds
namespace toGoogle.Ads.Gax
namespace. As a result, you need to fix the namespaces in yourusing
statements. Other than that, the library remains unchanged (e.g. there were no additional changes to any of the code examples as a result of this refactoring).- If you use the Nuget package, you will continue to add reference to
Google.Ads.GoogleAds
. There is no need to add dependency toGoogle.Ads.Gax
package; it will be downloaded as a transitive dependency. - If you work with the repo code directly, then the code has been split into two top-level
folders, namely
Google.Ads.Gax
andGoogle.Ads.GoogleAds
. TheGoogle.Ads.GoogleAds.sln
has moved to theGoogle.Ads.GoogleAds
folder as a result.Google.Ads.GoogleAds.sln
still remains the main Visual Studio solution file for working with the entire repo.
- If you use the Nuget package, you will continue to add reference to
- Updated some code examples.
- Made polling consistent across libs in Remarketing/AddCustomerMatchUserList.cs
- Updated AccountManagement/GetChangeDetails.cs to add newly supported ChangeEventResourceType.
- Renamed AuthenticateInDesktopApplication example to GenerateUserCredentials.
- Renamed AuthenticateInWebApplication to AuthenticateInAspNetCoreApplication.
- Regenerated stubs for versions v9 and v10 of the Google Ads API library. The library now supports higher timeout changes that were rolled out to some methods in the Google Ads API.
- Added support for version v10_1 of the Google Ads API.
- Removed support for version v8 of the Google Ads API. See https://developers.google.com/google-ads/api/docs/sunset-dates for migration guides for newer versions.
- Added support for tracking protobuf library version in request headers.
- Made the services disposable. Fixes googleads#355. The underlying issue and workaround was suggested by Claude Beauchemin(https://github.com/cbeauchemin).
- Fixed some issues with code examples.
- Remarketing/AddDynamicRemarketingAsset.cs
- AdvancedOperations/AddResponsiveSearchAdWithAdCustomizer.cs
- AdvancedOperations/AddCallAd.cs
- Extensions/AddCall.cs
- AdvancedOperations/AddPerformanceMaxCampaign.cs
- ShoppingAds/AddPerformanceMaxRetailCampaign.cs
- Fixed an issue with how enums are used when constructing resource names.
- Updated code examples.
- Remarketing/UploadOfflineConversion.cs by adding support for GBRAID and WBRAID.
- BasicOperations/AddCampaigns.cs example to show Display Expansion for Search Campaigns.
- Add new code examples.
- Misc/NavigateSearchResultPagesCachingToken.cs
- Fixed issues related to logging.
- Do not skip logging if an empty response is returned by the server for a streaming call. Fixes googleads#359
- Added a null check to make logging more robust.
- Fix customerId and requestId in summary logs. Fixes googleads#364
- Do not set a default value of CancellationToken in GoogleAdsService.SearchStreamAsync call so users can use their own CancellationToken. See https://developers.google.com/google-ads/api/docs/client-libs/dotnet/getting-started#canceling_async_methods for a usage example. Fixes googleads#360
- Added support for v10 of the Google Ads API.
- Removed support for v7 of the Google Ads API.
- Renamed Google My Business (GMB) to Business Profile everywhere.
- Fix googleads#331. Always get a refresh token in the web application example. Fix was contributed by Jhon Samamé (https://github.com/johnpisg)
- Fixed googleads#283. Read requestId from the response object instead of response headers for streaming calls.
- Added new code examples
- AdvancedOperations/AddCallAd
- AdvancedOperations/AddDynamicPageFeedAsset
- AdvancedOperations/AddPerformanceMaxCampaign
- AdvancedOperations/AddResponsiveSearchAdWithAdCustomizer
- Extensions/AddCall
- Remarketing/AddDynamicRemarketingAsset
- Remarketing/UploadConversionEnhancement
- Remarketing/UploadConversionWithIdentifiers
- ShoppingAds/AddPerformanceMaxProductListingGroupTree
- ShoppingAds/AddPerformanceMaxRetailCampaign
- Updated code examples
- AccountManagement/GetAccountInformation
- AdvancedOperations/AddDisplayUploadAd
- AdvancedOperations/AddDynamicPageFeed
- AdvancedOperations/AddLocalCampaign
- AdvancedOperations/AddSmartCampaign
- AdvancedOperations/AddSmartDisplayAd
- BasicOperations/GetKeywords
- Extensions/AddAffiliateLocationExtensions
- Extensions/AddHotelCallout
- Misc/UploadImageAsset
- Remarketing/SetUpAdvancedRemarketing
- Remarketing/SetUpRemarketing
- Renamed code examples
- Extensions/AddGoogleMyBusinessLocationExtensions => Extensions/AddGoogleMyBusinessLocationExtensions
- Marked multiple issues as fixed.
- Refactored the logging code to introduce an interface that handles API-specific logging logic.
- Regenerated stubs for v8 and v9 of the Google Ads API to pick up the correct copyright year.
- Fixed some build warnings for .NET472.
- Excluded autogenerated stub tests from presubmit script. Started running tests for netcoreapp3.1, net5.0 on presubmit.
- Added support for v9 of the Google Ads API.
- Migrated some code examples to use Assets.
- Updated Extensions\AddHotelCallout.cs
- Updated Extensions\AddPrices.cs
- Updated Extensions\AddSitelinks.cs
- Added Extensions\AddSitelinksUsingAssets.cs
- Deleted Extensions\AddSitelinksUsingFeeds.cs
- Fix googleads#320. Use channel settings instead of environment variable to set proxy.
- Updated AdvancedOperations/AddSmartCampaign.cs to use GetKeywordThemeSuggestions.
- Separated the Summary and Detailed Log String Creation. Fix was contributed by Kevin (https://github.com/aukevin)
- Added tests for async MediaUtilities. Fix was contributed by Jarrod Mosen (https://github.com/wub)
- Regenerated all stubs to work with the latest code generator.
- Added support for warnings. Updated Remarketing\UploadStoreSalesTransactions.cs example.
- Upgraded all dependencies where possible.
- Introduced an async version of GetAssetDataFromUrl. Feature contributed by Jarrod Mosen (https://github.com/wub)
- Fixed the short url in code examples.
- Updated various issue templates.
- Simplified the ExampleRunner::PrintAvailableExamples method to print just class names.
- Added new code examples.
- AdvancedOperations\AddBiddingDataExclusion.cs
- AdvancedOperations\AddBiddingSeasonalityAdjustment.cs
- Add gccl version header for logging purposes.
- Added support for version v8_1 of the Google Ads API.
- Removed support for version v6 of the Google Ads API.
- Added new code examples.
- Migration\CampaignReportToCsv.cs.
- Fixed a few code examples.
- Fix the video ID in AddLocalCampaign.cs.
- Added SmartCampaignSuggestionService to AddSmartCampaign example.
- Updated AccountManagement/GetChangeDetails.cs to add support for more asset types.
- Removed some code examples.
- Removed AddGmailAd.cs.
- Downgrade a few dependencies to make the library work on Azure. Fixes googleads#302.
- Fixed the example runner.
- Update example runner to disambiguate error conditions.
- Fix bug where exceptions were swallowed by incorrect condition.
- Refactor example type extraction into GetCodeExampleType.
- Removed support for version v5 of the Google Ads API.
- Added support for version v8 of the Google Ads API.
- Updated all code examples to use CommandLineParser library. Fixes googleads#241.
- Convert the grpc channel settings from constants to configurable settings. Fixes googleads#285.
- Add support for enums in FieldMasks.AllSetFieldsOf. Fixes googleads#289.
- Added new code examples
- UseCrossAccountBiddingStrategy.cs
- AddSmartCampaign.cs
- Updated UploadStoreSalesTransactions.cs code example.
- Converted AuthenticateInDesktopApplication into a nuget tool. Fixes googleads#164.
- Marked a couple of tests as non-parallelizable to fix flakiness.
- Removed support for v4 of the API. See https://ads-developers.googleblog.com/2021/04/google-ads-api-v4-and-v5-sunset-reminder.html for details.
- Added support for v7 of the API. See https://developers.google.com/google-ads/api/docs/release-notes#v7_0 for details
- Updated the GetAdGroupBidModifiers example to include hotel_check_in_date_range field.
- Updated the parameter names in some code examples to match examples in other languages.
- Fixed a couple of broken tests cases.
- Added new code examples. -- Billing\GetInvoices.cs -- Extensions\MigratePromotionFeedToAsset.cs -- Remarketing\AddCustomAudience.cs
- Made the tests parallelizable.
- Updated the includecode regions in various code examples to make it consistent with other libraries.
- Simplified the logic of Fieldmasks::AllSetFieldsOf() method. Also, fix the logic when non-optional singular fields are parsed.
- Fixed a minor bug in HandlePartialFailure.
- Regenerated all stubs. This adds default timeouts for RPC calls in service stub classes.
- Limited the scope of channel cache from global to client level. Provided a flag in GoogleAdsConfig class to control the channel cache
- Added a code example for setting custom timeout.
- Added a new overloaded signature for SearchStream() method that accepts a CallSettings object.
- Fixed all outdated documentation links that pointed to AdWords API documenation.
- Bumped all library dependencies.
- Google.Protobuf: 3.15.6
- Grpc.Core: 2.36.4
- Removed the use of HasPartnersBadge property in CreateCustomer.cs.
- Remove the use for LanguageCode and DomainName properties in AddDynamicPageFeed.cs.
- Added support for .NET 5.0 and make it the default version for tests.
- Refine the region tag in various code examples.
- Fixed a comment in ValidateTextAd code example.
- Fixed an issue with AddDynamicPageFeed code example.
- Fixed googleads#277.
- Added support for v6_1 of Google Ads API. See https://developers.google.com/google-ads/api/docs/release-notes#v6_1 for details.
- Removed support for v3 of Google Ads API. See https://ads-developers.googleblog.com/2021/01/google-ads-api-v3-sunset-reminder.html for details.
- Fixed a few code examples
- AddCampaignBidModifier.cs
- GetChangeDetails.cs
- AddDisplayUploadAd.cs
- Added new code examples for CustomerUserAccessInvitation.
- AccountManagement\GetPendingInvitations.cs
- AccountManagement\InviteUserWithAccessRole.cs
- Fixed the logging to mask email addresses in CustomerUserAccessInvitation.
- Added a new code example for Image extensions.
- Extensions\AddImageExtension.cs
- Added a new ASP.NET Core example for OAuth2 web flow -- AuthenticateInWebApplication. The existing ASP.NET + Webforms example was renamed to AuthenticateInAspNetWebApplication.
- Bumped the grpc dependencies.
- Grpc.Core: 2.35.0
- Regenerated the stub code for all versions. Added a change to hide the autogenerated service builder classes, since they don't initialize the services correctly.
- Updated the GoogleAdsConfig::OAuth2Scope field to accept a comma separated list of multiple OAuth2 scopes.
- Fixed googleads#263
- Fixed a few code examples
- SetupRemarketing.cs
- GetAccountHierarchy.cs
- AddShoppingProductListingGroupTree.cs
- UpdateSitelink.cs
- GetAdGroupBidModifiers.cs
- Fixed the build badge URL in the README.md file.
- Added region tags in all code examples. This makes it easier to embed the code examples in the developer guides.
- Fixed a broken urls to guide references in some code examples.
- Added new code examples for FeedItemSets.
- Feeds\CreateFeedItemSet.cs
- Feeds\GetFeedItemsOfFeedItemSet.cs
- Feeds\LinkFeedItemSet.cs
- Added a profiler for the client library to capture client time breakdown by serialization, deserialization and over-the-wire times.
- Bumped the protobuf and grpc dependencies. This is required due to protocolbuffers/protobuf#8027. The full version bump lists are:
- Google.Protobuf: 3.14.0
- Grpc.Core: 2.34.0
- Microsoft.Extensions.Configuration: 5.0.0.
- System.Configuration.ConfigurationManager: 5.0.0
- Added support for v6 of Google Ads API. See https://developers.google.com/google-ads/api/docs/release-notes#v6 for release notes.
- Removed support for v2 of the Google Ads API. See https://developers.google.com/google-ads/api/docs/sunset-dates and https://ads-developers.googleblog.com/2020/08/google-ads-api-v2-sunset-reminder.html for more details.
- The library dependencies were bumped as listed below:
- Google.Api.Gax and related assemblies: 3.2.0
- Grpc.Core and related assemblies: 2.33.1
- Microsoft.Extensions and related assemblies: 3.1.9
- Fixed the README.md file to make it minimal. See https://developers.google.com/google-ads/api/docs/client-libs/dotnet for detailed documentation.
- Fixed the conditional compilation for net472.
- Added a utility method in FieldMasks.cs to fetch field values given a fieldmask.
- Added additional masking for PII in logs.
- Fixed the broken documentation links in multiple source files.
- Fixed broken examples.
- Billing\AddBillingSetup.cs
- Fixed issue 246 - Reporting\ParallelReportDownload.cs.
- Updated some examples.
- Updated the query in Billing\AddBillingSetup.cs.
- Fix a comment in Remarketing\UploadStoreSalesTransactions.cs.
- Simplified the paged search iteration in Billing\GetBillingSetup.cs.
- Renamed Authentication\AuthenticateInStandaloneApplication => Authentication\AuthenticateInDesktopApplication.
- Minor grammar fix in Remarketing\UploadCallConversion.cs.
- Renamed AccountManagement\GetAccountChanges.cs => AccountManagement\GetChangeSummary.cs.
- Fixed the resource name for DomainCategory.
- Fixed the PartialFailureError condition logic.
- Migrated all code examples to use proto3 presence instead of wrapper types. This improves the API performance and makes the API easier to work with native C# types.
- Added support for reading the settings.json file from an environment variable named GOOGLE_ADS_CONFIGURATION_FILE_PATH. The client library will try to load settings from this file if App.config is missing, and this environment variable is provided.
- Added support for reading individual settings from an environment variable. Supported settings
are:
- GOOGLE_ADS_OAUTH2_MODE
- GOOGLE_ADS_CLIENT_ID
- GOOGLE_ADS_CLIENT_SECRET
- GOOGLE_ADS_REFRESH_TOKEN
- GOOGLE_ADS_JSON_KEY_FILE_PATH
- GOOGLE_ADS_IMPERSONATED_EMAIL
- GOOGLE_ADS_DEVELOPER_TOKEN
- GOOGLE_ADS_LOGIN_CUSTOMER_ID
- GOOGLE_ADS_LINKED_CUSTOMER_ID
- Add new code examples.
- Remarketing\SetupRemarketing.cs.
- Remarketing\SetupAdvancedRemarketing.cs
- Remarketing\UpdateAudienceTargetRestriction.cs.
- AdvancedOperations\AddLocalCampaign.cs.
- HotelAds\AddHotelListingGroupTree.cs.
- AccountManagement\UpdateUserAccess.cs.
- AdvancedOperations\GetChangeDetails.cs.
- Extensions\UpdateSitelinkCampaignExtensionSetting.cs.
- Extensions\UpdateSitelink.cs.
- Extensions\RemoveEntireSitelinkCampaignExtensionSetting.cs.
- Extensions\AddLeadFormExtension.cs.
- Extensions\AddHotelCallout.cs.
- Fixed the PackageIconUrl property in Google.Ads.GoogleAds.csproj with PackageIcon as required by the latest .NET library.
- Downgrade the tests to use .netcoreapp3.0.
- Added support for v5 of Google Ads API. See https://developers.google.com/google-ads/api/docs/release-notes#500_beta_2020-08-26 for release notes.
- The library dependencies were bumped as listed below:
- Google.Api.CommonProtos: 2.1.0
- Google.Apis and related assemblies: 1.49.0.0
- Google.Api.Gax and related assemblies: 3.1.0
- Google.Protobuf: 3.13.0.0
- Grpc.Core and related assemblies: 2.31.0
- Microsoft.Extensions and related assemblies: 3.1.7
- DotNetCompilerPlatform: 3.6.0
- Added new code examples:
- Extensions/AddGeoTarget.cs
- Remarketing/AddLogicalUserList.cs
- Remarketing/AddCombinedRuleUserList.cs
- Remarketing/AddExpressionRuleUserList.cs
- Remarketing/AddConversionBasedUserList.cs
- Feeds/RemoveFeedItems.cs
- Feeds/RemoveFlightsFeedItemAttributeValue.cs
- Various minor changes to code examples for consistency with other client libraries.
- Renamed code examples:
- ShoppingAds/RejectMerchantCenterLink.cs => AccountManagement/RejectMerchantCenterLink.cs
- Extensions/UpdateFlightsFeedItemStringAttributeValue.cs => Feeds/UpdateFlightsFeedItemStringAttributeValue.cs
- Targeting/SearchForTargetableLanguagesAndCarriers.cs => Targeting/SearchForLanguageAndCarrierConstants.cs
- Fixed googleads#211
- Fixed googleads#231
- Added support for v4 of Google Ads API. See https://developers.google.com/google-ads/api/docs/release-notes#400_beta_2020-07-08 for release notes.
- Removed support for v1 of Google Ads API. See sunset reminder for v1 at https://ads-developers.googleblog.com/2020/06/google-ads-api-beta-v1-sunset-reminder.html. We are doing a major version bump for the library, since removing support for an API version is backward incompatible change.
- Added new code examples:
- Reporting/ParallelReportDownload.cs
- Reporting/UploadStoreSalesTransactions.cs
- Planning/GetAdGroupCriterionCpcBidSimulations.cs
- Extensions/AddSitelinksUsingFeeds.cs
- ErrorHandling/HandleKeywordPolicyViolations.cs
- ErrorHandling/HandleExpandedTextAdPolicyViolations.cs
- AdvancedOperations/AddDisplayUploadAd.cs
- Billing/AddBillingSetup.cs
- Renamed code examples:
- AddCompleteCampaignsUsingMutateJob.cs => AddCompleteCampaignsUsingBatchJob.cs
- Fixed googleads#185
- Fixed googleads#197
- Fixed googleads#201
- Fixed googleads#192
- Fixed googleads#203
- Bumped gRPC dependency to 2.29.0. Since this is a breaking change as per the gRPC team, we have made a corresponding bump in the major version of this library. See https://github.com/grpc/proposal/blob/master/L57-csharp-new-major-version.md to learn more about the gRPC changes.
- The library dependencies were bumped as listed below:
- Google.Protobuf: 3.12.2.
- Grpc.Core and related assemblies: 2.29.0
- Google.Api.Gax.Grpc and related assemblies: 3.0.0
- Google.LongRunning: 2.0.0
- .NET: netstandard2.0;net472 for libraries, and netcoreapp3.0;net472 for executables.
- Fixed googleads#163
- Fixed googleads#120
- Removed several method flattenings that involved validateOnly and partialFailure parameters. The
library provides method flattenings as convenience methods for the most common API use cases. Since
validateOnly and partialFailure parameters are optional for most of the API use cases (and default
to false), these overloaded methods provide limited value to developers and tend to confuse them.
We recommend using the method that uses the Request object as parameter as a replacement. You can
compare Remarketing\UploadOfflineConversion.cs as an example on how this affects the method usage.
The other updated code examples are:
- ErrorHandling\HandleRateExceededError.cs
- ErrorHandling\HandlePartialFailure.cs
- Remarketing\UploadOfflineConversion.cs
- Remarketing\UploadConversionAdjustment.cs
- Remarketing\UploadCallConversion.cs
- Remarketing\AddCustomerMatchUserList.cs
- CampaignManagement\ValidateTextAd.cs
- Changed the buildstatus image to be .svg format. Updated the path in the README.md file.
- Fixed googleads#157
- Fixed googleads#158
- Fixed googleads#159
- Fixed googleads#160
- Fixed googleads#168
- Added support for v3_1 of Google Ads API.
- Added new code examples.
- BasicOperations/UpdateExpandedTextAd.cs
- CampaignManagement/AddCompleteCampaignsUsingMutateJob.cs
- BasicOperations/GetResponsiveSearchAds.cs
- Extensions/AddAffiliateLocationExtensions.cs
- AccountManagement/GetAccountHierarchy.cs
- AccountManagement/AcceptServiceLinks.cs
- CampaignManagement/GraduateCampaignExperiment.cs
- Remarketing/UploadCallConversion.cs
- Targeting/SearchForTargetableLanguagesAndCarriers.cs
- Remarketing/AddCustomerMatchUserList.cs
- ShoppingAds/ApproveMerchantCenterLink.cs
- Renamed some code examples to make the names consistent with other library examples.
- ErrorHandling/HandlePartialFailures.cs => ErrorHandling/HandlePartialFailure.cs
- Extensions/UpdateFeedItemAttributeValue.cs => Extensions/UpdateFlightsFeedItemStringAttributeValue.cs
- Targeting/GetGeoTargetConstantsByName.cs => Targeting/GetGeoTargetConstantsByNames.cs
- Fixed broken code examples.
- BasicOperations/AddResponsiveSearchAd.cs
- BasicOperations/GetExpandedTextAds.cs
- Updated Billing/GetAccountBudgets.cs example to retrieve adjusted spending limit, and to use streaming instead of paged retrieval.
- Fixed the logging handler to handle situations where customer ID is not part of the request body.
- Add throw statement to all code examples. Add exception handling where missing.
- Standardized the INSERT_ADGROUP_ID placeholder name for parameters in various code examples.
- Renamed ResourceNames.CampaignExperiments method to ResourceNames.CampaignExperiment for consistency.
- Added support for v3 of Google Ads API.
- Upgraded all code examples and tests to use v3.
- Fixed AddShoppingProductListingGroupTree example to work with v3.
- Made changes to logging and exception handling framework to support streaming methods.
- The generated stubs no longer use the ExceptionCustomization feature of gax libraries, since the exception handling logic have moved to grpc interceptors. These stub classes have been removed from the distribution.
- Convert GetCampaigns and GetKeywordStats examples to use server streaming. See https://developers.google.com/google-ads/api/docs/reporting/streaming to learn more about server streaming.
- Add an empty
custom_nupkg
folder in the repo to help with testing dependent packages that are custom-built from GitHub sources. - Fixed the visibility of several test classes and methods.
- Added new code examples:
- AddPrices
- AddGoogleMyBusinessLocationExtensions
- AddAppCampaign
- UpdateCampaignCriterionBidModifier
- Refactored all the grpc metadata keynames into a standalone class.
- Added new code examples.
- AdvancedOperations\AddAdCustomerizer.cs
- AdvancedOperations\AddSmartDisplayAd.cs
- BasicOperations\AddResponsiveSearchAd.cs
- BasicOperations\AddAdGroup.cs renamed to BasicOperations\AddAdGroups.cs
- CampaignManagement\AddCampaignLabels.cs
- CampaignManagement\GetCampaignsByLabel.cs
- CampaignManagement\SetAdParameters.cs
- CampaignManagement\ValidateTextAd.cs
- ErrorHandling\HandleRateExceededError.cs
- Extensions\AddSitelinks.cs
- Extensions\UpdateFeedItemAttributeValue.cs
- Misc\GetAllImageAssets.cs
- Misc\GetAllVideosAndImages.cs.cs
- Misc\UploadImage.cs
- Misc\UploadImageAsset.cs
- Misc\UploadMediaBundle.cs
- Remarketing\AddFlightsFeed.cs
- Remarketing\AddRealEstateFeed.cs
- Remarketing\AddRemarketingAction.cs
- Remarketing\UploadConversionAdjustment.cs
- ShoppingAds\AddShoppingSmartAd.cs
- ShoppingAds\GetProductBiddingCategoryConstant.cs
- Targeting\AddCustomerNegativeCriteria.cs
- Targeting\AddDemographicTargetingCriteria.cs
- Added tests for some code examples. All new code examples will have tests, tests for previous code examples will be backfilled in upcoming releases.
- Signing was added to Google.Ads.GoogleAds.Examples.csproj to facilitate tests for code examples.
- Fixed googleads#118. You can now extend GoogleAdsConfig class, override CreateCredentials() method to provide your own logic for caching credentials.
- Removed JsonBodyFormatter and TraceFormatter classes. Since the library works with proto objects, it is cleaner to do the formatting directly with the objects instead of converting it into a Json object and processing it. Part of the relevant functionality was pulled into LogEntry class.
- Additional null checks were added into LoggingInterceptor::GetPartialFailures() method. This provides a less noisy debugging experience as well as better performance.
- Fixed googleads#117
- googleads#116
- Fixed broken tests in GoogleAdsClientTests suite and GoogleAdsServiceClientFactoryTests suite. Also fixed StubIntegrityTestHelper.cs to work with the fixed suites.
- Google.Ads.GoogleAds.Tests.csproj currently runs only for net452 target. This is a temporary workaround until nunit/nunit3-vs-adapter#17 is fixed for netcore and makes its way into a stable release.
- Remove reference to Google.Ads.GoogleAds nuget package in Google.Ads.GoogleAds.Tests.csproj. Tests should build and run against the csproj instead.
- Added nuget package references to the new nuget packages for .NET SDK. This allows you to build .NET SDK projects using dotnet command only.
- Refactored the tests suite.
- Move ExampleTestsBase.cs to v2 folder.
- Add an ExamplesTestSetup.cs file for single-place initialization for the whole test suite.
- Add an ExampleTestsUtils.cs file with several methods for Setup for tests.
- Fixed googleads#99
- Optimize for a check on section name if it is empty in the GoogleAdsConfig class.
- Add a specialized ConfigSetting class named StringConfigSetting for string settings, so its parsing can be bypassed. Switch all string-based setting parsing to this type in the GoogleAdsConfig class.
- Expose the Dictionary constructor in the base class at GoogleAdsConfig level.
- Improve how DEFAULT_TIMEOUT is represented in GoogleAdsConfig class.
- Eliminate the provision to use user CallSettings.
- Eliminate reflection in creating service, instead use specific autogenerated methods to create the service settings.
- Add an explicit dependency on Google.Protobuf so we can use a newer version than what Gax.Grpc uses.
- Bump all nuget dependencies to the latest versions.
- Remove deprecated PackageLicenseUrl setting from Google.Ads.GoogleAds.csproj, and replace it with PackageLicenseExpression setting instead.
- Update AddHotelAd.cs example to change the AdGroupAd status to be Enabled.
- Added support for Google Ads API v2.2. See release notes: https://developers.google.com/google-ads/api/docs/release-notes#220_beta_2019-09-25
- Fix the namespace for OAuth2Flow enum.
- Fix the CachedChannelFactory so that various grpc settings work as intended.
- Add a fix to check for null values of LoginCustomerId.
- Minor code refactor to improve how the GoogleAdsServiceClientFactory class handles LoginCustomerId setting.
- Fix a bug in ExampleRunner around running code examples multiple times.
- Fix a broken web.config for the AuthenticateInWebApplication example.
- Bump all the external library dependencies to their latest versions. Grpc.Core is still on 1.22.1 since its 2.x version is breaking in nature. See https://github.com/grpc/proposal/blob/master/L57-csharp-new-major-version.md for additional context.
- Added a few internal properties and methods for better testing of the client library.
- Added support for Google Ads API v2.1. See release notes: https://developers.google.com/google-ads/api/docs/release-notes#210_beta_2019-08-08
- Added Channel Caching
- Fixed Partial failure support for Google.Ads.GoogleAds.Logging.LoggingInterceptor
- Updated Timeouts to align with server-side configuration
- Added ability to override call settings
- Increase grpc.max_metadata_size to 16MB and grpc.max_receive_message_length to 64MB
- LRO Credential bug fixed
- Added support for Google Ads API v2.0. See release notes: https://developers.google.com/google-ads/api/docs/release-notes#200_2019-06-26
- Fixed googleads#98
- Fixed googleads#97
- Fixed googleads#96
- Fixed googleads#95
- Fixed googleads#94
- Fixed googleads#93
- Fixed googleads#86
- Fixed googleads#82
- Added new examples -- CampaignManagement/AddCampaignDraft.cs -- CampaignManagement/CreateCampaignExperiment.cs -- AdvancedOperations/AddGmailAd.cs -- AccountManagement/LinkManagerToClient.cs -- AdvancedOperations/AddDynamicPageFeed.cs -- AdvancedOperations/AddDynamicSearchAds.cs
- Updated the API to allow users to specify their own custom callsettings when creating a service.
- Ported HttpUtilities and MediaUtilities from the AdWords API library. These utilities simplify code when working with Media assets.
- Added support for Google Ads API v1.3. See release notes: https://developers.google.com/google-ads/api/docs/release-notes#130_2019-05-22
- Increased the default timeout for services to 120 seconds.
- Made a change to generate logs only if appropriate logging levels are set.
- Fixed googleads#59.
- Added support for Google Ads API v1.2 See release notes: https://developers.google.com/google-ads/api/docs/release-notes#120_2019-04-29
- Removed support for Google Ads API v0. See sunset announcement: https://ads-developers.googleblog.com/2019/03/upgrade-to-new-google-ads-api-to-get.html
- Made a major version bump due to removal of support for v0.
- Updated all nuget dependencies to the latest stable versions.
- Added support for Google Ads API v1.1 See release notes: https://developers.google.com/google-ads/api/docs/release-notes#110_2019-03-27
- Added support for Google Ads API v1.0 See release notes: https://developers.google.com/google-ads/api/docs/release-notes#100_2019-02-27
- Fixed an issue with login-customer-id header not being sent correctly to the server.
Added support for Google Ads API v0.7. See release notes: https://developers.google.com/google-ads/api/docs/release-notes#070_2019-01-30
- Added new code examples. -- HotelAds/GetHotelAdsPerformance.cs
- Removed code example. -- CampaignManagement/AddCampaignGroup.cs
- Updated code examples. -- Reporting/GetKeywordStats.cs now uses segments.date field instead of fields date.
- Added new overloaded methods for all services that use validateOnly and partialFailure headers as optional parameters.
- Added support for running code examples from command line.
- Fixed minor errors with the README.md file.
- Made minor fixes to LogEntry tests.
- Fixed googleads#40
- Fixed googleads#39
- Fixed googleads#31
- Fixed googleads#30
- Fixed googleads#28
- Fixed googleads#27
- Fixed googleads#26
- Added new code examples. -- AccountManagement/GetAccessibleCustomers.cs -- Recommendations/DismissRecommendation.cs -- AccountManagement/CreateCustomer.cs -- Planning/GenerateKeywordIdeas.cs -- Planning/AddKeywordPlan.cs -- Planning/GenerateForecastMetrics.cs
- Fixed a file encoding issue with Targeting/AddCampaignTargetingCriteria.cs example.
- Added support for Google Ads API v0.6. See release notes: https://developers.google.com/google-ads/api/docs/release-notes#060_2018-11-29
- Added support for Google Ads API v0.5. See release notes: https://developers.google.com/google-ads/api/docs/release-notes#050_2018-10-31
- Testing an new release process.
- Added support for Google Ads API v0.4. See release notes: https://developers.google.com/google-ads/api/docs/release-notes#040_2018-09-21.
- New code examples were added to illustrate shopping campaigns, billing and retrieving account changes.
- Updated nuget package references for Grpc.Core, Google.Apis.Auth and Moq to the latest version.
- Added support for Google Ads API v0.3. See release notes: https://developers.google.com/google-ads/api/docs/release-notes#030_2018-08-29.
- New code examples were added to illustrate shared keyword sets, campaign groups and campaign bid modifiers.
- Added support for logging of API requests and responses.
- Reformatted the code to match Microsoft's C# coding conventions: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/inside-a-program/coding-conventions
- Updated nuget package references for Grpc.Core and Google.Api.Gax.Grpc to the latest version.
- Refactored service creation logic.
- Added support for PercentCpc bidding strategy.
- Updated the Hotel Ads example to use PercentCpc bidding strategy.
- Added an explicit dependency on Grpc.Core as a workaround to grpc/grpc#11279.
- Added support for Hotel Ads and Recommendations.
- Cleaned up and enabled authentication examples.
- Updated Google.Api.Gax.Grpc dependency to 2.4.0.
- Updated System.Configuration.ConfigurationManager dependency to 4.5.0.
- Added support for V0 of Google Ads API.