Register for one of our Google Ads API workshops (March 6, 2019 - April 23, 2019).

Targeting Samples

The code samples below provide examples of common targeting functions using the AdWords API. Client Library.

Add targeting criteria to a campaign

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

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

Namespace Google.Api.Ads.AdWords.Examples.VB.v201809
    ''' <summary>
    ''' This code example adds various types of targeting criteria to a campaign.
    ''' To get a list of campaigns, run GetCampaigns.vb.
    ''' </summary>
    Public Class AddCampaignTargetingCriteria
        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 AddCampaignTargetingCriteria
            Console.WriteLine(codeExample.Description)
            Try
                Dim campaignId As Long = Long.Parse("INSERT_CAMPAIGN_ID_HERE")
                Dim feedIdText As String = "INSERT_LOCATION_FEED_ID_HERE"

                Dim feedId As Long? = Nothing
                Dim temp As Long = 0

                If Long.TryParse(feedIdText, temp) Then
                    feedId = temp
                End If

                codeExample.Run(New AdWordsUser(), campaignId, feedId)
            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 various types of targeting criteria to a campaign. " &
                    "To get a list of 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 which targeting criteria
        ''' are added.</param>
        ''' <param name="feedId">ID of a feed that has been configured for location
        ''' targeting, meaning it has an ENABLED FeedMapping with criterionType of
        ''' 77. Feeds linked to a GMB account automatically have this FeedMapping.
        ''' If you don't have such a feed, set this value to Nothing.</param>
        Public Sub Run(ByVal user As AdWordsUser, ByVal campaignId As Long, ByVal feedId As Long?)
            Using campaignCriterionService As CampaignCriterionService = CType(
                user.GetService(
                    AdWordsService.v201809.CampaignCriterionService),
                CampaignCriterionService)

                ' Create locations. The IDs can be found in the documentation or
                ' retrieved with the LocationCriterionService.
                Dim california As New Location
                california.id = 21137L

                Dim mexico As New Location
                mexico.id = 2484L

                ' Create languages. The IDs can be found in the documentation or
                ' retrieved with the ConstantDataService.
                Dim english As New Language
                english.id = 1000L

                Dim spanish As New Language
                spanish.id = 1003L

                Dim criteria As New List(Of Criterion)()
                criteria.AddRange(New Criterion() { _
                                                      california, mexico, english, spanish
                                                  })

                ' Distance targeting. Area of 10 miles around the locations in the location feed.
                If feedId.HasValue Then
                    Dim radiusLocationGroup As New LocationGroups
                    radiusLocationGroup.feedId = feedId.Value

                    Dim radiusMatchingFunction As New [Function]
                    radiusMatchingFunction.operator = FunctionOperator.IDENTITY

                    Dim radiusOperand As New LocationExtensionOperand
                    radiusOperand.radius = New ConstantOperand
                    radiusOperand.radius.type = ConstantOperandConstantType.DOUBLE
                    radiusOperand.radius.unit = ConstantOperandUnit.MILES
                    radiusOperand.radius.doubleValue = 10

                    radiusMatchingFunction.lhsOperand = New FunctionArgumentOperand() _
                        {radiusOperand}

                    criteria.Add(radiusLocationGroup)
                End If

                ' Create operations to add each of the criteria above.
                Dim operations As New List(Of CampaignCriterionOperation)

                For Each criterion As Criterion In criteria
                    Dim campaignCriterion As New CampaignCriterion
                    campaignCriterion.campaignId = campaignId
                    campaignCriterion.criterion = criterion

                    Dim operation As New CampaignCriterionOperation
                    operation.operator = [Operator].ADD
                    operation.operand = campaignCriterion

                    operations.Add(operation)
                Next

                ' Add a negative campaign criterion.

                Dim negativeCriterion As New NegativeCampaignCriterion
                negativeCriterion.campaignId = campaignId

                Dim keyword As New Keyword
                keyword.text = "jupiter cruise"
                keyword.matchType = KeywordMatchType.BROAD

                negativeCriterion.criterion = keyword

                Dim negativeCriterionOperation As New CampaignCriterionOperation
                negativeCriterionOperation.operand = negativeCriterion
                negativeCriterionOperation.operator = [Operator].ADD

                operations.Add(negativeCriterionOperation)

                Try
                    ' Set the campaign targets.
                    Dim retVal As CampaignCriterionReturnValue = campaignCriterionService.mutate(
                        operations.ToArray())

                    ' Display the results.
                    If ((Not retVal Is Nothing) AndAlso (Not retVal.value Is Nothing)) Then
                        For Each criterion As CampaignCriterion In retVal.value
                            Console.WriteLine(
                                "Campaign criterion of type '{0}' was set to campaign with id " &
                                "= '{1}'.", criterion.criterion.CriterionType, criterion.campaignId)
                        Next
                    End If
                Catch e As Exception
                    Throw New System.ApplicationException("Failed to set campaign criteria.", e)
                End Try
            End Using
        End Sub
    End Class
End Namespace

Add negative criteria to a customer

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

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

Namespace Google.Api.Ads.AdWords.Examples.VB.v201809
    ''' <summary>
    ''' This code example adds various types of negative criteria to a customer. These criteria
    ''' will be applied to all campaigns for the customer.
    ''' </summary>
    Public Class AddCustomerNegativeCriteria
        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 AddCustomerNegativeCriteria
            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 various types of negative criteria to a customer. " +
                       "These criteria will be applied to all campaigns for the customer."
            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 customerNegativeCriterionService As CustomerNegativeCriterionService =
                CType(user.GetService(AdWordsService.v201809.CustomerNegativeCriterionService),
                      CustomerNegativeCriterionService)

                Dim criteria As New List(Of Criterion)

                ' Exclude tragedy & conflict content.
                Dim tragedyContentLabel As New ContentLabel()
                tragedyContentLabel.contentLabelType = ContentLabelType.TRAGEDY
                criteria.Add(tragedyContentLabel)

                ' Exclude a specific placement.
                Dim placement As New Placement()
                placement.url = "http://www.example.com"
                criteria.Add(placement)

                ' Additional criteria types are available for this service. See the types listed
                ' under Criterion here:
                ' https://developers.google.com/adwords/api/docs/reference/latest/CustomerNegativeCriterionService.Criterion

                ' Create operations to add each of the criteria above.
                Dim operations As New List(Of CustomerNegativeCriterionOperation)
                For Each criterion As Criterion In criteria
                    Dim negativeCriterion As New CustomerNegativeCriterion()
                    negativeCriterion.criterion = criterion
                    Dim operation As New CustomerNegativeCriterionOperation()
                    operation.operator = [Operator].ADD
                    operation.operand = negativeCriterion
                    operations.Add(operation)
                Next

                Try
                    ' Send the request to add the criteria.
                    Dim result As CustomerNegativeCriterionReturnValue =
                            customerNegativeCriterionService.mutate(operations.ToArray())

                    ' Display the results.
                    For Each negativeCriterion As CustomerNegativeCriterion In result.value
                        Console.WriteLine(
                            "Customer negative criterion with criterion ID {0} and type '{1}' " +
                            "was added.", negativeCriterion.criterion.id,
                            negativeCriterion.criterion.type)
                    Next
                Catch e As Exception
                    Throw _
                        New System.ApplicationException("Failed to set customer negative criteria.",
                                                        e)
                End Try

            End Using
        End Sub
    End Class
End Namespace

Get all campaign criteria

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

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

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

Namespace Google.Api.Ads.AdWords.Examples.VB.v201809
    ''' <summary>
    ''' This code example gets all targeting criteria for a campaign.  To set
    ''' campaign targeting criteria, run AddCampaignTargetingCriteria.vb. To get
    ''' campaigns, run GetCampaigns.vb.
    ''' </summary>
    Public Class GetCampaignTargetingCriteria
        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 GetCampaignTargetingCriteria
            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 gets all targeting criteria for a campaign.  To set " &
                    "campaign targeting criteria, run AddCampaignTargetingCriteria.vb. 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 from which targeting
        ''' criteria are retrieved.</param>
        Public Sub Run(ByVal user As AdWordsUser, ByVal campaignId As Long)
            Using campaignCriterionService As CampaignCriterionService = CType(
                user.GetService(
                    AdWordsService.v201809.CampaignCriterionService),
                CampaignCriterionService)

                ' Create the selector.
                Dim selector As New Selector
                selector.fields = New String() { _
                                                   Criterion.Fields.Id,
                                                   Criterion.Fields.CriteriaType,
                                                   CampaignCriterion.Fields.CampaignId
                                               }

                ' Set the filters.
                Dim predicate As New Predicate
                predicate.field = "CampaignId"
                predicate.operator = PredicateOperator.EQUALS
                predicate.values = New String() {campaignId.ToString}

                selector.predicates = New Predicate() {predicate}

                ' Set the selector paging.
                selector.paging = Paging.Default
                Dim page As New CampaignCriterionPage

                Try
                    Dim i As Integer = 0
                    Do
                        ' Get all campaign targets.
                        page = campaignCriterionService.get(selector)

                        ' Display the results.
                        If ((Not page Is Nothing) AndAlso (Not page.entries Is Nothing)) Then
                            For Each campaignCriterion As CampaignCriterion In page.entries
                                Dim negative As String = ""
                                If (TypeOf campaignCriterion Is NegativeCampaignCriterion) Then
                                    negative = "Negative "
                                End If
                                Console.WriteLine(
                                    "{0}) {1}Campaign targeting criterion with id = '{2}' and " &
                                    "Type = {3} was found for campaign id '{4}'", i, negative,
                                    campaignCriterion.criterion.id,
                                    campaignCriterion.criterion.type,
                                    campaignCriterion.campaignId)
                                i += 1
                            Next
                        End If
                        selector.paging.IncreaseOffset()
                    Loop While (selector.paging.startIndex < page.totalNumEntries)
                    Console.WriteLine("Number of campaign targeting criteria found: {0}",
                                      page.totalNumEntries)
                Catch e As Exception
                    Throw New _
                        System.ApplicationException("Failed to get campaign targeting criteria.",
                                                    e)
                End Try
            End Using
        End Sub
    End Class
End Namespace

Get all targetable languages and carriers

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

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

Namespace Google.Api.Ads.AdWords.Examples.VB.v201809
    ''' <summary>
    ''' This code example illustrates how to retrieve all carriers and languages
    ''' available for targeting.
    ''' </summary>
    Public Class GetTargetableLanguagesAndCarriers
        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 GetTargetableLanguagesAndCarriers
            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 illustrates how to retrieve all carriers and languages" &
                       "available for targeting."
            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 constantDataService As ConstantDataService = CType(
                user.GetService(
                    AdWordsService.v201809.ConstantDataService),
                ConstantDataService)

                Try
                    ' Get all carriers.
                    Dim carriers As Carrier() = constantDataService.getCarrierCriterion

                    ' Display the results.
                    If (Not carriers Is Nothing) Then
                        For Each carrier As Carrier In carriers
                            Console.WriteLine(
                                "Carrier name is '{0}', ID is {1} and country code is '{2}'.",
                                carrier.name, carrier.id, carrier.countryCode)
                        Next
                    Else
                        Console.WriteLine("No carriers were retrieved.")
                    End If

                    ' Get all languages.
                    Dim languages As Language() = constantDataService.getLanguageCriterion

                    ' Display the results.
                    If (Not languages Is Nothing) Then
                        For Each language As Language In languages
                            Console.WriteLine("Language name is '{0}', ID is {1} and code " &
                                              "is '{2}'.", language.name, language.id,
                                              language.code)
                        Next
                    Else
                        Console.WriteLine("No languages were found.")
                    End If
                Catch e As Exception
                    Throw _
                        New System.ApplicationException(
                            "Failed to get targetable carriers and languages.",
                            e)
                End Try
            End Using
        End Sub
    End Class
End Namespace

Get location criteria by name

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

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

Namespace Google.Api.Ads.AdWords.Examples.VB.v201809
    ''' <summary>
    ''' This code example gets location criteria by name.
    ''' </summary>
    Public Class LookupLocation
        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 LookupLocation
            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 gets location criteria by name."
            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 locationCriterionService As LocationCriterionService = CType(
                user.GetService(
                    AdWordsService.v201809.LocationCriterionService),
                LocationCriterionService)

                Dim locationNames As String() = New String() _
                        {"Paris", "Quebec", "Spain", "Deutschland"}

                Dim selector As New Selector
                selector.fields = New String() { _
                                                   Location.Fields.Id, Location.Fields.LocationName,
                                                   LocationCriterion.Fields.CanonicalName,
                                                   Location.Fields.DisplayType,
                                                   Location.Fields.ParentLocations,
                                                   LocationCriterion.Fields.Reach,
                                                   Location.Fields.TargetingStatus
                                               }

                selector.predicates = New Predicate() { _
                                                          Predicate.In(Location.Fields.LocationName,
                                                                       locationNames),
                                                          Predicate.Equals(
                                                              LocationCriterion.Fields.Locale, "en")
                                                      }

                Try
                    ' Make the get request.
                    Dim locationCriteria As LocationCriterion() =
                            locationCriterionService.get(selector)

                    ' Display the resulting location criteria.
                    For Each locationCriterion As LocationCriterion In locationCriteria
                        Dim parentLocations As String = "N/A"

                        If ((Not locationCriterion.location Is Nothing) AndAlso
                            (Not locationCriterion.location.parentLocations Is Nothing)) Then
                            Dim parentLocationList As New List(Of String)
                            For Each location As Location In _
                                locationCriterion.location.parentLocations
                                parentLocationList.Add(GetLocationString(location))
                            Next
                            parentLocations = String.Join(", ", parentLocationList)
                        End If

                        Console.WriteLine(
                            "The search term '{0}' returned the location '{1}' of type '{2}' " &
                            "with parent locations '{3}',  reach '{4}' and targeting status '{5}.",
                            locationCriterion.searchTerm, locationCriterion.location.locationName,
                            locationCriterion.location.displayType, parentLocations,
                            locationCriterion.reach,
                            locationCriterion.location.targetingStatus)
                    Next
                Catch e As Exception
                    Throw New System.ApplicationException("Failed to get location criteria.", e)
                End Try
            End Using
        End Sub

        ''' <summary>
        ''' Gets a string representation for a location.
        ''' </summary>
        ''' <param name="location">The location</param>
        ''' <returns></returns>
        Public Function GetLocationString(ByVal location As Location) As String
            Return String.Format("{0} ({1})", location.locationName, location.displayType)
        End Function
    End Class
End Namespace

Send feedback about...

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