Questo esempio crea due gruppi di elementi delle regole.
Crea il primo rule_item_group
Inizia creando il primo rule_item_group, che consiste in
due campi rule_item o oggetti
UserListRuleItemInfo:
- Utenti che hanno visitato la pagina di pagamento.
- Utenti con più di un articolo nel carrello degli acquisti.
Il primo elemento della regola utilizza il parametro ecomm_pagetype, che ha valori stringa,
quindi devi prima creare un string_rule_item.
Java
UserListRuleItemInfo checkoutRule = UserListRuleItemInfo.newBuilder() // The rule variable name must match a corresponding key name fired from a pixel. // To learn more about setting up remarketing tags, visit // https://support.google.com/google-ads/answer/2476688. // To learn more about remarketing events and parameters, visit // https://support.google.com/google-ads/answer/7305793. .setName("ecomm_pagetype") .setStringRuleItem( UserListStringRuleItemInfo.newBuilder() .setOperator(UserListStringRuleItemOperator.EQUALS) .setValue("checkout") .build()) .build();
C#
UserListRuleItemInfo checkoutRule = new UserListRuleItemInfo { // The rule variable name must match a corresponding key name fired from a pixel. // To learn more about setting up remarketing tags, visit // https://support.google.com/google-ads/answer/2476688. // To learn more about remarketing events and parameters, visit // https://support.google.com/google-ads/answer/7305793. Name = "ecomm_pagetype", StringRuleItem = new UserListStringRuleItemInfo { Operator = UserListStringRuleItemOperator.Equals, Value = "checkout" } };
PHP
$checkoutRule = new UserListRuleItemInfo([ // The rule variable name must match a corresponding key name fired from a pixel. // To learn more about setting up remarketing tags, visit // https://support.google.com/google-ads/answer/2476688. // To learn more about remarketing events and parameters, visit // https://support.google.com/google-ads/answer/7305793. 'name' => 'ecomm_pagetype', 'string_rule_item' => new UserListStringRuleItemInfo([ 'operator' => UserListStringRuleItemOperator::EQUALS, 'value' => 'checkout' ]) ]);
Python
checkout_rule: UserListRuleItemInfo = client.get_type( "UserListRuleItemInfo" ) # The rule variable name must match a corresponding key name fired from a # pixel. To learn more about setting up remarketing tags, visit: # https://support.google.com/google-ads/answer/2476688. # # To learn more about remarketing events and parameters, visit: # https://support.google.com/google-ads/answer/7305793. checkout_rule.name = "ecomm_pagetype" checkout_string_rule_item: UserListStringRuleItemInfo = ( checkout_rule.string_rule_item ) checkout_string_rule_item.operator = ( client.enums.UserListStringRuleItemOperatorEnum.EQUALS ) checkout_string_rule_item.value = "checkout"
Ruby
checkout_rule = client.resource.user_list_rule_item_info do |rule| # The rule variable name must match a corresponding key name fired # from a pixel. # To learn more about setting up remarketing tags, visit # https://support.google.com/google-ads/answer/2476688. # To learn more about remarketing events and parameters, visit # https://support.google.com/google-ads/answer/7305793. rule.name = "ecomm_pagetype" rule.string_rule_item = client.resource.user_list_string_rule_item_info do |sr| sr.operator = :EQUALS sr.value = "checkout" end end
Perl
my $checkout_rule = Google::Ads::GoogleAds::V22::Common::UserListRuleItemInfo->new({ # The rule variable name must match a corresponding key name fired from a # pixel. To learn more about setting up remarketing tags, visit # https://support.google.com/google-ads/answer/2476688. # To learn more about remarketing events and parameters, visit # https://support.google.com/google-ads/answer/7305793. name => "ecomm_pagetype", stringRuleItem => Google::Ads::GoogleAds::V22::Common::UserListStringRuleItemInfo->new({ operator => EQUALS, value => "checkout" })});
Il secondo elemento della regola utilizza il parametro cartsize, che ha valori numerici, quindi
ora ti servirà un number_rule_item.
Java
UserListRuleItemInfo cartSizeRule = UserListRuleItemInfo.newBuilder() // The rule variable name must match a corresponding key name fired from a pixel. .setName("cart_size") .setNumberRuleItem( UserListNumberRuleItemInfo.newBuilder() .setOperator(UserListNumberRuleItemOperator.GREATER_THAN) .setValue(1.0) .build()) .build();
C#
UserListRuleItemInfo cartSizeRule = new UserListRuleItemInfo { // The rule variable name must match a corresponding key name fired from a pixel. Name = "cart_size", NumberRuleItem = new UserListNumberRuleItemInfo { Operator = UserListNumberRuleItemOperator.GreaterThan, Value = 1.0 } };
PHP
$cartSizeRule = new UserListRuleItemInfo([ // The rule variable name must match a corresponding key name fired from a pixel. 'name' => 'cart_size', 'number_rule_item' => new UserListNumberRuleItemInfo([ 'operator' => UserListNumberRuleItemOperator::GREATER_THAN, 'value' => 1.0 ]) ]);
Python
cart_size_rule: UserListRuleItemInfo = client.get_type( "UserListRuleItemInfo" ) # The rule variable name must match a corresponding key name fired from a # pixel. cart_size_rule.name = "cart_size" cart_size_number_rule_item: UserListNumberRuleItemInfo = ( cart_size_rule.number_rule_item ) cart_size_number_rule_item.operator = ( client.enums.UserListNumberRuleItemOperatorEnum.GREATER_THAN ) cart_size_number_rule_item.value = 1.0
Ruby
cart_size_rule = client.resource.user_list_rule_item_info do |rule| # The rule variable name must match a corresponding key name fired # from a pixel. rule.name = "cart_size" rule.number_rule_item = client.resource.user_list_number_rule_item_info do |nr| nr.operator = :GREATER_THAN nr.value = 1.0 end end
Perl
my $cart_size_rule = Google::Ads::GoogleAds::V22::Common::UserListRuleItemInfo->new({ # The rule variable name must match a corresponding key name fired from a # pixel. name => "cart_size", numberRuleItem => Google::Ads::GoogleAds::V22::Common::UserListNumberRuleItemInfo->new({ # Available UserListNumberRuleItemOperators can be found at # https://developers.google.com/google-ads/api/reference/rpc/latest/UserListNumberRuleItemOperatorEnum.UserListNumberRuleItemOperator operator => GREATER_THAN, value => 1.0 })});
Poi combina i due elementi della regola in un oggetto
UserListRuleItemGroupInfo. Per
impostazione predefinita, quando gli elementi vengono combinati in un gruppo di elementi, Google Ads AND le
regole. Per maggiori dettagli, consulta la sezione Creare l'elenco
di utenti.
Java
UserListRuleItemGroupInfo checkoutAndCartSizeRuleGroup = UserListRuleItemGroupInfo.newBuilder() .addAllRuleItems(ImmutableList.of(checkoutRule, cartSizeRule)) .build();
C#
UserListRuleItemGroupInfo checkoutAndCartSizeRuleGroup = new UserListRuleItemGroupInfo(); checkoutAndCartSizeRuleGroup.RuleItems.Add(checkoutRule); checkoutAndCartSizeRuleGroup.RuleItems.Add(cartSizeRule);
PHP
$checkoutAndCartSizeRuleGroup = new UserListRuleItemGroupInfo([ 'rule_items' => [$checkoutRule, $cartSizeRule] ]);
Python
checkout_and_cart_size_rule_group.rule_items.extend( [ checkout_rule, cart_size_rule, ] )
Ruby
checkout_and_cart_size_rule_group = client.resource.user_list_rule_item_group_info do |g| g.rule_items += [checkout_rule, cart_size_rule] end # Create the RuleItem for checkout start date. # The tags and keys used below must have been in place in the past for the # date range specified in the rules. start_date_rule = client.resource.user_list_rule_item_info do |rule| # The rule variable name must match a corresponding key name fired # from a pixel. rule.name = "checkoutdate" rule.date_rule_item = client.resource.user_list_date_rule_item_info do |dr| dr.operator = :AFTER dr.value = "20191031" end end # Create the RuleItem for checkout end date. end_date_rule = client.resource.user_list_rule_item_info do |rule| # The rule variable name must match a corresponding key name fired # from a pixel. rule.name = "checkoutdate" rule.date_rule_item = client.resource.user_list_date_rule_item_info do |dr| dr.operator = :BEFORE dr.value = "20200101" end end # Creates a rule group targeting users who checked out between # November and December by using the start and end date rules. # Combining the two rule items into a user_list_rule_item_group_info # object causes Google Ads to AND their rules together. # To instead OR the rules together, each rule should be placed in its # own rule item group. checkout_date_rule_group = client.resource.user_list_rule_item_group_info do |g| g.rule_items += [start_date_rule, end_date_rule] end # Creates the user list operation. operation = client.operation.create_resource.user_list do |ul| ul.name = "My expression rule user list ##{(Time.new.to_f * 1000).to_i}" ul.description = "Users who checked out in November or December OR visited " \ "the checkout page with more than one item in their cart" ul.membership_status = :OPEN ul.membership_life_span = 90 ul.rule_based_user_list = client.resource.rule_based_user_list_info do |r| # Optional: To include past users in the user list, set the # prepopulation_status to REQUESTED. r.prepopulation_status = :REQUESTED # Create a flexible_rule_user_list object, or a flexible rule representation # of visitors with one or multiple actions. FlexibleRuleUserListInfo wraps # UserListRuleInfo in a FlexibleRuleOperandInfo object that represents which # user lists to include or exclude. r.flexible_rule_user_list = client.resource.flexible_rule_user_list_info do |frul| frul.inclusive_rule_operator = :AND frul.inclusive_operands << client.resource.flexible_rule_operand_info do |froi| froi.rule = client.resource.user_list_rule_info do |info| info.rule_item_groups += [checkout_date_rule_group, checkout_and_cart_size_rule_group] end # Optionally include a lookback window for this rule, in days. froi.lookback_window_days = 7 end end end end # Issues a muate request to create the user list. response = client.service.user_list.mutate_user_lists( customer_id: customer_id, operations: [operation], ) puts "Created user list with resource name '#{response.results.first.resource_name}'" end if __FILE__ == $0 options = {} # Running the example with -h will print the command line usage. OptionParser.new do |opts| opts.banner = sprintf('Usage: %s [options]', File.basename(__FILE__)) opts.separator '' opts.separator 'Options:' opts.on('-C', '--customer-id CUSTOMER-ID', String, 'Customer ID') do |v| options[:customer_id] = v end opts.separator '' opts.separator 'Help:' opts.on_tail('-h', '--help', 'Show this message') do puts opts exit end end.parse! begin set_up_advanced_remarketing(options.fetch(:customer_id).tr("-", "")) rescue Google::Ads::GoogleAds::Errors::GoogleAdsError => e e.failure.errors.each do |error| STDERR.printf("Error with message: %s\n", error.message) if error.location error.location.field_path_elements.each do |field_path_element| STDERR.printf("\tOn field: %s\n", field_path_element.field_name) end end error.error_code.to_h.each do |k, v| next if v == :UNSPECIFIED STDERR.printf("\tType: %s\n\tCode: %s\n", k, v) end end raise end end
Perl
my $checkout_and_cart_size_rule_group = Google::Ads::GoogleAds::V22::Common::UserListRuleItemGroupInfo->new( {ruleItems => [$checkout_rule, $cart_size_rule]});
Crea il secondo rule_item_group
Il secondo rule_item_group è costituito anche da due campi rule_item o da oggetti
UserListRuleItemInfo:
- Utenti che hanno eseguito il checkout dopo il 31 ottobre.
- Utenti che hanno eseguito il checkout prima del 1° gennaio.
Entrambi questi elementi della regola utilizzano il parametro checkoutdate, che contiene valori di data,
quindi questa volta compilerai i campi date_rule_item con oggetti
UserListDateRuleItemInfo.
Innanzitutto, la data di inizio:
Java
UserListRuleItemInfo startDateRule = UserListRuleItemInfo.newBuilder() // The rule variable name must match a corresponding key name fired from a pixel. .setName("checkoutdate") .setDateRuleItem( UserListDateRuleItemInfo.newBuilder() // Available UserListDateRuleItemOperators can be found at // https://developers.google.com/google-ads/api/reference/rpc/latest/UserListDateRuleItemOperatorEnum.UserListDateRuleItemOperator .setOperator(UserListDateRuleItemOperator.AFTER) .setValue("20191031") .build()) .build();
C#
UserListRuleItemInfo startDateRule = new UserListRuleItemInfo { // The rule variable name must match a corresponding key name fired from a pixel. Name = "checkoutdate", DateRuleItem = new UserListDateRuleItemInfo { // Available UserListDateRuleItemOperators can be found at // https://developers.google.com/google-ads/api/reference/rpc/latest/UserListDateRuleItemOperatorEnum.UserListDateRuleItemOperator Operator = UserListDateRuleItemOperator.After, Value = "20191031" } };
PHP
$startDateRule = new UserListRuleItemInfo([ // The rule variable name must match a corresponding key name fired from a pixel. 'name' => 'checkoutdate', 'date_rule_item' => new UserListDateRuleItemInfo([ // Available UserListDateRuleItemOperators can be found at // https://developers.google.com/google-ads/api/reference/rpc/latest/UserListDateRuleItemOperatorEnum.UserListDateRuleItemOperator 'operator' => UserListDateRuleItemOperator::AFTER, 'value' => '20191031' ]) ]);
Python
start_date_rule: UserListRuleItemInfo = client.get_type( "UserListRuleItemInfo" ) start_date_rule.name = "checkoutdate" start_date_rule_item: UserListDateRuleItemInfo = ( start_date_rule.date_rule_item ) # Available UserListDateRuleItemOperators can be found at: # https://developers.google.com/google-ads/api/reference/rpc/latest/UserListDateRuleItemOperatorEnum.UserListDateRuleItemOperator user_list_data_rule_item_operator_enum: UserListDateRuleItemOperatorEnum = ( client.enums.UserListDateRuleItemOperatorEnum ) start_date_rule_item.operator = user_list_data_rule_item_operator_enum.AFTER start_date_rule_item.value = "20191031"
Ruby
start_date_rule = client.resource.user_list_rule_item_info do |rule| # The rule variable name must match a corresponding key name fired # from a pixel. rule.name = "checkoutdate" rule.date_rule_item = client.resource.user_list_date_rule_item_info do |dr| dr.operator = :AFTER dr.value = "20191031" end end
Perl
my $start_date_rule = Google::Ads::GoogleAds::V22::Common::UserListRuleItemInfo->new({ # The rule variable name must match a corresponding key name fired from a # pixel. name => "checkoutdate", dateRuleItem => Google::Ads::GoogleAds::V22::Common::UserListDateRuleItemInfo->new({ # Available UserListDateRuleItemOperators can be found at # https://developers.google.com/google-ads/api/reference/rpc/latest/UserListDateRuleItemOperatorEnum.UserListDateRuleItemOperator operator => AFTER, value => "20191031" })});
Poi, la data di fine:
Java
UserListRuleItemInfo endDateRule = UserListRuleItemInfo.newBuilder() // The rule variable name must match a corresponding key name fired from a pixel. .setName("checkoutdate") .setDateRuleItem( UserListDateRuleItemInfo.newBuilder() .setOperator(UserListDateRuleItemOperator.BEFORE) .setValue("20200101") .build()) .build();
C#
UserListRuleItemInfo endDateRule = new UserListRuleItemInfo { // The rule variable name must match a corresponding key name fired from a pixel. Name = "checkoutdate", DateRuleItem = new UserListDateRuleItemInfo { Operator = UserListDateRuleItemOperator.Before, Value = "20200101" } };
PHP
$endDateRule = new UserListRuleItemInfo([ // The rule variable name must match a corresponding key name fired from a pixel. 'name' => 'checkoutdate', 'date_rule_item' => new UserListDateRuleItemInfo([ 'operator' => UserListDateRuleItemOperator::BEFORE, 'value' => '20200101' ]) ]);
Python
end_date_rule: UserListRuleItemInfo = client.get_type( "UserListRuleItemInfo" ) end_date_rule.name = "checkoutdate" end_date_rule_item: UserListDateRuleItemInfo = end_date_rule.date_rule_item end_date_rule_item.operator = user_list_data_rule_item_operator_enum.BEFORE end_date_rule_item.value = "20200101"
Ruby
end_date_rule = client.resource.user_list_rule_item_info do |rule| # The rule variable name must match a corresponding key name fired # from a pixel. rule.name = "checkoutdate" rule.date_rule_item = client.resource.user_list_date_rule_item_info do |dr| dr.operator = :BEFORE dr.value = "20200101" end end
Perl
my $end_date_rule = Google::Ads::GoogleAds::V22::Common::UserListRuleItemInfo->new({ # The rule variable name must match a corresponding key name fired from a # pixel. name => "checkoutdate", dateRuleItem => Google::Ads::GoogleAds::V22::Common::UserListDateRuleItemInfo->new({ operator => BEFORE, value => "20200101" })});
Come per il primo gruppo di elementi della regola, combina questi due campi rule_item in un oggetto UserListRuleItemGroupInfo per ANDli insieme.
Java
UserListRuleItemGroupInfo checkoutDateRuleGroup = UserListRuleItemGroupInfo.newBuilder() .addAllRuleItems(ImmutableList.of(startDateRule, endDateRule)) .build();
C#
UserListRuleItemGroupInfo checkoutDateRuleGroup = new UserListRuleItemGroupInfo(); checkoutDateRuleGroup.RuleItems.Add(startDateRule); checkoutDateRuleGroup.RuleItems.Add(endDateRule);
PHP
$checkoutDateRuleGroup = new UserListRuleItemGroupInfo([ 'rule_items' => [$startDateRule, $endDateRule] ]);
Python
checkout_date_rule_group.rule_items.extend( [ start_date_rule, end_date_rule, ] )
Ruby
checkout_date_rule_group = client.resource.user_list_rule_item_group_info do |g| g.rule_items += [start_date_rule, end_date_rule] end
Perl
my $checkout_date_rule_group = Google::Ads::GoogleAds::V22::Common::UserListRuleItemGroupInfo->new( {ruleItems => [$start_date_rule, $end_date_rule]});