Basic Operations Samples

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

Add ad groups

' Copyright 2017, Google Inc. All Rights Reserved.
'
' 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.v201705

Imports System
Imports System.Collections.Generic
Imports System.IO

Namespace Google.Api.Ads.AdWords.Examples.VB.v201705
  ''' <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)
      ' Get the AdGroupService.
      Dim adGroupService As AdGroupService = CType(user.GetService( _
          AdWordsService.v201705.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}

        ' 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 Sub
  End Class
End Namespace

Add ad group demographic criteria

' Copyright 2017, Google Inc. All Rights Reserved.
'
' 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.v201705

Imports System
Imports System.Collections.Generic
Imports System.IO

Namespace Google.Api.Ads.AdWords.Examples.VB.v201705
  ''' <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)
      ' Get the AdGroupCriterionService.
      Dim adGroupCriterionService As AdGroupCriterionService = CType(user.GetService( _
          AdWordsService.v201705.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 Sub
  End Class
End Namespace

Add campaigns

' Copyright 2017, Google Inc. All Rights Reserved.
'
' 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.v201705

Imports System
Imports System.Collections.Generic
Imports System.IO

Namespace Google.Api.Ads.AdWords.Examples.VB.v201705
  ''' <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)
      ' Get the BudgetService.
      Dim budgetService As BudgetService = CType(user.GetService( _
          AdWordsService.v201705.BudgetService), BudgetService)

      ' Get the CampaignService.
      Dim campaignService As CampaignService = CType(user.GetService( _
          AdWordsService.v201705.CampaignService), CampaignService)

      ' 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})
        budget = budgetRetval.value(0)
      Catch e As Exception
        Throw New System.ApplicationException("Failed to add shared budget.", e)
      End Try

      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 campaign ad serving optimization status.
        campaign.adServingOptimizationStatus = AdServingOptimizationStatus.ROTATE

        ' 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 Sub
  End Class
End Namespace

Add expanded text ads

' Copyright 2017, Google Inc. All Rights Reserved.
'
' 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.v201705
Imports Google.Api.Ads.Common.Util

Imports System
Imports System.Collections.Generic
Imports System.IO

Namespace Google.Api.Ads.AdWords.Examples.VB.v201705
  ''' <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)
      ' Get the AdGroupAdService.
      Dim service As AdGroupAdService = CType(user.GetService( _
          AdWordsService.v201705.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.description = "Buy your tickets now!"
        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 Sub
  End Class
End Namespace

Add keywords

' Copyright 2017, Google Inc. All Rights Reserved.
'
' 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.v201705

Imports System
Imports System.Collections.Generic
Imports System.IO
Imports System.Web

Namespace Google.Api.Ads.AdWords.Examples.VB.v201705
  ''' <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)
      ' Get the AdGroupCriterionService.
      Dim adGroupCriterionService As AdGroupCriterionService = CType(user.GetService( _
          AdWordsService.v201705.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 Sub
  End Class
End Namespace

Get ad groups

' Copyright 2017, Google Inc. All Rights Reserved.
'
' 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.v201705

Imports System
Imports System.Collections.Generic
Imports System.IO

Namespace Google.Api.Ads.AdWords.Examples.VB.v201705
  ''' <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)
      ' Get the AdGroupService.
      Dim adGroupService As AdGroupService = CType(user.GetService( _
          AdWordsService.v201705.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 Sub
  End Class
End Namespace

Get campaigns

' Copyright 2017, Google Inc. All Rights Reserved.
'
' 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.v201705

Imports System
Imports System.Collections.Generic
Imports System.IO

Namespace Google.Api.Ads.AdWords.Examples.VB.v201705
  ''' <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)
      ' Get the CampaignService.
      Dim campaignService As CampaignService = CType(user.GetService( _
          AdWordsService.v201705.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 Sub
  End Class
End Namespace

Get campaigns with AWQL

' Copyright 2017, Google Inc. All Rights Reserved.
'
' 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.v201705

Imports System
Imports System.Collections.Generic
Imports System.IO

Namespace Google.Api.Ads.AdWords.Examples.VB.v201705
  ''' <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)
      ' Get the CampaignService.
      Dim campaignService As CampaignService = CType(user.GetService( _
          AdWordsService.v201705.CampaignService), CampaignService)

      ' Create the query.
      Dim query As String = "SELECT Id, Name, Status ORDER BY Name"

      Dim offset As Long = 0
      Dim pageSize As Long = 500

      Dim page As New CampaignPage()

      Try
        Do
          Dim queryWithPaging As String = String.Format("{0} LIMIT {1}, {2}", query, offset, _
              pageSize)

          ' Get the campaigns.
          page = campaignService.query(queryWithPaging)

          ' Display the results.
          If ((Not page Is Nothing) AndAlso (Not page.entries Is Nothing)) Then
            Dim i As Integer = CInt(offset)
            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
          offset = offset + pageSize
        Loop While (offset < 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 Sub
  End Class
End Namespace

Get expanded text ads

' Copyright 2017, Google Inc. All Rights Reserved.
'
' 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.v201705

Imports System
Imports System.Collections.Generic
Imports System.IO

Namespace Google.Api.Ads.AdWords.Examples.VB.v201705
  ''' <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)
      ' Get the AdGroupAdService.
      Dim service As AdGroupAdService = CType(user.GetService( _
          AdWordsService.v201705.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)}

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

      ' 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 Sub
  End Class
End Namespace

Get keywords

' Copyright 2017, Google Inc. All Rights Reserved.
'
' 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.v201705

Imports System
Imports System.Collections.Generic
Imports System.IO

Namespace Google.Api.Ads.AdWords.Examples.VB.v201705
  ''' <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)
      ' Get the AdGroupCriterionService.
      Dim adGroupCriterionService As AdGroupCriterionService = CType(user.GetService( _
          AdWordsService.v201705.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 Sub
  End Class
End Namespace

Get text ads

' Copyright 2017, Google Inc. All Rights Reserved.
'
' 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.v201705

Imports System
Imports System.Collections.Generic
Imports System.IO

Namespace Google.Api.Ads.AdWords.Examples.VB.v201705
  ''' <summary>
  ''' This code example retrieves all text ads given an existing ad group.
  ''' </summary>
  Public Class GetTextAds
    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 GetTextAds
      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 text ads given an existing ad group."
      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 text ads are
    ''' retrieved.</param>
    Public Sub Run(ByVal user As AdWordsUser, ByVal adGroupId As Long)
      ' Get the AdGroupAdService.
      Dim service As AdGroupAdService = CType(user.GetService( _
          AdWordsService.v201705.AdGroupAdService), AdGroupAdService)

      ' Create a selector.
      Dim selector As New Selector

      selector.fields = New String() {
        TextAd.Fields.Id, AdGroupAd.Fields.Status, TextAd.Fields.Headline,
        TextAd.Fields.Description1, TextAd.Fields.Description2, TextAd.Fields.DisplayUrl
      }

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

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

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

      Dim page As New AdGroupAdPage

      Try
        Do
          ' Get the 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 textAd As TextAd = CType(adGroupAd.ad, TextAd)
              Console.WriteLine("{0}) Ad id is {1} and status is {2}", i + 1, textAd.id, _
                  adGroupAd.status)
              Console.WriteLine("  {0}\n  {1}\n  {2}\n  {3}", textAd.headline, _
                  textAd.description1, textAd.description2, textAd.displayUrl)
            Next
            i += 1
          End If
          selector.paging.IncreaseOffset()
        Loop While (selector.paging.startIndex < page.totalNumEntries)
        Console.WriteLine("Number of text ads found: {0}", page.totalNumEntries)
      Catch e As Exception
        Throw New System.ApplicationException("Failed to get text ads.", e)
      End Try
    End Sub
  End Class
End Namespace

Pause an ad

' Copyright 2017, Google Inc. All Rights Reserved.
'
' 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.v201705

Imports System
Imports System.Collections.Generic
Imports System.IO

Namespace Google.Api.Ads.AdWords.Examples.VB.v201705
  ''' <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)
      ' Get the AdGroupAdService.
      Dim service As AdGroupAdService = CType(user.GetService( _
          AdWordsService.v201705.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 Sub
  End Class
End Namespace

Remove an ad

' Copyright 2017, Google Inc. All Rights Reserved.
'
' 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.v201705

Imports System
Imports System.Collections.Generic
Imports System.IO

Namespace Google.Api.Ads.AdWords.Examples.VB.v201705
  ''' <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)
      ' Get the AdGroupAdService.
      Dim adGroupAdService As AdGroupAdService = CType(user.GetService( _
          AdWordsService.v201705.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 Sub
  End Class
End Namespace

Remove an ad group

' Copyright 2017, Google Inc. All Rights Reserved.
'
' 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.v201705

Imports System
Imports System.Collections.Generic
Imports System.IO

Namespace Google.Api.Ads.AdWords.Examples.VB.v201705
  ''' <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)
      ' Get the AdGroupService.
      Dim adGroupService As AdGroupService = CType(user.GetService( _
          AdWordsService.v201705.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 Sub
  End Class
End Namespace

Remove a campaign

' Copyright 2017, Google Inc. All Rights Reserved.
'
' 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.v201705

Imports System
Imports System.Collections.Generic
Imports System.IO

Namespace Google.Api.Ads.AdWords.Examples.VB.v201705
  ''' <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)
      ' Get the CampaignService.
      Dim campaignService As CampaignService = CType(user.GetService( _
          AdWordsService.v201705.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 Sub
  End Class
End Namespace

Remove a keyword

' Copyright 2017, Google Inc. All Rights Reserved.
'
' 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.v201705

Imports System
Imports System.Collections.Generic
Imports System.IO

Namespace Google.Api.Ads.AdWords.Examples.VB.v201705
  ''' <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)
      ' Get the AdGroupCriterionService.
      Dim adGroupCriterionService As AdGroupCriterionService = CType(user.GetService( _
          AdWordsService.v201705.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 Sub
  End Class
End Namespace

Update an ad group

' Copyright 2017, Google Inc. All Rights Reserved.
'
' 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.v201705

Imports System
Imports System.Collections.Generic
Imports System.IO

Namespace Google.Api.Ads.AdWords.Examples.VB.v201705
  ''' <summary>
  ''' This code example illustrates how to update an ad group, setting its
  ''' status to 'PAUSED'. 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")
        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 illustrates how to update an ad group, setting its status " & _
            "to 'PAUSED'. 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>
    Public Sub Run(ByVal user As AdWordsUser, ByVal adGroupId As Long)
      ' Get the AdGroupService.
      Dim adGroupService As AdGroupService = CType(user.GetService( _
          AdWordsService.v201705.AdGroupService), AdGroupService)

      ' Create the ad group.
      Dim adGroup As New AdGroup
      adGroup.status = AdGroupStatus.PAUSED
      adGroup.id = adGroupId

      ' 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 pausedAdGroup As AdGroup = retVal.value(0)
          Console.WriteLine("Ad group with id = '{0}' was successfully updated.", _
              pausedAdGroup.id)
        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 Sub
  End Class
End Namespace

Update a campaign

' Copyright 2017, Google Inc. All Rights Reserved.
'
' 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.v201705

Imports System
Imports System.Collections.Generic
Imports System.IO

Namespace Google.Api.Ads.AdWords.Examples.VB.v201705
  ''' <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)
      ' Get the CampaignService.
      Dim campaignService As CampaignService = CType(user.GetService( _
          AdWordsService.v201705.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 Sub
  End Class
End Namespace

Update a keyword

' Copyright 2017, Google Inc. All Rights Reserved.
'
' 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.v201705

Imports System
Imports System.Collections.Generic
Imports System.IO

Namespace Google.Api.Ads.AdWords.Examples.VB.v201705
  ''' <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)
      ' Get the AdGroupCriterionService.
      Dim adGroupCriterionService As AdGroupCriterionService = CType(user.GetService( _
          AdWordsService.v201705.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 Sub
  End Class
End Namespace

Send feedback about...

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