Basic Operations Samples

The code samples below provide examples of basic operations using the AdWords API. Client Library.

Add demographic target criteria to an ad group

' Copyright 2018 Google LLC
'
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
' You may obtain a copy of the License at
'
'     http://www.apache.org/licenses/LICENSE-2.0
'
' Unless required by applicable law or agreed to in writing, software
' distributed under the License is distributed on an "AS IS" BASIS,
' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' See the License for the specific language governing permissions and
' limitations under the License.

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201809

Namespace Google.Api.Ads.AdWords.Examples.VB.v201809
    ''' <summary>
    ''' This code example adds demographic target criteria to an ad group. To get
    ''' ad groups, run AddAdGroup.vb.
    ''' </summary>
    Public Class AddAdGroupDemographicCriteria
        Inherits ExampleBase

        ''' <summary>
        ''' Main method, to run this code example as a standalone application.
        ''' </summary>
        ''' <param name="args">The command line arguments.</param>
        Public Shared Sub Main(ByVal args As String())
            Dim codeExample As New AddAdGroupDemographicCriteria
            Console.WriteLine(codeExample.Description)
            Try
                Dim adGroupId As Long = Long.Parse("INSERT_ADGROUP_ID_HERE")
                codeExample.Run(New AdWordsUser, adGroupId)
            Catch e As Exception
                Console.WriteLine("An exception occurred while running this code example. {0}",
                                  ExampleUtilities.FormatException(e))
            End Try
        End Sub

        ''' <summary>
        ''' Returns a description about the code example.
        ''' </summary>
        Public Overrides ReadOnly Property Description() As String
            Get
                Return _
                    "This code example adds demographic target criteria to an ad group. To get " &
                    "ad groups, run AddAdGroup.vb."
            End Get
        End Property

        ''' <summary>
        ''' Runs the code example.
        ''' </summary>
        ''' <param name="user">The AdWords user.</param>
        ''' <param name="adGroupId">Id of the ad group to which criteria are
        ''' added.</param>
        Public Sub Run(ByVal user As AdWordsUser, ByVal adGroupId As Long)
            Using adGroupCriterionService As AdGroupCriterionService = CType(
                user.GetService(
                    AdWordsService.v201809.AdGroupCriterionService),
                AdGroupCriterionService)

                ' Create biddable ad group criterion for gender
                Dim genderTarget As New Gender()
                ' Criterion Id for male. The IDs can be found here
                ' https://developers.google.com/adwords/api/docs/appendix/genders
                genderTarget.id = 10

                Dim genderBiddableAdGroupCriterion As New BiddableAdGroupCriterion()
                genderBiddableAdGroupCriterion.adGroupId = adGroupId
                genderBiddableAdGroupCriterion.criterion = genderTarget

                ' Create negative ad group criterion for age range
                Dim ageRangeNegative As New AgeRange()
                ' Criterion Id for age 18 to 24. The IDs can be found here
                ' https://developers.google.com/adwords/api/docs/appendix/ages

                ageRangeNegative.id = 503001
                Dim ageRangeNegativeAdGroupCriterion As New NegativeAdGroupCriterion()
                ageRangeNegativeAdGroupCriterion.adGroupId = adGroupId
                ageRangeNegativeAdGroupCriterion.criterion = ageRangeNegative

                ' Create operations.
                Dim genderBiddableAdGroupCriterionOperation As New AdGroupCriterionOperation()
                genderBiddableAdGroupCriterionOperation.operand = genderBiddableAdGroupCriterion
                genderBiddableAdGroupCriterionOperation.operator = [Operator].ADD

                Dim ageRangeNegativeAdGroupCriterionOperation As New AdGroupCriterionOperation()
                ageRangeNegativeAdGroupCriterionOperation.operand = ageRangeNegativeAdGroupCriterion
                ageRangeNegativeAdGroupCriterionOperation.operator = [Operator].ADD

                Dim operations As New List(Of Operation)
                operations.Add(genderBiddableAdGroupCriterionOperation)
                operations.Add(ageRangeNegativeAdGroupCriterionOperation)

                Try
                    ' Add ad group criteria.
                    Dim result As AdGroupCriterionReturnValue = adGroupCriterionService.mutate(
                        CType(operations.ToArray, AdGroupCriterionOperation()))

                    ' Display ad group criteria.
                    If (Not result Is Nothing) AndAlso Not (result.value Is Nothing) Then
                        For Each adGroupCriterionResult As AdGroupCriterion In result.value
                            Console.WriteLine(
                                "Ad group criterion with ad group id '{0}', criterion id " &
                                "'{1}', and type '{2}' was added.",
                                adGroupCriterionResult.adGroupId,
                                adGroupCriterionResult.criterion.id,
                                adGroupCriterionResult.criterion.CriterionType)
                        Next
                    Else
                        Console.WriteLine("No ad group criteria were added.")
                    End If
                Catch e As Exception
                    Throw New System.ApplicationException("Failed to create ad group criteria.", e)
                End Try
            End Using
        End Sub
    End Class
End Namespace

Add ad groups to a campaign

' Copyright 2018 Google LLC
'
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
' You may obtain a copy of the License at
'
'     http://www.apache.org/licenses/LICENSE-2.0
'
' Unless required by applicable law or agreed to in writing, software
' distributed under the License is distributed on an "AS IS" BASIS,
' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' See the License for the specific language governing permissions and
' limitations under the License.

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201809

Namespace Google.Api.Ads.AdWords.Examples.VB.v201809
    ''' <summary>
    ''' This code example illustrates how to create ad groups. To create
    ''' campaigns, run AddCampaigns.vb.
    ''' </summary>
    Public Class AddAdGroups
        Inherits ExampleBase

        ''' <summary>
        ''' Number of items being added / updated in this code example.
        ''' </summary>
        Const NUM_ITEMS As Integer = 5

        ''' <summary>
        ''' Main method, to run this code example as a standalone application.
        ''' </summary>
        ''' <param name="args">The command line arguments.</param>
        Public Shared Sub Main(ByVal args As String())
            Dim codeExample As New AddAdGroups
            Console.WriteLine(codeExample.Description)
            Try
                Dim campaignId As Long = Long.Parse("INSERT_CAMPAIGN_ID_HERE")
                codeExample.Run(New AdWordsUser, campaignId)
            Catch e As Exception
                Console.WriteLine("An exception occurred while running this code example. {0}",
                                  ExampleUtilities.FormatException(e))
            End Try
        End Sub

        ''' <summary>
        ''' Returns a description about the code example.
        ''' </summary>
        Public Overrides ReadOnly Property Description() As String
            Get
                Return _
                    "This code example illustrates how to create ad groups. To create campaigns," &
                    " run AddCampaigns.vb"
            End Get
        End Property

        ''' <summary>
        ''' Runs the code example.
        ''' </summary>
        ''' <param name="user">The AdWords user.</param>
        ''' <param name="campaignId">Id of the campaign to which ad groups are
        ''' added.</param>
        Public Sub Run(ByVal user As AdWordsUser, ByVal campaignId As Long)
            Using adGroupService As AdGroupService = CType(
                user.GetService(
                    AdWordsService.v201809.AdGroupService),
                AdGroupService)

                Dim operations As New List(Of AdGroupOperation)

                For i As Integer = 1 To NUM_ITEMS
                    ' Create the ad group.
                    Dim adGroup As New AdGroup
                    adGroup.name = String.Format("Earth to Mars Cruises #{0}",
                                                 ExampleUtilities.GetRandomString)
                    adGroup.status = AdGroupStatus.ENABLED
                    adGroup.campaignId = campaignId

                    ' Set the ad group bids.
                    Dim biddingConfig As New BiddingStrategyConfiguration()

                    Dim cpcBid As New CpcBid()
                    cpcBid.bid = New Money()
                    cpcBid.bid.microAmount = 10000000

                    biddingConfig.bids = New Bids() {cpcBid}

                    adGroup.biddingStrategyConfiguration = biddingConfig

                    ' Optional: Set targeting restrictions.
                    ' Depending on the criterionTypeGroup value, most TargetingSettingDetail
                    ' only affect Display campaigns. However, the USER_INTEREST_AND_LIST value
                    ' works for RLSA campaigns - Search campaigns targeting using a
                    ' remarketing list.
                    Dim targetingSetting As New TargetingSetting()

                    ' Restricting to serve ads that match your ad group placements.
                    ' This is equivalent to choosing "Target and bid" in the UI.
                    Dim placementDetail As New TargetingSettingDetail()
                    placementDetail.criterionTypeGroup = CriterionTypeGroup.PLACEMENT
                    placementDetail.targetAll = False

                    ' Using your ad group verticals only for bidding. This is equivalent
                    ' to choosing "Bid only" in the UI.
                    Dim verticalDetail As New TargetingSettingDetail()
                    verticalDetail.criterionTypeGroup = CriterionTypeGroup.VERTICAL
                    verticalDetail.targetAll = True

                    targetingSetting.details = New TargetingSettingDetail() _
                        {placementDetail, verticalDetail}

                    adGroup.settings = New Setting() {targetingSetting}

                    ' Set the rotation mode.
                    Dim rotationMode As New AdGroupAdRotationMode
                    rotationMode.adRotationMode = AdRotationMode.OPTIMIZE
                    adGroup.adGroupAdRotationMode = rotationMode

                    ' Create the operation.
                    Dim operation As New AdGroupOperation
                    operation.operator = [Operator].ADD
                    operation.operand = adGroup

                    operations.Add(operation)
                Next

                Try
                    ' Create the ad group.
                    Dim retVal As AdGroupReturnValue = adGroupService.mutate(operations.ToArray())

                    ' Display the results.
                    If ((Not retVal Is Nothing) AndAlso (Not retVal.value Is Nothing) AndAlso
                        (retVal.value.Length > 0)) Then
                        For Each newAdGroup As AdGroup In retVal.value
                            Console.WriteLine(
                                "Ad group with id = '{0}' and name = '{1}' was created.",
                                newAdGroup.id, newAdGroup.name)
                        Next
                    Else
                        Console.WriteLine("No ad groups were created.")
                    End If
                Catch e As Exception
                    Throw New System.ApplicationException("Failed to create ad groups.", e)
                End Try
            End Using
        End Sub
    End Class
End Namespace

Add campaigns

' Copyright 2018 Google LLC
'
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
' You may obtain a copy of the License at
'
'     http://www.apache.org/licenses/LICENSE-2.0
'
' Unless required by applicable law or agreed to in writing, software
' distributed under the License is distributed on an "AS IS" BASIS,
' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' See the License for the specific language governing permissions and
' limitations under the License.

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201809

Namespace Google.Api.Ads.AdWords.Examples.VB.v201809
    ''' <summary>
    ''' This code example adds campaigns. To get campaigns, run GetCampaigns.vb.
    ''' </summary>
    Public Class AddCampaigns
        Inherits ExampleBase

        ''' <summary>
        ''' Number of items being added / updated in this code example.
        ''' </summary>
        Const NUM_ITEMS As Integer = 5

        ''' <summary>
        ''' Main method, to run this code example as a standalone application.
        ''' </summary>
        ''' <param name="args">The command line arguments.</param>
        Public Shared Sub Main(ByVal args As String())
            Dim codeExample As New AddCampaigns
            Console.WriteLine(codeExample.Description)
            Try
                codeExample.Run(New AdWordsUser)
            Catch e As Exception
                Console.WriteLine("An exception occurred while running this code example. {0}",
                                  ExampleUtilities.FormatException(e))
            End Try
        End Sub

        ''' <summary>
        ''' Returns a description about the code example.
        ''' </summary>
        Public Overrides ReadOnly Property Description() As String
            Get
                Return "This code example adds campaigns. To get campaigns, run GetCampaigns.vb."
            End Get
        End Property

        ''' <summary>
        ''' Runs the code example.
        ''' </summary>
        ''' <param name="user">The AdWords user.</param>
        Public Sub Run(ByVal user As AdWordsUser)
            Using campaignService As CampaignService = CType(
                user.GetService(
                    AdWordsService.v201809.CampaignService),
                CampaignService)

                Dim budget As Budget = CreateBudget(user)

                Dim operations As New List(Of CampaignOperation)

                For i As Integer = 1 To NUM_ITEMS
                    ' Create the campaign.
                    Dim campaign As New Campaign
                    campaign.name = "Interplanetary Cruise #" & ExampleUtilities.GetRandomString
                    campaign.advertisingChannelType = AdvertisingChannelType.SEARCH

                    ' Recommendation: Set the campaign to PAUSED when creating it to prevent
                    ' the ads from immediately serving. Set to ENABLED once you've added
                    ' targeting and the ads are ready to serve.
                    campaign.status = CampaignStatus.PAUSED

                    Dim biddingConfig As New BiddingStrategyConfiguration()
                    biddingConfig.biddingStrategyType = BiddingStrategyType.MANUAL_CPC
                    campaign.biddingStrategyConfiguration = biddingConfig

                    ' Set the campaign budget.
                    campaign.budget = New Budget
                    campaign.budget.budgetId = budget.budgetId

                    ' Set the campaign network options.
                    campaign.networkSetting = New NetworkSetting
                    campaign.networkSetting.targetGoogleSearch = True
                    campaign.networkSetting.targetSearchNetwork = True
                    campaign.networkSetting.targetContentNetwork = False
                    campaign.networkSetting.targetPartnerSearchNetwork = False

                    ' Set the campaign geo target and keyword match settings.
                    Dim geoSetting As New GeoTargetTypeSetting
                    geoSetting.positiveGeoTargetType =
                        GeoTargetTypeSettingPositiveGeoTargetType.DONT_CARE
                    geoSetting.negativeGeoTargetType =
                        GeoTargetTypeSettingNegativeGeoTargetType.DONT_CARE

                    campaign.settings = New Setting() {geoSetting}

                    ' Optional: Set the start date.
                    campaign.startDate = DateTime.Now.AddDays(1).ToString("yyyyMMdd")

                    ' Optional: Set the end date.
                    campaign.endDate = DateTime.Now.AddYears(1).ToString("yyyyMMdd")

                    ' Optional: Set the frequency cap.
                    Dim frequencyCap As New FrequencyCap
                    frequencyCap.impressions = 5
                    frequencyCap.level = Level.ADGROUP
                    frequencyCap.timeUnit = TimeUnit.DAY
                    campaign.frequencyCap = frequencyCap

                    ' Create the operation.
                    Dim operation As New CampaignOperation
                    operation.operator = [Operator].ADD
                    operation.operand = campaign
                    operations.Add(operation)
                Next

                Try
                    ' Add the campaign.
                    Dim retVal As CampaignReturnValue = campaignService.mutate(operations.ToArray())

                    ' Display the results.
                    If ((Not retVal Is Nothing) AndAlso (Not retVal.value Is Nothing) AndAlso
                        (retVal.value.Length > 0)) Then
                        For Each newCampaign As Campaign In retVal.value
                            Console.WriteLine(
                                "Campaign with name = '{0}' and id = '{1}' was added.",
                                newCampaign.name,
                                newCampaign.id)
                        Next
                    Else
                        Console.WriteLine("No campaigns were added.")
                    End If
                Catch e As Exception
                    Throw New System.ApplicationException("Failed to add campaigns.", e)
                End Try
            End Using
        End Sub

        ''' <summary>
        ''' Creates the budget.
        ''' </summary>
        ''' <param name="user">The AdWords user.</param>
        ''' <returns>The budget instance.</returns>
        Private Shared Function CreateBudget(user As AdWordsUser) As Budget
            Using budgetService As BudgetService = CType(
                user.GetService(
                    AdWordsService.v201809.BudgetService),
                BudgetService)

                ' Create the campaign budget.
                Dim budget As New Budget
                budget.name = "Interplanetary Cruise Budget #" & ExampleUtilities.GetRandomString
                budget.deliveryMethod = BudgetBudgetDeliveryMethod.STANDARD
                budget.amount = New Money
                budget.amount.microAmount = 50000000

                Dim budgetOperation As New BudgetOperation
                budgetOperation.operator = [Operator].ADD
                budgetOperation.operand = budget

                Try
                    Dim budgetRetval As BudgetReturnValue = budgetService.mutate(
                        New BudgetOperation() {budgetOperation})
                    Return budgetRetval.value(0)
                Catch e As Exception
                    Throw New System.ApplicationException("Failed to add shared budget.", e)
                End Try
            End Using
        End Function
    End Class
End Namespace

Add expanded text ads to an ad group

' Copyright 2018 Google LLC
'
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
' You may obtain a copy of the License at
'
'     http://www.apache.org/licenses/LICENSE-2.0
'
' Unless required by applicable law or agreed to in writing, software
' distributed under the License is distributed on an "AS IS" BASIS,
' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' See the License for the specific language governing permissions and
' limitations under the License.

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201809

Namespace Google.Api.Ads.AdWords.Examples.VB.v201809
    ''' <summary>
    ''' This code example adds expanded text ads to a given ad group. To list
    ''' ad groups, run GetAdGroups.vb.
    ''' </summary>
    Public Class AddExpandedTextAds
        Inherits ExampleBase

        ''' <summary>
        ''' Number of ads being added / updated in this code example.
        ''' </summary>
        Const NUMBER_OF_ADS As Integer = 5

        ''' <summary>
        ''' Main method, to run this code example as a standalone application.
        ''' </summary>
        ''' <param name="args">The command line arguments.</param>
        Public Shared Sub Main(ByVal args As String())
            Dim codeExample As New AddExpandedTextAds
            Console.WriteLine(codeExample.Description)
            Try
                Dim adGroupId As Long = Long.Parse("INSERT_ADGROUP_ID_HERE")
                codeExample.Run(New AdWordsUser, adGroupId)
            Catch e As Exception
                Console.WriteLine("An exception occurred while running this code example. {0}",
                                  ExampleUtilities.FormatException(e))
            End Try
        End Sub

        ''' <summary>
        ''' Returns a description about the code example.
        ''' </summary>
        Public Overrides ReadOnly Property Description() As String
            Get
                Return "This code example adds expanded text ads to a given ad group. To list " &
                       "ad groups, run GetAdGroups.vb."
            End Get
        End Property

        ''' <summary>
        ''' Runs the code example.
        ''' </summary>
        ''' <param name="user">The AdWords user.</param>
        ''' <param name="adGroupId">Id of the ad group to which ads are added.
        ''' </param>
        Public Sub Run(ByVal user As AdWordsUser, ByVal adGroupId As Long)
            Using service As AdGroupAdService = CType(
                user.GetService(
                    AdWordsService.v201809.AdGroupAdService),
                AdGroupAdService)

                Dim operations As New List(Of AdGroupAdOperation)

                For i As Integer = 1 To NUMBER_OF_ADS
                    ' Create the expanded text ad.
                    Dim expandedTextAd As New ExpandedTextAd
                    expandedTextAd.headlinePart1 = "Cruise #" & i.ToString() & " to Mars"
                    expandedTextAd.headlinePart2 = "Best Space Cruise Line"
                    expandedTextAd.headlinePart3 = "For Your Loved Ones"
                    expandedTextAd.description = "Buy your tickets now!"
                    expandedTextAd.description2 = "Discount ends soon"
                    expandedTextAd.finalUrls = New String() {"http://www.example.com/" & i}

                    Dim expandedTextAdGroupAd As New AdGroupAd
                    expandedTextAdGroupAd.adGroupId = adGroupId
                    expandedTextAdGroupAd.ad = expandedTextAd

                    ' Optional: Set the status.
                    expandedTextAdGroupAd.status = AdGroupAdStatus.PAUSED

                    ' Create the operations.
                    Dim operation As New AdGroupAdOperation
                    operation.operator = [Operator].ADD
                    operation.operand = expandedTextAdGroupAd

                    operations.Add(operation)
                Next

                Dim retVal As AdGroupAdReturnValue = Nothing

                Try
                    ' Create the ads.
                    retVal = service.mutate(operations.ToArray())

                    ' Display the results.
                    If ((Not retVal Is Nothing) AndAlso (Not retVal.value Is Nothing)) Then
                        For Each adGroupAd As AdGroupAd In retVal.value
                            Dim newAd As ExpandedTextAd = CType(adGroupAd.ad, ExpandedTextAd)
                            Console.WriteLine(
                                "Expanded text ad with ID '{0}' and headline '{1} - {2}' " +
                                "was added.", newAd.id, newAd.headlinePart1, newAd.headlinePart2)
                        Next
                    Else
                        Console.WriteLine("No expanded text ads were created.")
                    End If
                Catch e As Exception
                    Throw New System.ApplicationException("Failed to create expanded text ads.", e)
                End Try
            End Using
        End Sub
    End Class
End Namespace

Add keywords to an ad group

' Copyright 2018 Google LLC
'
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
' You may obtain a copy of the License at
'
'     http://www.apache.org/licenses/LICENSE-2.0
'
' Unless required by applicable law or agreed to in writing, software
' distributed under the License is distributed on an "AS IS" BASIS,
' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' See the License for the specific language governing permissions and
' limitations under the License.

Imports System.Web
Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201809

Namespace Google.Api.Ads.AdWords.Examples.VB.v201809
    ''' <summary>
    ''' This code example adds keywords to an ad group. To get ad groups, run
    ''' GetAdGroups.vb.
    ''' </summary>
    Public Class AddKeywords
        Inherits ExampleBase

        ''' <summary>
        ''' Items being added in this code example.
        ''' </summary>
        ReadOnly KEYWORDS As String() = New String() {"mars cruise", "space hotel"}

        ''' <summary>
        ''' Main method, to run this code example as a standalone application.
        ''' </summary>
        ''' <param name="args">The command line arguments.</param>
        Public Shared Sub Main(ByVal args As String())
            Dim codeExample As New AddKeywords
            Console.WriteLine(codeExample.Description)
            Try
                Dim adGroupId As Long = Long.Parse("INSERT_ADGROUP_ID_HERE")
                codeExample.Run(New AdWordsUser, adGroupId)
            Catch e As Exception
                Console.WriteLine("An exception occurred while running this code example. {0}",
                                  ExampleUtilities.FormatException(e))
            End Try
        End Sub

        ''' <summary>
        ''' Returns a description about the code example.
        ''' </summary>
        Public Overrides ReadOnly Property Description() As String
            Get
                Return "This code example adds keywords to an ad group. To get ad groups, run " &
                       "GetAdGroups.vb."
            End Get
        End Property

        ''' <summary>
        ''' Runs the code example.
        ''' </summary>
        ''' <param name="user">The AdWords user.</param>
        ''' <param name="adGroupId">Id of the ad group to which keywords are added.
        ''' </param>
        Public Sub Run(ByVal user As AdWordsUser, ByVal adGroupId As Long)
            Using adGroupCriterionService As AdGroupCriterionService = CType(
                user.GetService(
                    AdWordsService.v201809.AdGroupCriterionService),
                AdGroupCriterionService)

                Dim operations As New List(Of AdGroupCriterionOperation)

                For Each keywordText As String In KEYWORDS
                    ' Create the keyword.
                    Dim keyword As New Keyword
                    keyword.text = keywordText
                    keyword.matchType = KeywordMatchType.BROAD

                    ' Create the biddable ad group criterion.
                    Dim keywordCriterion As New BiddableAdGroupCriterion
                    keywordCriterion.adGroupId = adGroupId
                    keywordCriterion.criterion = keyword

                    ' Optional: Set the user status.
                    keywordCriterion.userStatus = UserStatus.PAUSED

                    ' Optional: Set the keyword destination url.
                    keywordCriterion.finalUrls = New UrlList()
                    keywordCriterion.finalUrls.urls = New String() _
                        {"http://example.com/mars/cruise/?kw=" &
                         HttpUtility.UrlEncode(keywordText)}

                    ' Create the operations.
                    Dim operation As New AdGroupCriterionOperation
                    operation.operator = [Operator].ADD
                    operation.operand = keywordCriterion

                    operations.Add(operation)
                Next

                Try
                    ' Create the keywords.
                    Dim retVal As AdGroupCriterionReturnValue = adGroupCriterionService.mutate(
                        operations.ToArray())

                    ' Display the results.
                    If ((Not retVal Is Nothing) AndAlso (Not retVal.value Is Nothing)) Then
                        For Each adGroupCriterion As AdGroupCriterion In retVal.value
                            ' If you are adding multiple type of criteria, then you may need to
                            ' check for
                            '
                            ' if (adGroupCriterion is Keyword) { ... }
                            '
                            ' to identify the criterion type.
                            Console.WriteLine(
                                "Keyword with ad group id = '{0}, keyword id = '{1}, text = " &
                                "'{2}' and match type = '{3}' was created.",
                                adGroupCriterion.adGroupId,
                                adGroupCriterion.criterion.id,
                                TryCast(adGroupCriterion.criterion, Keyword).text,
                                TryCast(adGroupCriterion.criterion, Keyword).matchType)
                        Next
                    Else
                        Console.WriteLine("No keywords were added.")
                    End If
                Catch e As Exception
                    Throw New System.ApplicationException("Failed to create keywords.", e)
                End Try
            End Using
        End Sub
    End Class
End Namespace

Add a responsive search ad to an ad group

' Copyright 2018 Google LLC
'
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
' You may obtain a copy of the License at
'
'     http://www.apache.org/licenses/LICENSE-2.0
'
' Unless required by applicable law or agreed to in writing, software
' distributed under the License is distributed on an "AS IS" BASIS,
' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' See the License for the specific language governing permissions and
' limitations under the License.

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201809

Namespace Google.Api.Ads.AdWords.Examples.VB.v201809
    ''' <summary>
    ''' This code example adds a responsive search ad to a given ad group. To get ad groups,
    ''' run GetAdGroups.vb.
    ''' </summary>
    Public Class AddResponsiveSearchAd
        Inherits ExampleBase

        ''' <summary>
        ''' Main method, to run this code example as a standalone application.
        ''' </summary>
        ''' <param name="args">The command line arguments.</param>
        Public Shared Sub Main(ByVal args As String())
            Dim codeExample As New AddResponsiveSearchAd
            Console.WriteLine(codeExample.Description)
            Try
                Dim adGroupId As Long = Long.Parse("INSERT_ADGROUP_ID_HERE")
                codeExample.Run(New AdWordsUser, adGroupId)
            Catch e As Exception
                Console.WriteLine("An exception occurred while running this code example. {0}",
                                  ExampleUtilities.FormatException(e))
            End Try
        End Sub

        ''' <summary>
        ''' Returns a description about the code example.
        ''' </summary>
        Public Overrides ReadOnly Property Description() As String
            Get
                Return _
                    "This code example adds a responsive search ad to a given ad group. To get " +
                    "ad groups, run GetAdGroups.vb."
            End Get
        End Property

        ''' <summary>
        ''' Runs the code example.
        ''' </summary>
        ''' <param name="user">The AdWords user.</param>
        ''' <param name="adGroupId">Id of the ad group to which ads are added.
        ''' </param>
        Public Sub Run(ByVal user As AdWordsUser, ByVal adGroupId As Long)
            Using service As AdGroupAdService = CType(
                user.GetService(
                    AdWordsService.v201809.AdGroupAdService),
                AdGroupAdService)
                ' Create a responsive search ad.
                Dim responsiveSearchAd As New ResponsiveSearchAd()
                responsiveSearchAd.finalUrls = New String() {"http://www.example.com/cruise"}
                responsiveSearchAd.path1 = "all-inclusive"
                responsiveSearchAd.path2 = "deals"

                Dim textAsset1 As New TextAsset()
                textAsset1.assetText = "Cruise to Mars #" + ExampleUtilities.GetShortRandomString()

                Dim headline1 As New AssetLink()
                headline1.asset = textAsset1
                ' Set a pinning to always choose this asset for HEADLINE_1.
                ' Pinning Is optional; if no pinning is set, then headlines
                ' and descriptions will be rotated and the ones that perform
                ' best will be used more often.
                headline1.pinnedField = ServedAssetFieldType.HEADLINE_1

                Dim textAsset2 As New TextAsset()
                textAsset2.assetText = "Best Space Cruise Line"

                Dim headline2 As New AssetLink()
                headline2.asset = textAsset2

                Dim textAsset3 As New TextAsset()
                textAsset3.assetText = "Experience the Stars"

                Dim headline3 As New AssetLink()
                headline3.asset = textAsset3

                responsiveSearchAd.headlines = New AssetLink() {headline1, headline2, headline3}

                ' Create ad group ad.
                Dim adGroupAd As New AdGroupAd()
                adGroupAd.adGroupId = adGroupId
                adGroupAd.ad = responsiveSearchAd

                ' Optional: Set additional settings.
                adGroupAd.status = AdGroupAdStatus.PAUSED

                ' Create ad group ad operation and add it to the list.
                Dim operation As New AdGroupAdOperation()
                operation.operand = adGroupAd
                operation.operator = [Operator].ADD

                Try
                    ' Add the responsive search ad on the server.
                    Dim retval As AdGroupAdReturnValue = service.mutate(
                        New AdGroupAdOperation() _
                                                                           {operation})

                    ' Print out some information for the created ad.
                    For Each newAdGroupAd As AdGroupAd In retval.value
                        Dim newAd As ResponsiveSearchAd = CType(newAdGroupAd.ad, ResponsiveSearchAd)
                        Console.WriteLine("New responsive search ad with ID {0} was added.",
                                          newAd.id)
                        Console.WriteLine("Headlines:")

                        For Each headline As AssetLink In newAd.headlines
                            Dim textAsset As TextAsset = CType(headline.asset, TextAsset)
                            Console.WriteLine("    {0}", textAsset.assetText)
                            If headline.pinnedFieldSpecified Then
                                Console.WriteLine("      (pinned to {0})", headline.pinnedField)
                            End If
                        Next
                        Console.WriteLine("Descriptions:")
                        For Each description As AssetLink In newAd.descriptions
                            Dim textAsset As TextAsset = CType(description.asset, TextAsset)
                            Console.WriteLine("    {0}", textAsset.assetText)
                            If (description.pinnedFieldSpecified) Then
                                Console.WriteLine("      (pinned to {0})", description.pinnedField)
                            End If
                        Next
                    Next
                Catch e As Exception
                    Throw _
                        New System.ApplicationException("Failed to create responsive search ad.", e)
                End Try
            End Using
        End Sub
    End Class
End Namespace

Get the ad groups of a campaign

' Copyright 2018 Google LLC
'
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
' You may obtain a copy of the License at
'
'     http://www.apache.org/licenses/LICENSE-2.0
'
' Unless required by applicable law or agreed to in writing, software
' distributed under the License is distributed on an "AS IS" BASIS,
' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' See the License for the specific language governing permissions and
' limitations under the License.

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201809

Namespace Google.Api.Ads.AdWords.Examples.VB.v201809
    ''' <summary>
    ''' This code example illustrates how to retrieve all the ad groups for a
    ''' campaign. To create an ad group, run AddAdGroup.vb.
    ''' </summary>
    Public Class GetAdGroups
        Inherits ExampleBase

        ''' <summary>
        ''' Main method, to run this code example as a standalone application.
        ''' </summary>
        ''' <param name="args">The command line arguments.</param>
        Public Shared Sub Main(ByVal args As String())
            Dim codeExample As New GetAdGroups
            Console.WriteLine(codeExample.Description)
            Try
                Dim campaignId As Long = Long.Parse("INSERT_CAMPAIGN_ID_HERE")
                codeExample.Run(New AdWordsUser, campaignId)
            Catch e As Exception
                Console.WriteLine("An exception occurred while running this code example. {0}",
                                  ExampleUtilities.FormatException(e))
            End Try
        End Sub

        ''' <summary>
        ''' Returns a description about the code example.
        ''' </summary>
        Public Overrides ReadOnly Property Description() As String
            Get
                Return "This code example illustrates how to retrieve all the ad groups for a " &
                       "campaign. To create an ad group, run AddAdGroup.vb."
            End Get
        End Property

        ''' <summary>
        ''' Runs the code example.
        ''' </summary>
        ''' <param name="user">The AdWords user.</param>
        ''' <param name="campaignId">Id of the campaign for which ad groups are
        ''' retrieved.</param>
        Public Sub Run(ByVal user As AdWordsUser, ByVal campaignId As Long)
            Using adGroupService As AdGroupService = CType(
                user.GetService(
                    AdWordsService.v201809.AdGroupService),
                AdGroupService)

                ' Create the selector.
                Dim selector As New Selector
                selector.fields = New String() { _
                                                   AdGroup.Fields.Id, AdGroup.Fields.Name
                                               }

                selector.predicates = New Predicate() { _
                                                          Predicate.Equals(
                                                              AdGroup.Fields.CampaignId,
                                                              campaignId)
                                                      }
                selector.ordering = New OrderBy() {OrderBy.Asc(AdGroup.Fields.Name)}
                selector.paging = Paging.Default

                Dim page As New AdGroupPage

                Try
                    Do
                        ' Get the ad groups.
                        page = adGroupService.get(selector)

                        ' Display the results.
                        If ((Not page Is Nothing) AndAlso (Not page.entries Is Nothing)) Then
                            Dim i As Integer = selector.paging.startIndex
                            For Each adGroup As AdGroup In page.entries
                                Console.WriteLine(
                                    "{0}) Ad group name is ""{1}"" and id is ""{2}"".",
                                    i + 1,
                                    adGroup.name, adGroup.id)
                                i += 1
                            Next
                        End If
                        selector.paging.IncreaseOffset()
                    Loop While (selector.paging.startIndex < page.totalNumEntries)
                    Console.WriteLine("Number of ad groups found: {0}", page.totalNumEntries)
                Catch e As Exception
                    Throw New System.ApplicationException("Failed to retrieve ad group(s).", e)
                End Try
            End Using
        End Sub
    End Class
End Namespace

Get all campaigns

' Copyright 2018 Google LLC
'
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
' You may obtain a copy of the License at
'
'     http://www.apache.org/licenses/LICENSE-2.0
'
' Unless required by applicable law or agreed to in writing, software
' distributed under the License is distributed on an "AS IS" BASIS,
' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' See the License for the specific language governing permissions and
' limitations under the License.

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201809

Namespace Google.Api.Ads.AdWords.Examples.VB.v201809
    ''' <summary>
    ''' This code example lists all campaigns. To add a campaign, run
    ''' AddCampaign.vb.
    ''' </summary>
    Public Class GetCampaigns
        Inherits ExampleBase

        ''' <summary>
        ''' Main method, to run this code example as a standalone application.
        ''' </summary>
        ''' <param name="args">The command line arguments.</param>
        Public Shared Sub Main(ByVal args As String())
            Dim codeExample As New GetCampaigns
            Console.WriteLine(codeExample.Description)
            Try
                codeExample.Run(New AdWordsUser)
            Catch e As Exception
                Console.WriteLine("An exception occurred while running this code example. {0}",
                                  ExampleUtilities.FormatException(e))
            End Try
        End Sub

        ''' <summary>
        ''' Returns a description about the code example.
        ''' </summary>
        Public Overrides ReadOnly Property Description() As String
            Get
                Return _
                    "This code example lists all campaigns. To add a campaign, run AddCampaign.vb."
            End Get
        End Property

        ''' <summary>
        ''' Runs the code example.
        ''' </summary>
        ''' <param name="user">The AdWords user.</param>
        Public Sub Run(ByVal user As AdWordsUser)
            Using campaignService As CampaignService = CType(
                user.GetService(
                    AdWordsService.v201809.CampaignService),
                CampaignService)

                ' Create the selector.
                Dim selector As New Selector
                selector.fields = New String() { _
                                                   Campaign.Fields.Id, Campaign.Fields.Name,
                                                   Campaign.Fields.Status
                                               }
                selector.paging = Paging.Default

                Dim page As New CampaignPage

                Try
                    Do
                        ' Get the campaigns.
                        page = campaignService.get(selector)

                        ' Display the results.
                        If ((Not page Is Nothing) AndAlso (Not page.entries Is Nothing)) Then
                            Dim i As Integer = selector.paging.startIndex
                            For Each campaign As Campaign In page.entries
                                Console.WriteLine(
                                    "{0}) Campaign with id = '{1}', name = '{2}' and status = " &
                                    "'{3}' was found.", i + 1, campaign.id, campaign.name,
                                    campaign.status)
                                i += 1
                            Next
                        End If
                        selector.paging.IncreaseOffset()
                    Loop While (selector.paging.startIndex < page.totalNumEntries)
                    Console.WriteLine("Number of campaigns found: {0}", page.totalNumEntries)
                Catch e As Exception
                    Throw New System.ApplicationException("Failed to retrieve campaign(s).", e)
                End Try
            End Using
        End Sub
    End Class
End Namespace

Get all campaigns using AWQL

' Copyright 2018 Google LLC
'
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
' You may obtain a copy of the License at
'
'     http://www.apache.org/licenses/LICENSE-2.0
'
' Unless required by applicable law or agreed to in writing, software
' distributed under the License is distributed on an "AS IS" BASIS,
' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' See the License for the specific language governing permissions and
' limitations under the License.

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.Util.Reports.v201809
Imports Google.Api.Ads.AdWords.v201809

Namespace Google.Api.Ads.AdWords.Examples.VB.v201809
    ''' <summary>
    ''' This code example lists all campaigns using an AWQL query. See
    ''' https://developers.google.com/adwords/api/docs/guides/awql for AWQL
    ''' documentation. To add a campaign, run AddCampaign.vb.
    ''' </summary>
    Public Class GetCampaignsWithAwql
        Inherits ExampleBase

        ''' <summary>
        ''' Main method, to run this code example as a standalone application.
        ''' </summary>
        ''' <param name="args">The command line arguments.</param>
        Public Shared Sub Main(ByVal args As String())
            Dim codeExample As New GetCampaignsWithAwql
            Console.WriteLine(codeExample.Description)
            Try
                codeExample.Run(New AdWordsUser)
            Catch e As Exception
                Console.WriteLine("An exception occurred while running this code example. {0}",
                                  ExampleUtilities.FormatException(e))
            End Try
        End Sub

        ''' <summary>
        ''' Returns a description about the code example.
        ''' </summary>
        Public Overrides ReadOnly Property Description() As String
            Get
                Return "This code example lists all campaigns using an AWQL query. See " &
                       "https://developers.google.com/adwords/api/docs/guides/awql for AWQL " &
                       "documentation. To add a campaign, run AddCampaign.vb."
            End Get
        End Property

        ''' <summary>
        ''' Runs the code example.
        ''' </summary>
        ''' <param name="user">The AdWords user.</param>
        Public Sub Run(ByVal user As AdWordsUser)
            Using campaignService As CampaignService = CType(
                user.GetService(
                    AdWordsService.v201809.CampaignService),
                CampaignService)

                ' Create the query.
                Dim query As SelectQuery = New SelectQueryBuilder() _
                        .Select(Campaign.Fields.Name, Campaign.Fields.Id, Campaign.Fields.Status) _
                        .OrderByAscending(Campaign.Fields.Name) _
                        .DefaultLimit() _
                        .Build()

                Dim page As New CampaignPage()
                Dim i As Integer = 0


                Try
                    Do
                        ' Get the campaigns.
                        page = campaignService.query(query)

                        ' Display the results.
                        If ((Not page Is Nothing) AndAlso (Not page.entries Is Nothing)) Then
                            For Each campaign As Campaign In page.entries
                                Console.WriteLine(
                                    "{0}) Campaign with id = '{1}', name = '{2}' and status = " &
                                    "'{3}' was found.", i, campaign.id, campaign.name,
                                    campaign.status)
                                i += 1
                            Next
                        End If
                        query.NextPage(page)
                    Loop While (query.HasNextPage(page))
                    Console.WriteLine("Number of campaigns found: {0}", page.totalNumEntries)
                Catch e As Exception
                    Throw New System.ApplicationException("Failed to retrieve campaign(s).", e)
                End Try
            End Using
        End Sub
    End Class
End Namespace

Get expanded text ads in an ad group

' Copyright 2018 Google LLC
'
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
' You may obtain a copy of the License at
'
'     http://www.apache.org/licenses/LICENSE-2.0
'
' Unless required by applicable law or agreed to in writing, software
' distributed under the License is distributed on an "AS IS" BASIS,
' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' See the License for the specific language governing permissions and
' limitations under the License.

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201809

Namespace Google.Api.Ads.AdWords.Examples.VB.v201809
    ''' <summary>
    ''' This code example retrieves all expanded text ads given an existing ad
    ''' group. To add expanded text ads to an existing ad group, run
    ''' AddExpandedTextAds.vb.
    ''' </summary>
    Public Class GetExpandedTextAds
        Inherits ExampleBase

        ''' <summary>
        ''' Main method, to run this code example as a standalone application.
        ''' </summary>
        ''' <param name="args">The command line arguments.</param>
        Public Shared Sub Main(ByVal args As String())
            Dim codeExample As New GetExpandedTextAds
            Console.WriteLine(codeExample.Description)
            Try
                Dim adGroupId As Long = Long.Parse("INSERT_ADGROUP_ID_HERE")
                codeExample.Run(New AdWordsUser, adGroupId)
            Catch e As Exception
                Console.WriteLine("An exception occurred while running this code example. {0}",
                                  ExampleUtilities.FormatException(e))
            End Try
        End Sub

        ''' <summary>
        ''' Returns a description about the code example.
        ''' </summary>
        Public Overrides ReadOnly Property Description() As String
            Get
                Return "This code example retrieves all expanded text ads given an existing ad " &
                       "group. To add expanded text ads to an existing ad group, run " &
                       "AddExpandedTextAds.vb."
            End Get
        End Property

        ''' <summary>
        ''' Runs the code example.
        ''' </summary>
        ''' <param name="user">The AdWords user.</param>
        ''' <param name="adGroupId">Id of the ad group from which expanded text ads
        ''' are retrieved.</param>
        Public Sub Run(ByVal user As AdWordsUser, ByVal adGroupId As Long)
            Using service As AdGroupAdService = CType(
                user.GetService(
                    AdWordsService.v201809.AdGroupAdService),
                AdGroupAdService)

                ' Create a selector.
                Dim selector As New Selector

                selector.fields = New String() { _
                                                   ExpandedTextAd.Fields.Id,
                                                   AdGroupAd.Fields.Status,
                                                   ExpandedTextAd.Fields.HeadlinePart1,
                                                   ExpandedTextAd.Fields.HeadlinePart2,
                                                   ExpandedTextAd.Fields.Description
                                               }

                selector.ordering = New OrderBy() {OrderBy.Asc(TextAd.Fields.Id)}

                Dim fieldStatusStrings = New String() { _
                                                          AdGroupAdStatus.ENABLED.ToString(),
                                                          AdGroupAdStatus.PAUSED.ToString(),
                                                          AdGroupAdStatus.DISABLED.ToString()
                                                      }
                selector.predicates = New Predicate() { _
                                                          Predicate.Equals(
                                                              AdGroupAd.Fields.AdGroupId,
                                                              adGroupId),
                                                          Predicate.Equals("AdType",
                                                                           "EXPANDED_TEXT_AD"),
                                                          Predicate.In(AdGroupAd.Fields.Status,
                                                                       fieldStatusStrings)
                                                      }

                ' Select the selector paging.
                selector.paging = Paging.Default

                Dim page As New AdGroupAdPage

                Try
                    Do
                        ' Get the expanded text ads.
                        page = service.get(selector)

                        ' Display the results.
                        If ((Not page Is Nothing) AndAlso (Not page.entries Is Nothing)) Then
                            Dim i As Integer = selector.paging.startIndex

                            For Each adGroupAd As AdGroupAd In page.entries
                                Dim expandedTextAd As ExpandedTextAd = CType(adGroupAd.ad,
                                                                             ExpandedTextAd)
                                Console.WriteLine(
                                    "{0} : Expanded text ad with ID '{1}', headline '{2} - {3}' " &
                                    "and description '{4} was found.", i + 1, expandedTextAd.id,
                                    expandedTextAd.headlinePart1, expandedTextAd.headlinePart2,
                                    expandedTextAd.description)
                            Next
                            i += 1
                        End If
                        selector.paging.IncreaseOffset()
                    Loop While (selector.paging.startIndex < page.totalNumEntries)
                    Console.WriteLine("Number of expanded text ads found: {0}",
                                      page.totalNumEntries)
                Catch e As Exception
                    Throw New System.ApplicationException("Failed to get expanded text ads.", e)
                End Try
            End Using
        End Sub
    End Class
End Namespace

Get keywords in an ad group

' Copyright 2018 Google LLC
'
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
' You may obtain a copy of the License at
'
'     http://www.apache.org/licenses/LICENSE-2.0
'
' Unless required by applicable law or agreed to in writing, software
' distributed under the License is distributed on an "AS IS" BASIS,
' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' See the License for the specific language governing permissions and
' limitations under the License.

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201809

Namespace Google.Api.Ads.AdWords.Examples.VB.v201809
    ''' <summary>
    ''' This code example gets all keywords in an ad group. To add keywords, run
    ''' AddKeywords.vb.
    ''' </summary>
    Public Class GetKeywords
        Inherits ExampleBase

        ''' <summary>
        ''' Main method, to run this code example as a standalone application.
        ''' </summary>
        ''' <param name="args">The command line arguments.</param>
        Public Shared Sub Main(ByVal args As String())
            Dim codeExample As New GetKeywords
            Console.WriteLine(codeExample.Description)
            Try
                Dim adGroupId As Long = Long.Parse("INSERT_ADGROUP_ID_HERE")
                codeExample.Run(New AdWordsUser, adGroupId)
            Catch e As Exception
                Console.WriteLine("An exception occurred while running this code example. {0}",
                                  ExampleUtilities.FormatException(e))
            End Try
        End Sub

        ''' <summary>
        ''' Returns a description about the code example.
        ''' </summary>
        Public Overrides ReadOnly Property Description() As String
            Get
                Return "This code example gets all keywords in an ad group. To add keywords, run " &
                       "AddKeywords.vb."
            End Get
        End Property

        ''' <summary>
        ''' Runs the code example.
        ''' </summary>
        ''' <param name="user">The AdWords user.</param>
        ''' <param name="adGroupId">ID of the ad group from which keywords are
        ''' retrieved.</param>
        Public Sub Run(ByVal user As AdWordsUser, ByVal adGroupId As Long)
            Using adGroupCriterionService As AdGroupCriterionService = CType(
                user.GetService(
                    AdWordsService.v201809.AdGroupCriterionService),
                AdGroupCriterionService)

                ' Create a selector.
                Dim selector As New Selector
                selector.fields = New String() { _
                                                   Keyword.Fields.Id,
                                                   Keyword.Fields.KeywordMatchType,
                                                   Keyword.Fields.KeywordText,
                                                   Keyword.Fields.CriteriaType
                                               }

                ' Select only keywords.
                Dim criteriaPredicate As New Predicate
                criteriaPredicate.field = "CriteriaType"
                criteriaPredicate.operator = PredicateOperator.IN
                criteriaPredicate.values = New String() {"KEYWORD"}

                ' Restrict search to an ad group.
                Dim adGroupPredicate As New Predicate
                adGroupPredicate.field = "AdGroupId"
                adGroupPredicate.operator = PredicateOperator.EQUALS
                adGroupPredicate.values = New String() {adGroupId.ToString()}

                selector.predicates = New Predicate() { _
                                                          Predicate.In(Keyword.Fields.CriteriaType,
                                                                       New String() {"KEYWORD"}),
                                                          Predicate.Equals(
                                                              AdGroupCriterion.Fields.AdGroupId,
                                                              adGroupId)
                                                      }
                selector.ordering = New OrderBy() {OrderBy.Asc(Keyword.Fields.KeywordText)}
                selector.paging = Paging.Default

                Dim page As New AdGroupCriterionPage

                Try
                    Do
                        ' Get the keywords.
                        page = adGroupCriterionService.get(selector)

                        ' Display the results.
                        If ((Not page Is Nothing) AndAlso (Not page.entries Is Nothing)) Then
                            Dim i As Integer = selector.paging.startIndex

                            For Each adGroupCriterion As AdGroupCriterion In page.entries
                                Dim keyword As Keyword = CType(adGroupCriterion.criterion, Keyword)

                                Console.WriteLine(
                                    "{0}) Keyword with text '{1}', match type '{2}', criteria " &
                                    "type '{3}', and ID {4} was found.", i + 1, keyword.text,
                                    keyword.matchType,
                                    keyword.type, keyword.id)
                                i += 1
                            Next
                        End If
                        selector.paging.IncreaseOffset()
                    Loop While (selector.paging.startIndex < page.totalNumEntries)
                    Console.WriteLine("Number of keywords found: {0}", page.totalNumEntries)
                Catch e As Exception
                    Throw New System.ApplicationException("Failed to retrieve keywords.", e)
                End Try
            End Using
        End Sub
    End Class
End Namespace

Pause an ad

' Copyright 2018 Google LLC
'
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
' You may obtain a copy of the License at
'
'     http://www.apache.org/licenses/LICENSE-2.0
'
' Unless required by applicable law or agreed to in writing, software
' distributed under the License is distributed on an "AS IS" BASIS,
' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' See the License for the specific language governing permissions and
' limitations under the License.

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201809

Namespace Google.Api.Ads.AdWords.Examples.VB.v201809
    ''' <summary>
    ''' This code example pauses a given ad. To list all ads, run GetExpandedTextAds.vb.
    ''' </summary>
    Public Class PauseAd
        Inherits ExampleBase

        ''' <summary>
        ''' Main method, to run this code example as a standalone application.
        ''' </summary>
        ''' <param name="args">The command line arguments.</param>
        Public Shared Sub Main(ByVal args As String())
            Dim codeExample As New PauseAd
            Console.WriteLine(codeExample.Description)
            Try
                Dim adGroupId As Long = Long.Parse("INSERT_ADGROUP_ID_HERE")
                Dim adId As Long = Long.Parse("INSERT_AD_ID_HERE")
                codeExample.Run(New AdWordsUser, adGroupId, adId)
            Catch e As Exception
                Console.WriteLine("An exception occurred while running this code example. {0}",
                                  ExampleUtilities.FormatException(e))
            End Try
        End Sub

        ''' <summary>
        ''' Returns a description about the code example.
        ''' </summary>
        Public Overrides ReadOnly Property Description() As String
            Get
                Return "This code example pauses a given ad. To list all ads, run " &
                       "GetExpandedTextAds.vb."
            End Get
        End Property

        ''' <summary>
        ''' Runs the code example.
        ''' </summary>
        ''' <param name="user">The AdWords user.</param>
        ''' <param name="adGroupId">Id of the ad group that contains the ad.
        ''' </param>
        ''' <param name="adId">Id of the ad to be paused.</param>
        Public Sub Run(ByVal user As AdWordsUser, ByVal adGroupId As Long, ByVal adId As Long)
            Using service As AdGroupAdService = CType(
                user.GetService(
                    AdWordsService.v201809.AdGroupAdService),
                AdGroupAdService)

                Dim status As AdGroupAdStatus = AdGroupAdStatus.PAUSED

                ' Create the ad group ad.
                Dim adGroupAd As New AdGroupAd
                adGroupAd.status = status
                adGroupAd.adGroupId = adGroupId

                adGroupAd.ad = New Ad
                adGroupAd.ad.id = adId

                ' Create the operation.
                Dim adGroupAdOperation As New AdGroupAdOperation
                adGroupAdOperation.operator = [Operator].SET
                adGroupAdOperation.operand = adGroupAd

                Try
                    ' Update the ad.
                    Dim retVal As AdGroupAdReturnValue = service.mutate(
                        New AdGroupAdOperation() {adGroupAdOperation})

                    ' Display the results.
                    If ((Not retVal Is Nothing) AndAlso (Not retVal.value Is Nothing) AndAlso
                        (retVal.value.Length > 0)) Then
                        Dim pausedAdGroupAd As AdGroupAd = retVal.value(0)
                        Console.WriteLine("Ad with id ""{0}"" was paused.", pausedAdGroupAd.ad.id)
                    Else
                        Console.WriteLine("No ads were paused.")
                    End If
                Catch e As Exception
                    Throw New System.ApplicationException("Failed to pause ad.", e)
                End Try
            End Using
        End Sub
    End Class
End Namespace

Remove an ad

' Copyright 2018 Google LLC
'
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
' You may obtain a copy of the License at
'
'     http://www.apache.org/licenses/LICENSE-2.0
'
' Unless required by applicable law or agreed to in writing, software
' distributed under the License is distributed on an "AS IS" BASIS,
' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' See the License for the specific language governing permissions and
' limitations under the License.

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201809

Namespace Google.Api.Ads.AdWords.Examples.VB.v201809
    ''' <summary>
    ''' This code example removes an ad using the 'REMOVE' operator. To list ads,
    ''' run GetTextAds.vb.
    ''' </summary>
    Public Class RemoveAd
        Inherits ExampleBase

        ''' <summary>
        ''' Main method, to run this code example as a standalone application.
        ''' </summary>
        ''' <param name="args">The command line arguments.</param>
        Public Shared Sub Main(ByVal args As String())
            Dim codeExample As New RemoveAd
            Console.WriteLine(codeExample.Description)
            Try
                Dim adGroupId As Long = Long.Parse("INSERT_ADGROUP_ID_HERE")
                Dim adId As Long = Long.Parse("INSERT_AD_ID_HERE")
                codeExample.Run(New AdWordsUser, adGroupId, adId)
            Catch e As Exception
                Console.WriteLine("An exception occurred while running this code example. {0}",
                                  ExampleUtilities.FormatException(e))
            End Try
        End Sub

        ''' <summary>
        ''' Returns a description about the code example.
        ''' </summary>
        Public Overrides ReadOnly Property Description() As String
            Get
                Return _
                    "This code example removes an ad using the 'REMOVE' operator. To list ads, " &
                    "run GetTextAds.vb."
            End Get
        End Property

        ''' <summary>
        ''' Runs the code example.
        ''' </summary>
        ''' <param name="user">The AdWords user.</param>
        ''' <param name="adGroupId">Id of the ad group that contains the ad.</param>
        ''' <param name="adId">Id of the ad being removed.</param>
        Public Sub Run(ByVal user As AdWordsUser, ByVal adGroupId As Long, ByVal adId As Long)
            Using adGroupAdService As AdGroupAdService = CType(
                user.GetService(
                    AdWordsService.v201809.AdGroupAdService),
                AdGroupAdService)

                ' Since we do not need to update any ad-specific fields, it is enough to
                ' create the base type.
                Dim ad As New Ad
                ad.id = adId

                ' Create the ad group ad.
                Dim adGroupAd As New AdGroupAd
                adGroupAd.adGroupId = adGroupId

                adGroupAd.ad = ad

                ' Create the operation.
                Dim operation As New AdGroupAdOperation
                operation.operand = adGroupAd
                operation.operator = [Operator].REMOVE

                Try
                    ' Remove the ad.
                    Dim retVal As AdGroupAdReturnValue = adGroupAdService.mutate(
                        New AdGroupAdOperation() {operation})

                    If ((Not retVal Is Nothing) AndAlso (Not retVal.value Is Nothing) AndAlso
                        (retVal.value.Length > 0)) Then
                        Dim removedAdGroupAd As AdGroupAd = retVal.value(0)
                        Console.WriteLine("Ad with id = ""{0}"" and type = ""{1}"" was removed.",
                                          removedAdGroupAd.ad.id, removedAdGroupAd.ad.AdType)
                    Else
                        Console.WriteLine("No ads were removed.")
                    End If
                Catch e As Exception
                    Throw New System.ApplicationException("Failed to remove ad.", e)
                End Try
            End Using
        End Sub
    End Class
End Namespace

Remove an ad group

' Copyright 2018 Google LLC
'
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
' You may obtain a copy of the License at
'
'     http://www.apache.org/licenses/LICENSE-2.0
'
' Unless required by applicable law or agreed to in writing, software
' distributed under the License is distributed on an "AS IS" BASIS,
' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' See the License for the specific language governing permissions and
' limitations under the License.

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201809

Namespace Google.Api.Ads.AdWords.Examples.VB.v201809
    ''' <summary>
    ''' This code example removes an ad group by setting the status to 'REMOVED'.
    ''' To get ad groups, run GetAdGroups.vb.
    ''' </summary>
    Public Class RemoveAdGroup
        Inherits ExampleBase

        ''' <summary>
        ''' Main method, to run this code example as a standalone application.
        ''' </summary>
        ''' <param name="args">The command line arguments.</param>
        Public Shared Sub Main(ByVal args As String())
            Dim codeExample As New RemoveAdGroup
            Console.WriteLine(codeExample.Description)
            Try
                Dim adGroupId As Long = Long.Parse("INSERT_ADGROUP_ID_HERE")
                codeExample.Run(New AdWordsUser, adGroupId)
            Catch e As Exception
                Console.WriteLine("An exception occurred while running this code example. {0}",
                                  ExampleUtilities.FormatException(e))
            End Try
        End Sub

        ''' <summary>
        ''' Returns a description about the code example.
        ''' </summary>
        Public Overrides ReadOnly Property Description() As String
            Get
                Return _
                    "This code example removes an ad group by setting the status to 'REMOVED'. " &
                    "To get ad groups, run GetAdGroups.vb."
            End Get
        End Property

        ''' <summary>
        ''' Runs the code example.
        ''' </summary>
        ''' <param name="user">The AdWords user.</param>
        ''' <param name="adGroupId">Id of the ad group to be removed.</param>
        Public Sub Run(ByVal user As AdWordsUser, ByVal adGroupId As Long)
            Using adGroupService As AdGroupService = CType(
                user.GetService(
                    AdWordsService.v201809.AdGroupService),
                AdGroupService)

                ' Create ad group with REMOVED status.
                Dim adGroup As New AdGroup
                adGroup.id = adGroupId
                adGroup.status = AdGroupStatus.REMOVED

                ' Create the operation.
                Dim operation As New AdGroupOperation
                operation.operand = adGroup
                operation.operator = [Operator].SET

                Try
                    ' Remove the ad group.
                    Dim retVal As AdGroupReturnValue = adGroupService.mutate(
                        New AdGroupOperation() {operation})

                    ' Display the results.
                    If ((Not retVal Is Nothing) AndAlso (Not retVal.value Is Nothing) AndAlso
                        (retVal.value.Length > 0)) Then
                        Dim removedAdGroup As AdGroup = retVal.value(0)
                        Console.WriteLine(
                            "Ad group with id = ""{0}"" and name = ""{1}"" was removed.",
                            removedAdGroup.id, removedAdGroup.name)
                    Else
                        Console.WriteLine("No ad groups were removed.")
                    End If
                Catch e As Exception
                    Throw New System.ApplicationException("Failed to remove ad groups.", e)
                End Try
            End Using
        End Sub
    End Class
End Namespace

Remove a campaign

' Copyright 2018 Google LLC
'
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
' You may obtain a copy of the License at
'
'     http://www.apache.org/licenses/LICENSE-2.0
'
' Unless required by applicable law or agreed to in writing, software
' distributed under the License is distributed on an "AS IS" BASIS,
' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' See the License for the specific language governing permissions and
' limitations under the License.

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201809

Namespace Google.Api.Ads.AdWords.Examples.VB.v201809
    ''' <summary>
    ''' This code example removes a campaign by setting the status to 'REMOVED'.
    ''' To get campaigns, run GetCampaigns.vb.
    ''' </summary>
    Public Class RemoveCampaign
        Inherits ExampleBase

        ''' <summary>
        ''' Main method, to run this code example as a standalone application.
        ''' </summary>
        ''' <param name="args">The command line arguments.</param>
        Public Shared Sub Main(ByVal args As String())
            Dim codeExample As New RemoveCampaign
            Console.WriteLine(codeExample.Description)
            Try
                Dim campaignId As Long = Long.Parse("INSERT_CAMPAIGN_ID_HERE")
                codeExample.Run(New AdWordsUser, campaignId)
            Catch e As Exception
                Console.WriteLine("An exception occurred while running this code example. {0}",
                                  ExampleUtilities.FormatException(e))
            End Try
        End Sub

        ''' <summary>
        ''' Returns a description about the code example.
        ''' </summary>
        Public Overrides ReadOnly Property Description() As String
            Get
                Return _
                    "This code example removes a campaign by setting the status to 'REMOVED'. To " &
                    "get campaigns, run GetCampaigns.vb."
            End Get
        End Property

        ''' <summary>
        ''' Runs the code example.
        ''' </summary>
        ''' <param name="user">The AdWords user.</param>
        ''' <param name="campaignId">Id of the campaign to be removed.</param>
        Public Sub Run(ByVal user As AdWordsUser, ByVal campaignId As Long)
            Using campaignService As CampaignService = CType(
                user.GetService(
                    AdWordsService.v201809.CampaignService),
                CampaignService)

                ' Create campaign with REMOVED status.
                Dim campaign As New Campaign
                campaign.id = campaignId
                campaign.status = CampaignStatus.REMOVED

                ' Create the operation.
                Dim operation As New CampaignOperation
                operation.operand = campaign
                operation.operator = [Operator].SET

                Try
                    ' Remove the campaign.
                    Dim retVal As CampaignReturnValue = campaignService.mutate(
                        New CampaignOperation() {operation})

                    ' Display the results.
                    If ((Not retVal Is Nothing) AndAlso (Not retVal.value Is Nothing) AndAlso
                        (retVal.value.Length > 0)) Then
                        Dim removedCampaign As Campaign = retVal.value(0)
                        Console.WriteLine(
                            "Campaign with id = ""{0}"" was renamed to ""{1}"" and removed.",
                            removedCampaign.id, removedCampaign.name)
                    Else
                        Console.WriteLine("No campaigns were removed.")
                    End If
                Catch e As Exception
                    Throw New System.ApplicationException("Failed to remove campaigns.", e)
                End Try
            End Using
        End Sub
    End Class
End Namespace

Remove a keyword

' Copyright 2018 Google LLC
'
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
' You may obtain a copy of the License at
'
'     http://www.apache.org/licenses/LICENSE-2.0
'
' Unless required by applicable law or agreed to in writing, software
' distributed under the License is distributed on an "AS IS" BASIS,
' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' See the License for the specific language governing permissions and
' limitations under the License.

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201809

Namespace Google.Api.Ads.AdWords.Examples.VB.v201809
    ''' <summary>
    ''' This code example removes a keyword using the 'REMOVE' operator. To get
    ''' keywords, run GetKeywords.vb.
    ''' </summary>
    Public Class RemoveKeyword
        Inherits ExampleBase

        ''' <summary>
        ''' Main method, to run this code example as a standalone application.
        ''' </summary>
        ''' <param name="args">The command line arguments.</param>
        Public Shared Sub Main(ByVal args As String())
            Dim codeExample As New RemoveKeyword
            Console.WriteLine(codeExample.Description)
            Try
                Dim adGroupId As Long = Long.Parse("INSERT_ADGROUP_ID_HERE")
                Dim keywordId As Long = Long.Parse("INSERT_KEYWORD_ID_HERE")
                codeExample.Run(New AdWordsUser, adGroupId, keywordId)
            Catch e As Exception
                Console.WriteLine("An exception occurred while running this code example. {0}",
                                  ExampleUtilities.FormatException(e))
            End Try
        End Sub

        ''' <summary>
        ''' Returns a description about the code example.
        ''' </summary>
        Public Overrides ReadOnly Property Description() As String
            Get
                Return "This code example removes a keyword using the 'REMOVE' operator. To get " &
                       "keywords, run GetKeywords.vb."
            End Get
        End Property

        ''' <summary>
        ''' Runs the code example.
        ''' </summary>
        ''' <param name="user">The AdWords user.</param>
        ''' <param name="adGroupId">Id of the ad group that contains the keyword.
        ''' </param>
        ''' <param name="keywordId">Id of the keyword to be removed.</param>
        Public Sub Run(ByVal user As AdWordsUser, ByVal adGroupId As Long, ByVal keywordId As Long)
            Using adGroupCriterionService As AdGroupCriterionService = CType(
                user.GetService(
                    AdWordsService.v201809.AdGroupCriterionService),
                AdGroupCriterionService)

                ' Create base class criterion to avoid setting keyword-specific
                ' fields.
                Dim criterion As New Criterion
                criterion.id = keywordId

                ' Create the ad group criterion.
                Dim adGroupCriterion As New BiddableAdGroupCriterion
                adGroupCriterion.adGroupId = adGroupId
                adGroupCriterion.criterion = criterion

                ' Create the operation.
                Dim operation As New AdGroupCriterionOperation
                operation.operand = adGroupCriterion
                operation.operator = [Operator].REMOVE

                Try
                    ' Remove the keyword.
                    Dim retVal As AdGroupCriterionReturnValue = adGroupCriterionService.mutate(
                        New AdGroupCriterionOperation() {operation})

                    ' Display the results.
                    If ((Not retVal Is Nothing) AndAlso (Not retVal.value Is Nothing) AndAlso
                        (retVal.value.Length > 0)) Then
                        Dim removedKeyword As AdGroupCriterion = retVal.value(0)
                        Console.WriteLine(
                            "Keyword with ad group id = ""{0}"" and id = ""{1}"" was " &
                            "removed.", removedKeyword.adGroupId, removedKeyword.criterion.id)
                    Else
                        Console.WriteLine("No keywords were removed.")
                    End If
                Catch e As Exception
                    Throw New System.ApplicationException("Failed to remove keywords.", e)
                End Try
            End Using
        End Sub
    End Class
End Namespace

Update an ad group

' Copyright 2018 Google LLC
'
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
' You may obtain a copy of the License at
'
'     http://www.apache.org/licenses/LICENSE-2.0
'
' Unless required by applicable law or agreed to in writing, software
' distributed under the License is distributed on an "AS IS" BASIS,
' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' See the License for the specific language governing permissions and
' limitations under the License.

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201809

Namespace Google.Api.Ads.AdWords.Examples.VB.v201809
    ''' <summary>
    ''' This code example illustrates how to update an ad group, setting its
    ''' status to 'PAUSED', and its CPC bid to a new value if specified.
    ''' To create an ad group, run AddAdGroup.vb.
    ''' </summary>
    Public Class UpdateAdGroup
        Inherits ExampleBase

        ''' <summary>
        ''' Main method, to run this code example as a standalone application.
        ''' </summary>
        ''' <param name="args">The command line arguments.</param>
        Public Shared Sub Main(ByVal args As String())
            Dim codeExample As New UpdateAdGroup
            Console.WriteLine(codeExample.Description)
            Try
                Dim adGroupId As Long = Long.Parse("INSERT_ADGROUP_ID_HERE")
                Dim bidMicroAmount As Long? = Nothing

                ' Optional: Provide a cpc bid for the ad group, in micro amounts.
                Dim tempVal As Long = 0
                If Long.TryParse("INSERT_CPC_BID_IN_MICROS_HERE", tempVal) Then
                    bidMicroAmount = New Nullable(Of Long)(tempVal)
                End If

                codeExample.Run(New AdWordsUser, adGroupId, bidMicroAmount)
            Catch e As Exception
                Console.WriteLine("An exception occurred while running this code example. {0}",
                                  ExampleUtilities.FormatException(e))
            End Try
        End Sub

        ''' <summary>
        ''' Returns a description about the code example.
        ''' </summary>
        Public Overrides ReadOnly Property Description() As String
            Get
                Return _
                    "This code example illustrates how to update an ad group, setting its status " &
                    "to 'PAUSED', and its CPC bid to a new value if specified. To create an ad " &
                    "group, run AddAdGroup.vb."
            End Get
        End Property

        ''' <summary>
        ''' Runs the code example.
        ''' </summary>
        ''' <param name="user">The AdWords user.</param>
        ''' <param name="adGroupId">Id of the ad group to be updated.</param>
        ''' <param name="bidMicroAmount">The CPC bid amount in micros.</param>
        Public Sub Run(ByVal user As AdWordsUser, ByVal adGroupId As Long,
                       ByVal bidMicroAmount As Long?)
            Using adGroupService As AdGroupService = CType(
                user.GetService(
                    AdWordsService.v201809.AdGroupService),
                AdGroupService)

                ' Create an ad group with the specified ID.
                Dim adGroup As New AdGroup
                adGroup.id = adGroupId

                ' Pause the ad group.
                adGroup.status = AdGroupStatus.PAUSED

                ' Update the CPC bid if specified.
                If bidMicroAmount.HasValue() Then
                    Dim biddingStrategyConfiguration As New BiddingStrategyConfiguration()
                    Dim cpcBidMoney = New Money()
                    cpcBidMoney.microAmount = bidMicroAmount.Value
                    Dim cpcBid As New CpcBid()
                    cpcBid.bid = cpcBidMoney
                    biddingStrategyConfiguration.bids = New Bids() {cpcBid}
                    adGroup.biddingStrategyConfiguration = biddingStrategyConfiguration
                End If

                ' Create the operation.
                Dim operation As New AdGroupOperation
                operation.operator = [Operator].SET
                operation.operand = adGroup

                Try
                    ' Update the ad group.
                    Dim retVal As AdGroupReturnValue = adGroupService.mutate(
                        New AdGroupOperation() {operation})

                    ' Display the results.
                    If ((Not retVal Is Nothing) AndAlso (Not retVal.value Is Nothing) AndAlso
                        (retVal.value.Length > 0)) Then
                        Dim adGroupResult As AdGroup = retVal.value(0)
                        Dim bsConfig As BiddingStrategyConfiguration =
                                adGroupResult.biddingStrategyConfiguration

                        ' Find the CpcBid in the bidding strategy configuration's bids collection.
                        Dim cpcBidMicros As Long = 0L
                        If (Not bsConfig Is Nothing) AndAlso (Not bsConfig.bids Is Nothing) Then
                            For Each Bid As Bids In bsConfig.bids
                                If TypeOf Bid Is CpcBid Then
                                    cpcBidMicros = DirectCast(Bid, CpcBid).bid.microAmount
                                    Exit For
                                End If
                            Next
                        End If
                        Console.WriteLine(
                            "Ad group with ID {0} and name '{1}' updated to have status '{2}'" &
                            " and CPC bid {3}", adGroupResult.id, adGroupResult.name,
                            adGroupResult.status, cpcBidMicros)
                    Else
                        Console.WriteLine("No ad groups were updated.")
                    End If
                Catch e As Exception
                    Throw New System.ApplicationException("Failed to update ad groups.", e)
                End Try
            End Using
        End Sub
    End Class
End Namespace

Update a campaign

' Copyright 2018 Google LLC
'
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
' You may obtain a copy of the License at
'
'     http://www.apache.org/licenses/LICENSE-2.0
'
' Unless required by applicable law or agreed to in writing, software
' distributed under the License is distributed on an "AS IS" BASIS,
' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' See the License for the specific language governing permissions and
' limitations under the License.

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201809

Namespace Google.Api.Ads.AdWords.Examples.VB.v201809
    ''' <summary>
    ''' This code example updates a campaign. To get campaigns, run
    ''' GetCampaigns.vb.
    ''' </summary>
    Public Class UpdateCampaign
        Inherits ExampleBase

        ''' <summary>
        ''' Main method, to run this code example as a standalone application.
        ''' </summary>
        ''' <param name="args">The command line arguments.</param>
        Public Shared Sub Main(ByVal args As String())
            Dim codeExample As New UpdateCampaign
            Console.WriteLine(codeExample.Description)
            Try
                Dim campaignId As Long = Long.Parse("INSERT_CAMPAIGN_ID_HERE")
                codeExample.Run(New AdWordsUser, campaignId)
            Catch e As Exception
                Console.WriteLine("An exception occurred while running this code example. {0}",
                                  ExampleUtilities.FormatException(e))
            End Try
        End Sub

        ''' <summary>
        ''' Returns a description about the code example.
        ''' </summary>
        Public Overrides ReadOnly Property Description() As String
            Get
                Return _
                    "This code example updates a campaign. To get campaigns, run GetCampaigns.vb."
            End Get
        End Property

        ''' <summary>
        ''' Runs the code example.
        ''' </summary>
        ''' <param name="user">The AdWords user.</param>
        ''' <param name="campaignId">Id of the campaign to be updated.</param>
        Public Sub Run(ByVal user As AdWordsUser, ByVal campaignId As Long)
            Using campaignService As CampaignService = CType(
                user.GetService(
                    AdWordsService.v201809.CampaignService),
                CampaignService)

                ' Create campaign with updated budget.
                Dim campaign As New Campaign
                campaign.id = campaignId
                campaign.status = CampaignStatus.PAUSED

                ' Create the operations.
                Dim operation As New CampaignOperation
                operation.operator = [Operator].SET
                operation.operand = campaign

                Try
                    ' Update the campaign.
                    Dim retVal As CampaignReturnValue = campaignService.mutate(
                        New CampaignOperation() {operation})

                    ' Display the results.
                    If ((Not retVal Is Nothing) AndAlso (Not retVal.value Is Nothing) AndAlso
                        (retVal.value.Length > 0)) Then
                        Dim updatedCampaign As Campaign = retVal.value(0)
                        Console.WriteLine("Campaign with name = '{0}' and id = '{1}' was updated.",
                                          updatedCampaign.name, updatedCampaign.id)
                    Else
                        Console.WriteLine("No campaigns were updated.")
                    End If
                Catch e As Exception
                    Throw New System.ApplicationException("Failed to update campaigns.", e)
                End Try
            End Using
        End Sub
    End Class
End Namespace

Update an expanded text ad

' Copyright 2018 Google LLC
'
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
' You may obtain a copy of the License at
'
'     http://www.apache.org/licenses/LICENSE-2.0
'
' Unless required by applicable law or agreed to in writing, software
' distributed under the License is distributed on an "AS IS" BASIS,
' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' See the License for the specific language governing permissions and
' limitations under the License.

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201809

Namespace Google.Api.Ads.AdWords.Examples.VB.v201809
    ''' <summary>
    ''' This code example updates an expanded text ad. To get expanded text ads,
    ''' run GetExpandedTextAds.vb.
    ''' </summary>
    Public Class UpdateExpandedTextAd
        Inherits ExampleBase

        ''' <summary>
        ''' Main method, to run this code example as a standalone application.
        ''' </summary>
        ''' <param name="args">The command line arguments.</param>
        Public Shared Sub Main(ByVal args As String())
            Dim codeExample As New UpdateExpandedTextAd
            Console.WriteLine(codeExample.Description)
            Try
                Dim adId As Long = Long.Parse("INSERT_AD_ID_HERE")
                codeExample.Run(New AdWordsUser, adId)

            Catch e As Exception
                Console.WriteLine("An exception occurred while running this code example. {0}",
                                  ExampleUtilities.FormatException(e))
            End Try
        End Sub

        ''' <summary>
        ''' Returns a description about the code example.
        ''' </summary>
        Public Overrides ReadOnly Property Description() As String
            Get
                Return _
                    "This code example updates an expanded text ad. To get expanded text ads, " +
                    "run GetExpandedTextAds.cs."
            End Get
        End Property

        ''' <summary>
        ''' Runs the code example.
        ''' </summary>
        ''' <param name="user">The AdWords user.</param>
        ''' <param name="adId">Id of the ad to be updated.</param>
        Public Sub Run(ByVal user As AdWordsUser, ByVal adId As Long)
            Using service As AdService = CType(
                user.GetService(
                    AdWordsService.v201809.AdGroupAdService),
                AdService)

                ' Create an expanded text ad using the provided ad ID.
                Dim expandedTextAd As New ExpandedTextAd()
                expandedTextAd.id = adId

                ' Update some properties of the expanded text ad.
                expandedTextAd.headlinePart1 = "Cruise to Pluto #" +
                                               ExampleUtilities.GetShortRandomString()
                expandedTextAd.headlinePart2 = "Tickets on sale now"
                expandedTextAd.description = "Best space cruise ever."
                expandedTextAd.finalUrls = New String() {"http://www.example.com/"}
                expandedTextAd.finalMobileUrls = New String() {"http://www.example.com/mobile"}

                ' Create ad group ad operation And add it to the list.
                Dim operation As New AdOperation
                operation.operator = [Operator].SET
                operation.operand = expandedTextAd

                Try
                    ' Update the ad on the server.
                    Dim result As AdReturnValue = service.mutate(New AdOperation() {operation})
                    Dim updatedAd As ExpandedTextAd = CType(result.value(0), ExpandedTextAd)

                    ' Print out some information.
                    Console.WriteLine("Expanded text ad with ID {0} was updated.", updatedAd.id)
                    Console.WriteLine(
                        "Headline part 1: {0}\nHeadline part 2: {1}\nDescription: {2}" +
                        "\nFinal URL: {3}\nFinal mobile URL: {4}",
                        updatedAd.headlinePart1, updatedAd.headlinePart2, updatedAd.description,
                        updatedAd.finalUrls(0), updatedAd.finalMobileUrls(0))
                Catch e As Exception
                    Throw New System.ApplicationException("Failed to update expanded text ad.", e)
                End Try
            End Using
        End Sub
    End Class
End Namespace

Update a keyword

' Copyright 2018 Google LLC
'
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
' You may obtain a copy of the License at
'
'     http://www.apache.org/licenses/LICENSE-2.0
'
' Unless required by applicable law or agreed to in writing, software
' distributed under the License is distributed on an "AS IS" BASIS,
' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' See the License for the specific language governing permissions and
' limitations under the License.

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201809

Namespace Google.Api.Ads.AdWords.Examples.VB.v201809
    ''' <summary>
    ''' This code example updates the bid of a keyword. To get keyword, run
    ''' GetKeywords.vb.
    ''' </summary>
    Public Class UpdateKeyword
        Inherits ExampleBase

        ''' <summary>
        ''' Main method, to run this code example as a standalone application.
        ''' </summary>
        ''' <param name="args">The command line arguments.</param>
        Public Shared Sub Main(ByVal args As String())
            Dim codeExample As New UpdateKeyword
            Console.WriteLine(codeExample.Description)
            Try
                Dim adGroupId As Long = Long.Parse("INSERT_ADGROUP_ID_HERE")
                Dim keywordId As Long = Long.Parse("INSERT_KEYWORD_ID_HERE")
                codeExample.Run(New AdWordsUser, adGroupId, keywordId)
            Catch e As Exception
                Console.WriteLine("An exception occurred while running this code example. {0}",
                                  ExampleUtilities.FormatException(e))
            End Try
        End Sub

        ''' <summary>
        ''' Returns a description about the code example.
        ''' </summary>
        Public Overrides ReadOnly Property Description() As String
            Get
                Return "This code example updates the bid of a keyword. To get keyword, run " +
                       "GetKeywords.vb."
            End Get
        End Property

        ''' <summary>
        ''' Runs the code example.
        ''' </summary>
        ''' <param name="user">The AdWords user.</param>
        ''' <param name="adGroupId">Id of the ad group that contains the keyword.
        ''' </param>
        ''' <param name="keywordId">Id of the keyword to be updated.</param>
        Public Sub Run(ByVal user As AdWordsUser, ByVal adGroupId As Long, ByVal keywordId As Long)
            Using adGroupCriterionService As AdGroupCriterionService = CType(
                user.GetService(
                    AdWordsService.v201809.AdGroupCriterionService),
                AdGroupCriterionService)

                ' Since we are not updating any keyword-specific fields, it is enough to
                ' create a criterion object.
                Dim criterion As New Criterion
                criterion.id = keywordId

                ' Create ad group criterion.
                Dim biddableAdGroupCriterion As New BiddableAdGroupCriterion
                biddableAdGroupCriterion.adGroupId = adGroupId
                biddableAdGroupCriterion.criterion = criterion

                ' Create the bids.
                Dim biddingConfig As New BiddingStrategyConfiguration()
                Dim cpcBid As New CpcBid()
                cpcBid.bid = New Money()
                cpcBid.bid.microAmount = 1000000
                biddingConfig.bids = New Bids() {cpcBid}

                biddableAdGroupCriterion.biddingStrategyConfiguration = biddingConfig

                ' Create the operation.
                Dim operation As New AdGroupCriterionOperation
                operation.operator = [Operator].SET
                operation.operand = biddableAdGroupCriterion

                Try
                    ' Update the keyword.
                    Dim retVal As AdGroupCriterionReturnValue = adGroupCriterionService.mutate(
                        New AdGroupCriterionOperation() {operation})

                    ' Display the results.
                    If ((Not retVal Is Nothing) AndAlso (Not retVal.value Is Nothing) AndAlso
                        (retVal.value.Length > 0)) Then
                        Dim adGroupCriterion As BiddableAdGroupCriterion =
                                CType(retVal.value(0), BiddableAdGroupCriterion)
                        Dim bidAmount As Long = 0L
                        For Each bids As Bids In adGroupCriterion.biddingStrategyConfiguration.bids
                            If TypeOf bids Is CpcBid Then
                                bidAmount = TryCast(bids, CpcBid).bid.microAmount
                            End If
                        Next

                        Console.WriteLine(
                            "Keyword with ad group id = '{0}', id = '{1}' was updated with " &
                            "bid amount = '{2}' micros.", adGroupCriterion.adGroupId,
                            adGroupCriterion.criterion.id, bidAmount)
                    Else
                        Console.WriteLine("No keyword was updated.")
                    End If
                Catch e As Exception
                    Throw New System.ApplicationException("Failed to update keyword.", e)
                End Try
            End Using
        End Sub
    End Class
End Namespace

Send feedback about...

AdWords API
AdWords API
Need help? Visit our support page.