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.v201710

Namespace Google.Api.Ads.AdWords.Examples.VB.v201710

  ''' <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.v201710.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 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.v201710

Namespace Google.Api.Ads.AdWords.Examples.VB.v201710

  ''' <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.v201710.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 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.v201710

Namespace Google.Api.Ads.AdWords.Examples.VB.v201710

  ''' <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.v201710.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.v201710.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

' 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.v201710

Namespace Google.Api.Ads.AdWords.Examples.VB.v201710

  ''' <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.v201710.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 Using
    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 System.Web
Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201710

Namespace Google.Api.Ads.AdWords.Examples.VB.v201710

  ''' <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.v201710.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

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.v201710

Namespace Google.Api.Ads.AdWords.Examples.VB.v201710

  ''' <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.v201710.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 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.v201710

Namespace Google.Api.Ads.AdWords.Examples.VB.v201710

  ''' <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.v201710.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 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.v201710

Namespace Google.Api.Ads.AdWords.Examples.VB.v201710

  ''' <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.v201710.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 Using
    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.v201710

Namespace Google.Api.Ads.AdWords.Examples.VB.v201710

  ''' <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.v201710.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 Using
    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.v201710

Namespace Google.Api.Ads.AdWords.Examples.VB.v201710

  ''' <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.v201710.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 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.v201710

Namespace Google.Api.Ads.AdWords.Examples.VB.v201710

  ''' <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.v201710.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 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.v201710

Namespace Google.Api.Ads.AdWords.Examples.VB.v201710

  ''' <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.v201710.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 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.v201710

Namespace Google.Api.Ads.AdWords.Examples.VB.v201710

  ''' <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.v201710.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 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.v201710

Namespace Google.Api.Ads.AdWords.Examples.VB.v201710

  ''' <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.v201710.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 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.v201710

Namespace Google.Api.Ads.AdWords.Examples.VB.v201710

  ''' <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.v201710.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 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.v201710

Namespace Google.Api.Ads.AdWords.Examples.VB.v201710

  ''' <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)
      Using adGroupService As AdGroupService = CType(user.GetService(
          AdWordsService.v201710.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 Using
    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.v201710

Namespace Google.Api.Ads.AdWords.Examples.VB.v201710

  ''' <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.v201710.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 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.v201710

Namespace Google.Api.Ads.AdWords.Examples.VB.v201710

  ''' <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.v201710.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.