ایجاد گروه‌های آیتم‌های قانون

این راهنما نحوه ایجاد دو گروه آیتم قانون شرح داده شده در سناریوی نمونه را نشان می‌دهد.

اولین گروه آیتم قانون را ایجاد کنید

با ایجاد اولین rule_item_group شروع کنید، که شامل دو فیلد rule_item (اشیاء UserListRuleItemInfo ) است:

  • کاربرانی که از صفحه پرداخت بازدید کرده‌اند.
  • کاربرانی که بیش از یک کالا در سبد خرید خود دارند.

اولین آیتم قانون از پارامتر رشته‌ای ecomm_pagetype به همراه عملگر EQUALS استفاده می‌کند، بنابراین ابتدا یک string_rule_item ایجاد کنید:

جاوا

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();
      

سی شارپ

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"
    }
};
      

پی اچ پی

$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'
        ]
    )
    ]
);
      

پایتون

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"
      

روبی

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
      

پرل

my $checkout_rule =
  Google::Ads::GoogleAds::V25::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::V25::Common::UserListStringRuleItemInfo->new({
        operator => EQUALS,
        value    => "checkout"
      })});
      

حلقه زدن

مورد قانون دوم از پارامتر عددی cart_size به همراه عملگر GREATER_THAN استفاده می‌کند، بنابراین در مرحله بعد یک number_rule_item ایجاد کنید:

جاوا

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();
      

سی شارپ

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
    }
};
      

پی اچ پی

$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
        ]
    )
    ]
);
      

پایتون

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
      

روبی

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
      

پرل

my $cart_size_rule =
  Google::Ads::GoogleAds::V25::Common::UserListRuleItemInfo->new({
    # The rule variable name must match a corresponding key name fired from a
    # pixel.
    name           => "cart_size",
    numberRuleItem =>
      Google::Ads::GoogleAds::V25::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
      })});
      

حلقه زدن

در مرحله بعد، دو مورد قانون را در یک شیء UserListRuleItemGroupInfo ترکیب کنید. به طور پیش‌فرض، وقتی موارد در یک گروه مورد قانون ترکیب می‌شوند، Google Ads با استفاده از یک عمل AND قوانین آنها را به هم متصل می‌کند. برای جزئیات بیشتر به بخش ایجاد لیست کاربر مراجعه کنید.

جاوا

UserListRuleItemGroupInfo checkoutAndCartSizeRuleGroup =
    UserListRuleItemGroupInfo.newBuilder()
        .addAllRuleItems(ImmutableList.of(checkoutRule, cartSizeRule))
        .build();
      

سی شارپ

UserListRuleItemGroupInfo checkoutAndCartSizeRuleGroup =
    new UserListRuleItemGroupInfo();
checkoutAndCartSizeRuleGroup.RuleItems.Add(checkoutRule);
checkoutAndCartSizeRuleGroup.RuleItems.Add(cartSizeRule);
      

پی اچ پی

$checkoutAndCartSizeRuleGroup = new UserListRuleItemGroupInfo(
    [
    'rule_items' => [$checkoutRule, $cartSizeRule]
    ]
);
      

پایتون

checkout_and_cart_size_rule_group.rule_items.extend(
    [
        checkout_rule,
        cart_size_rule,
    ]
)
      

روبی

  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

      

پرل

my $checkout_and_cart_size_rule_group =
  Google::Ads::GoogleAds::V25::Common::UserListRuleItemGroupInfo->new(
  {ruleItems => [$checkout_rule, $cart_size_rule]});
      

حلقه زدن

گروه مورد قانون دوم را ایجاد کنید

دومین rule_item_group نیز شامل دو فیلد rule_item (اشیاء UserListRuleItemInfo ) است:

  • کاربرانی که پس از ۳۱ اکتبر (اپراتور AFTER ) حساب خود را تسویه کرده‌اند.
  • کاربرانی که قبل از اول ژانویه ( BEFORE اپراتور) حساب خود را تسویه کرده‌اند.

هر دوی این آیتم‌های قانون از پارامتر checkoutdate استفاده می‌کنند که دارای مقادیر تاریخ است. فیلدهای date_rule_item را با اشیاء UserListDateRuleItemInfo که به صورت YYYYMMDD (ارزیابی شده در منطقه زمانی حساب) قالب‌بندی شده‌اند، پر کنید.

ابتدا، تاریخ شروع ( "20191031" ) را تعریف کنید:

جاوا

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();
      

سی شارپ

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"
    }
};
      

پی اچ پی

$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'
        ]
    )
    ]
);
      

پایتون

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"
      

روبی

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
      

پرل

my $start_date_rule =
  Google::Ads::GoogleAds::V25::Common::UserListRuleItemInfo->new({
    # The rule variable name must match a corresponding key name fired from a
    # pixel.
    name         => "checkoutdate",
    dateRuleItem =>
      Google::Ads::GoogleAds::V25::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"
      })});
      

حلقه زدن

سپس، تاریخ پایان ( "20200101" ) را تعریف کنید:

جاوا

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();
      

سی شارپ

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"
    }
};
      

پی اچ پی

$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'
        ]
    )
    ]
);
      

پایتون

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"
      

روبی

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
      

پرل

my $end_date_rule =
  Google::Ads::GoogleAds::V25::Common::UserListRuleItemInfo->new({
    # The rule variable name must match a corresponding key name fired from a
    # pixel.
    name         => "checkoutdate",
    dateRuleItem =>
      Google::Ads::GoogleAds::V25::Common::UserListDateRuleItemInfo->new({
        operator => BEFORE,
        value    => "20200101"
      })});
      

حلقه زدن

همانند گروه آیتم قانون اول، این دو فیلد rule_item را در یک شیء UserListRuleItemGroupInfo ترکیب کنید تا آنها را با هم AND :

جاوا

UserListRuleItemGroupInfo checkoutDateRuleGroup =
    UserListRuleItemGroupInfo.newBuilder()
        .addAllRuleItems(ImmutableList.of(startDateRule, endDateRule))
        .build();
      

سی شارپ

UserListRuleItemGroupInfo checkoutDateRuleGroup = new UserListRuleItemGroupInfo();
checkoutDateRuleGroup.RuleItems.Add(startDateRule);
checkoutDateRuleGroup.RuleItems.Add(endDateRule);
      

پی اچ پی

$checkoutDateRuleGroup = new UserListRuleItemGroupInfo(
    [
    'rule_items' => [$startDateRule, $endDateRule]
    ]
);
      

پایتون

checkout_date_rule_group.rule_items.extend(
    [
        start_date_rule,
        end_date_rule,
    ]
)
      

روبی

checkout_date_rule_group = client.resource.user_list_rule_item_group_info do |g|
  g.rule_items += [start_date_rule, end_date_rule]
end
      

پرل

my $checkout_date_rule_group =
  Google::Ads::GoogleAds::V25::Common::UserListRuleItemGroupInfo->new(
  {ruleItems => [$start_date_rule, $end_date_rule]});
      

حلقه زدن

گروه‌های آیتم‌های قانون را در یک قانون لیست کاربر ترکیب کنید

برای اعمال هر دو گروه به بخش مخاطبان خود، هر دو شیء UserListRuleItemGroupInfo را به یک نمونه UserListRuleInfo در عملوند قانون انعطاف‌پذیر خود اضافه کنید، جایی که گروه‌ها با استفاده از یک عملیات OR به هم متصل می‌شوند:

جاوا

FlexibleRuleUserListInfo flexibleRuleUserListInfo =
    FlexibleRuleUserListInfo.newBuilder()
        .setInclusiveRuleOperator(UserListFlexibleRuleOperator.AND)
        .addInclusiveOperands(
            FlexibleRuleOperandInfo.newBuilder()
                .setRule(
                    // The default rule_type for a UserListRuleInfo object is OR of ANDs
                    // (disjunctive normal form). That is, rule items will be ANDed together
                    // within rule item groups and the groups themselves will be ORed together.
                    UserListRuleInfo.newBuilder()
                        .addRuleItemGroups(checkoutDateRuleGroup)
                        .addRuleItemGroups(checkoutAndCartSizeRuleGroup))
                // Optional: includes a lookback window for this rule, in days.
                .setLookbackWindowDays(7L))
        .build();
      

سی شارپ

FlexibleRuleUserListInfo flexibleRuleUserListInfo = new FlexibleRuleUserListInfo();
FlexibleRuleOperandInfo flexibleRuleOperandInfo = new FlexibleRuleOperandInfo() {
    Rule = new UserListRuleInfo()
};
flexibleRuleOperandInfo.Rule.RuleItemGroups.Add(checkoutAndCartSizeRuleGroup);
flexibleRuleOperandInfo.Rule.RuleItemGroups.Add(checkoutDateRuleGroup);
flexibleRuleUserListInfo.InclusiveOperands.Add(flexibleRuleOperandInfo);
      

پی اچ پی

$flexibleRuleUserListInfo = new FlexibleRuleUserListInfo(
    [
    'inclusive_rule_operator' => UserListFlexibleRuleOperator::PBAND,
    'inclusive_operands' => [
        new FlexibleRuleOperandInfo(
            [
            'rule' => new UserListRuleInfo(
                [
                // The default rule_type for a UserListRuleInfo object is OR of ANDs
                // (disjunctive normal form). That is, rule items will be ANDed together
                // within rule item groups and the groups themselves will be ORed together.
                'rule_item_groups' => [
                    $checkoutAndCartSizeRuleGroup,
                    $checkoutDateRuleGroup
                ]
                ]
            ),
            // Optionally add a lookback window for this rule, in days.
            'lookback_window_days' => 7
            ]
        )
    ],
    'exclusive_operands' => []
    ]
);
      

پایتون

# Create a FlexibleRuleUserListInfo 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.
flexible_rule_user_list_info: FlexibleRuleUserListInfo = (
    rule_based_user_list_info.flexible_rule_user_list
)
flexible_rule_user_list_info.inclusive_rule_operator = (
    client.enums.UserListFlexibleRuleOperatorEnum.AND
)
# The default rule_type for a UserListRuleInfo object is OR of
# ANDs (disjunctive normal form). That is, rule items will be
# ANDed together within rule item groups and the groups
# themselves will be ORed together.
rule_operand: FlexibleRuleOperandInfo = client.get_type(
    "FlexibleRuleOperandInfo"
)
rule_operand.rule.rule_item_groups.extend(
    [
        checkout_and_cart_size_rule_group,
        checkout_date_rule_group,
    ]
)
rule_operand.lookback_window_days = 7
flexible_rule_user_list_info.inclusive_operands.append(rule_operand)
      

روبی

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
      

پرل

my $flexible_rule_user_list_info =
  Google::Ads::GoogleAds::V25::Common::FlexibleRuleUserListInfo->new({
    inclusiveRuleOperator => AND,
    inclusiveOperands     => [
      Google::Ads::GoogleAds::V25::Common::FlexibleRuleOperandInfo->new({
          rule => Google::Ads::GoogleAds::V25::Common::UserListRuleInfo->new({
              # The default rule_type for a UserListRuleInfo object is OR of
              # ANDs (disjunctive normal form). That is, rule items will be
              # ANDed together within rule item groups and the groups
              # themselves will be ORed together.
              ruleItemGroups => [
                $checkout_date_rule_group, $checkout_and_cart_size_rule_group
              ]}
          ),
          # Optionally include a lookback window for this rule, in days.
          lookback_window_days => 7
        })
    ],
    exclusiveOperands => []});
      

حلقه زدن

برای جزئیات کامل در مورد rule_type ( OR_OF_ANDS در FlexibleRuleUserListInfo ) و پیش پر کردن لیست حاصل، به بخش Create a user list بروید.