Basic Operations Samples

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

Add demographic target criteria to an ad group

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

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201806

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

  ''' <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.v201806.AdGroupCriterionService), AdGroupCriterionService)

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

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

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

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

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

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

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

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

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

  End Class

End Namespace

Add ad groups to a campaign

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

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201806

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

  ''' <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.v201806.AdGroupService), AdGroupService)

        Dim operations As New List(Of AdGroupOperation)

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

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

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

          biddingConfig.bids = New Bids() {cpcBid}

          adGroup.biddingStrategyConfiguration = biddingConfig

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

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

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

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

          adGroup.settings = New Setting() {targetingSetting}

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

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

          operations.Add(operation)
        Next

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

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

  End Class

End Namespace

Add campaigns

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

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201806

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

  ''' <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.v201806.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.v201806.BudgetService), BudgetService)

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

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

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

  End Class

End Namespace

Add expanded text ads to an ad group

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

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201806

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

  ''' <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.v201806.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 to an ad group

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

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

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

  ''' <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.v201806.AdGroupCriterionService), AdGroupCriterionService)

        Dim operations As New List(Of AdGroupCriterionOperation)

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

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

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

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

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

          operations.Add(operation)
        Next

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

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

  End Class

End Namespace

Add a responsive search ad to an ad group

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

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201806

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

  ''' <summary>
  ''' This code example adds a responsive search ad to a given ad group. To get ad groups,
  ''' run GetAdGroups.vb.
  ''' </summary>
  Public Class AddResponsiveSearchAd
    Inherits ExampleBase

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  End Class

End Namespace

Get the ad groups of a campaign

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

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201806

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

  ''' <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.v201806.AdGroupService), AdGroupService)

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

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

        Dim page As New AdGroupPage

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

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

  End Class

End Namespace

Get all campaigns

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

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201806

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

  ''' <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.v201806.CampaignService), CampaignService)

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

        Dim page As New CampaignPage

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

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

  End Class

End Namespace

Get all campaigns using AWQL

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

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201806

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

  ''' <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.v201806.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 in an ad group

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

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201806

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

  ''' <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.v201806.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 in an ad group

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

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201806

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

  ''' <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.v201806.AdGroupCriterionService), AdGroupCriterionService)

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

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

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

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

        Dim page As New AdGroupCriterionPage

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

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

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

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

  End Class

End Namespace

Pause an ad

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

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201806

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

  ''' <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.v201806.AdGroupAdService), AdGroupAdService)

        Dim status As AdGroupAdStatus = AdGroupAdStatus.PAUSED

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

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

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

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

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

  End Class

End Namespace

Remove an ad

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

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201806

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

  ''' <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.v201806.AdGroupAdService), AdGroupAdService)

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

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

        adGroupAd.ad = ad

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

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

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

  End Class

End Namespace

Remove an ad group

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

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201806

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

  ''' <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.v201806.AdGroupService), AdGroupService)

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

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

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

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

  End Class

End Namespace

Remove a campaign

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

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201806

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

  ''' <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.v201806.CampaignService), CampaignService)

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

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

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

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

  End Class

End Namespace

Remove a keyword

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

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201806

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

  ''' <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.v201806.AdGroupCriterionService), AdGroupCriterionService)

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

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

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

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

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

  End Class

End Namespace

Update an ad group

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

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201806

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  End Class

End Namespace

Update a campaign

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

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201806

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

  ''' <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.v201806.CampaignService), CampaignService)

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

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

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

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

  End Class

End Namespace

Update an expanded text ad

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

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201806

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

  ''' <summary>
  ''' This code example updates an expanded text ad. To get expanded text ads,
  ''' run GetExpandedTextAds.vb.
  ''' </summary>
  Public Class UpdateExpandedTextAd
    Inherits ExampleBase

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

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

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

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

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

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

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

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

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

  End Class

End Namespace

Update a keyword

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

Imports Google.Api.Ads.AdWords.Lib
Imports Google.Api.Ads.AdWords.v201806

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

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

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。