יצירת רשימת המשתמשים

במקרה של expression_rule_user_list, צריך להבחין בין שני סוגים של תוספים. כברירת מחדל, מערכת Google Ads AND את כל הפריטים של הכלל בקבוצת פריטים של כלל. המשמעות היא שכל פריט כלל בלפחות קבוצת פריטי כלל אחת צריך להתאים כדי שהכלל יוסיף מבקר לרשימה. הצורה הזו נקראת "צורה נורמלית דיסיונקטיבית" או OR_OF_ANDS.

לחלופין, אפשר להגדיר את הרשימה כך שהמערכת תוסיף אליה מבקר רק אם פריט כלל אחד לפחות בכל קבוצת פריטי כלל תואם. הפורמט הזה נקרא "צורה נורמלית קוניונקטיבית" או AND_OF_ORS, והוא זמין ל-expression_rule_user_list באמצעות השדה rule_type. ניסיון להשתמש ב-AND_OF_ORS עבור date_specific_rule_user_list יוביל לשגיאה.

כל מה שנותר הוא לשלב את קבוצות הפריטים של הכללים שלמעלה ברשימת משתמשים חדשה. במקרה כזה, נשאיר את הפונקציונליות של OR_OF_ANDS כברירת מחדל, כי לשם כך יצרנו את הכללים האלה.

Java

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

C#‎

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

PHP

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

Python

# 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)
      

Ruby

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
      

Perl

my $flexible_rule_user_list_info =
  Google::Ads::GoogleAds::V21::Common::FlexibleRuleUserListInfo->new({
    inclusiveRuleOperator => AND,
    inclusiveOperands     => [
      Google::Ads::GoogleAds::V21::Common::FlexibleRuleOperandInfo->new({
          rule => Google::Ads::GoogleAds::V21::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 => []});
      

הכללת משתמשים קודמים ברשימה

אפשר גם לכלול משתמשים קודמים ברשימת משתמשים שמבוססת על כללים. לשם כך, צריך להגדיר את הערך prepopulation_status של רשימת המשתמשים ל-REQUESTED, ולבדוק מדי פעם את הסטטוס של השדה הזה כדי לעקוב אחרי ההתקדמות של תהליך האכלוס האסינכרוני.

הפעולה הזו תוסיף רק משתמשים מהעבר מ-30 הימים האחרונים, בהתאם למשך החברות ברשימה ולתאריך שבו נוסף תג הרימרקטינג. הסטטוס יתעדכן ל-FINISHED אחרי שהבקשה תעובד, או ל-FAILED אם הבקשה תיכשל.