Các phương pháp hay nhất

Hướng dẫn này nêu bật các yêu cầu và ví dụ về sản phẩm Đặt món ăn.

Điều kiện và chính sách

Phần này nêu bật các tiêu chí quan trọng mà đối tác phải tuân thủ khi cung cấp ưu đãi. Bạn cần kiểm thử tất cả các loại mặt hàng mà bạn dự định ra mắt trong quá trình kiểm thử nguồn cấp dữ liệu trong hộp cát. Nếu bạn không chắc chắn liệu một ưu đãi có đủ điều kiện hay không, vui lòng liên hệ với đầu mối liên hệ của bạn tại Google.

Loại trừ các ưu đãi dành riêng cho bạn và ưu đãi dùng một lần

Để đảm bảo mang lại trải nghiệm nhất quán và chất lượng cao cho người dùng, các đối tác không được đưa ra những ưu đãi chỉ dành cho một nhóm nhỏ người dùng. Ưu đãi được cá nhân hoá chỉ dành cho một số người dùng cụ thể sẽ không đủ điều kiện. Bạn được phép cung cấp ưu đãi trên toàn nền tảng cho tất cả người dùng, chẳng hạn như người dùng lần đầu hoặc người dùng đặt hàng lần đầu tại một nhà hàng cụ thể, miễn là ưu đãi đó xuất hiện trên trang đích ưu đãi cho tất cả người dùng. Bạn phải nêu rõ các điều kiện của ưu đãi trong tiêu đề ưu đãi và trên trang đích của URL ưu đãi. Tất cả người dùng đều phải thấy ưu đãi trên trang đích của ưu đãi khi đăng xuất hoặc đăng nhập vào trang web hoặc ứng dụng của bạn.

Sản phẩm có mã giảm giá

Một số ưu đãi yêu cầu người dùng nhập mã giảm giá, chẳng hạn như "Áp dụng mã TIETKIEM20 để được giảm 20% tổng hoá đơn". Bạn cần lưu ý rằng Google không hiển thị mã giảm giá từ định nghĩa coupon. Các đối tác có thể thêm thông tin này vào OfferDetails.offer_display_text để hiển thị cho người dùng. Ưu đãi dựa trên phiếu giảm giá thường thuộc 2 danh mục:

  • Ưu đãi mà phiếu giảm giá được tự động xuất hiện trong quá trình thanh toán cho bất kỳ người dùng nào truy cập từ Google. Những trường hợp này được phép.
  • Bạn không được phép đăng những mặt hàng yêu cầu người dùng nhập mã giảm giá khi thanh toán nhưng không cung cấp hướng dẫn về cách áp dụng mã giảm giá trên trang đích của URL mặt hàng hoặc không tự động áp dụng mã giảm giá khi người dùng truy cập vào URL mặt hàng.

Nội dung và cấu trúc của đề nghị

Phần này trình bày chi tiết các yêu cầu đối với nội dung và cấu trúc của các sản phẩm được cung cấp trong nguồn cấp dữ liệu, bao gồm cả ví dụ về siêu dữ liệu có cấu trúc.

Văn bản hiển thị của ưu đãi và Quy cách của ưu đãi

OfferDetails.offer_display_text là một trường bắt buộc đóng vai trò là tiêu đề ngắn gọn để hiển thị ngay trong phần ưu đãi trên Google Tìm kiếm, chẳng hạn như "Giảm 100.000 VND" hoặc "Tiết kiệm 15%".

OfferDetails.offer_specification là một trường bắt buộc "one of" trong OfferDetails. Điều này có nghĩa là bạn phải cung cấp chính xác một trong ba trường sau để chỉ định ưu đãi:

  • discount_value
  • discount_percent
  • other_offer_detail_text

Trường OfferDetails.other_offer_detail_text là một trường văn bản dạng tự do dùng để bổ sung cho offer_display_text khi ưu đãi không thể biểu thị dưới dạng giá trị chiết khấu hoặc tỷ lệ phần trăm cố định. Nếu offer_display_text đã đủ để truyền tải tất cả thông tin cần thiết về mặt hàng, thì bạn nên điền vào trường other_offer_detail_text cùng văn bản với offer_display_text. Tuy nhiên, đối với các giao dịch phức tạp, trường này phải cung cấp nội dung mô tả cụ thể về phần thưởng.

Trường siêu dữ liệu có cấu trúc

Để cải thiện độ rõ ràng của mặt hàng và cho phép xếp hạng cũng như lọc hiệu quả hơn, đối tác phải cung cấp siêu dữ liệu của mặt hàng trong các trường có cấu trúc tương ứng. Bạn phải chỉ định điều khoản. Bạn nên đặt trường terms.terms_and_conditions bằng các điều khoản chi tiết mà người dùng nhìn thấy trên trang đích của sản phẩm.

Tổng số ưu đãi theo đơn đặt hàng và ưu đãi theo mặt hàng cụ thể

Những ưu đãi dành riêng cho một số mặt hàng phải sử dụng các trường offer_restrictions.inclusionsoffer_restrictions.exclusions để xác định các mặt hàng đủ điều kiện. Nếu ưu đãi dành cho một mặt hàng cụ thể, bạn phải thêm tên mặt hàng vào offer_display_text. Khi tên mặt hàng có trong offer_display_text, bạn không cần phải đặt offer_restrictions.inclusions.

Nếu bạn không đặt offer_restrictions.inclusions hoặc nếu tên mặt hàng không có trong offer_display_text, thì ưu đãi được coi là áp dụng cho tổng số tiền của đơn đặt hàng.

Sản phẩm có phí giao hàng

Ưu đãi phí giao hàng phải sử dụng offer_category OFFER_CATEGORY_ADD_ON_FEE_REDUCTION_OFFER. Nhờ đó, ưu đãi chỉ xuất hiện khi được kết hợp với một ưu đãi cơ bản khác cho vị trí. Một mặt hàng có phí giao hàng sẽ không xuất hiện dưới dạng mặt hàng cơ sở.

Ví dụ về JSON của sản phẩm

Giảm giá cố định 20 USD

Ví dụ: Giảm 200.000 VND cho tổng đơn đặt hàng vào các ngày thứ Ba với mức chi tiêu tối thiểu là 150.000 VND

{
  "offer_id": "offer-example-1-takeout",
  "offer_source": "OFFER_SOURCE_AGGREGATOR",
  "action_type": "ACTION_TYPE_FOOD_TAKEOUT",
  "offer_modes": ["OFFER_MODE_ONLINE_ORDER"],
  "offer_category": "OFFER_CATEGORY_BASE_OFFER",
  "offer_details": {
    "offer_display_text": "$20 off on Tuesdays",
    "discount_value": {
      "currency_code": "USD",
      "units": 20
    },
    "min_spend_value": {
      "currency_code": "USD",
      "units": 15
    }
  },
  "validity_periods": [
    {
      "valid_period": {
        "valid_from_time": { "seconds": 1768953600 },
        "valid_through_time": { "seconds": 1795219200 }
      },
      "time_of_day": [
        {
          "time_windows": {
            "open_time": { "hours": 9 },
            "close_time": { "hours": 20, "minutes": 59, "seconds": 59 }
          },
          "day_of_week": ["TUESDAY"]
        }
      ]
    }
  ],
  "offer_restrictions": {
    "combinable_with_other_offers": false
  },
  "terms": {
    "terms_and_conditions": "For use only at the participating restaurant location on qualifying delivery or takeout orders with $15 minimum spend. Single use per order. Offer may not be combined with any other offers, discounts, or promotions. Valid only on Tuesdays."
  },
  "entity_ids": ["dining-1"],
  "offer_url": "https://www.example-restaurant.com/offer/base_offer_1"
}

Giảm 50% cho Berry Smoothie

Ví dụ: Ưu đãi giảm giá 50% ở cấp mặt hàng.

{
  "offer_id": "offer-example-1-takeout",
  "offer_source": "OFFER_SOURCE_AGGREGATOR",
  "action_type": "ACTION_TYPE_FOOD_TAKEOUT",
  "offer_modes": ["OFFER_MODE_ONLINE_ORDER"],
  "offer_category": "OFFER_CATEGORY_BASE_OFFER",
  "offer_details": {
    "offer_display_text": "50% off on Berry Smoothie",
    "discount_percent": 50.0
  },
  "validity_periods": [
    {
      "valid_period": {
        "valid_from_time": { "seconds": 1768953600 },
        "valid_through_time": { "seconds": 1795219200 }
      }
    }
  ],
  "offer_restrictions": {
    "combinable_with_other_offers": true,
    "inclusions": [
      {"description":"Berry Smoothie"}
    ]
  },
  "terms": {
    "terms_and_conditions": "For use only at the participating restaurant location on qualifying delivery or takeout orders. Single use per order."
  },
  "entity_ids": ["dining-1"],
  "offer_url": "https://www.example-restaurant.com/offer/base_offer_1"
}

Ưu đãi Mua 1 tặng 1

Ví dụ: Mua một món khai vị, tặng một món khai vị, áp dụng từ thứ Hai đến thứ Năm

{
  "offer_id": "offer-example-2-delivery",
  "offer_source": "OFFER_SOURCE_AGGREGATOR",
  "action_type": "ACTION_TYPE_FOOD_DELIVERY",
  "offer_modes": ["OFFER_MODE_ONLINE_ORDER"],
  "offer_category": "OFFER_CATEGORY_BASE_OFFER",
  "offer_details": {
    "offer_display_text": "Buy one appetizer, get one free",
    "other_offer_detail_text": "Buy one appetizer, get one free"
  },
  "validity_periods": [
    {
      "valid_period": {
        "valid_from_time": { "seconds": 1768953600 },
        "valid_through_time": { "seconds": 1795219200 }
      },
      "time_of_day": [
        {
          "time_windows": {
            "open_time": { "hours": 10 },
            "close_time": { "hours": 23, "minutes": 59, "seconds": 59 }
          },
          "day_of_week": ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY"]
        }
      ]
    }
  ],
  "offer_restrictions": {
    "combinable_with_other_offers": true,
    "inclusions": [
      {
        "description": "appetizers"
      }
    ]
  },
  "terms": {
    "terms_and_conditions": "For use only at the participating restaurant location on qualifying delivery or takeout orders. Single use per order. Valid on all menu appetizers. Offer may be combined with any other offers, discounts, or promotions. Valid Monday through Thursday."
  },
  "entity_ids": ["dining-1"],
  "offer_url": "https://www.example-restaurant.com/offer/base_offer_4"
}

Ưu đãi giao hàng miễn phí

Ví dụ: Dịch vụ giao hàng miễn phí dưới dạng một ưu đãi bổ sung cho ưu đãi cơ bản. Ưu đãi Phí vận chuyển bằng 0 sẽ xuất hiện cùng với ưu đãi cơ bản cho vị trí đó.

[
  {
    "offer_id": "offerId1",
    "offer_source": "OFFER_SOURCE_AGGREGATOR",
    "action_type": "ACTION_TYPE_FOOD_DELIVERY",
    "offer_modes": ["OFFER_MODE_ONLINE_ORDER"],
    "offer_category": "OFFER_CATEGORY_BASE_OFFER",
    "offer_details": {
      "offer_display_text": "10% off",
      "discount_percent": 10.0
    },
    "validity_periods": [
      {
        "valid_period": {
          "valid_from_time": { "seconds": 1768953600 },
          "valid_through_time": { "seconds": 1795219200 }
        },
        "time_of_day": [
          {
            "day_of_week": ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY"]
          }
        ]
      }
    ],
    "offer_restrictions": {
      "combinable_with_other_offers": true,
      "combinable_offer_categories": ["OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER"]
    },
    "terms": {
      "terms_and_conditions": "For use only at the participating restaurant location on qualifying delivery or takeout orders. Single use per order. Offer may be combined with any other offers, discounts, or promotions."
    },
    "entity_ids": ["dining-1"],
    "offer_url": "https://www.example-restaurant.com/offer/base_offer_5"
  },
  {
    "offer_id": "offerId2",
    "offer_source": "OFFER_SOURCE_AGGREGATOR",
    "action_type": "ACTION_TYPE_FOOD_DELIVERY",
    "offer_modes": ["OFFER_MODE_ONLINE_ORDER"],
    "offer_category": "OFFER_CATEGORY_ADD_ON_FEE_REDUCTION_OFFER",
    "offer_details": {
      "offer_display_text": "$0 Delivery Fee",
      "other_offer_detail_text": "Free dellivery"
    },
    "validity_periods": [
      {
        "valid_period": {
          "valid_from_time": { "seconds": 1768953600 },
          "valid_through_time": { "seconds": 1795219200 }
        }
      }
    ],
    "offer_restrictions": {
      "combinable_with_other_offers": true
    },
    "terms": {
      "terms_and_conditions": "Delivery is free at the participating restaurant location on qualifying delivery or takeout orders. Single use per order. Offer may be combined with any other offers, discounts, or promotions."
    },
    "entity_ids": ["dining-1"],
    "offer_url": "https://www.example-restaurant.com/offer/addon_offer_1"
  }
]

Thực hiện đơn hàng và các ràng buộc

Phần này trình bày chi tiết các yêu cầu và phương pháp hay nhất liên quan đến quy cách thực hiện ưu đãi và các ràng buộc liên quan.

Chế độ thực hiện đơn hàng (Giao hàng và Lấy hàng)

Nếu một giao dịch duy nhất áp dụng cho cả dịch vụ giao hàng và mang đi, thì giao dịch đó phải có 2 mặt hàng trong nguồn cấp dữ liệu. Mỗi mục nhập phải có một ActionType riêng:

  • ACTION_TYPE_FOOD_DELIVERY
  • ACTION_TYPE_FOOD_TAKEOUT

Điều này đảm bảo rằng người dùng truy cập vào trang web của đối tác sẽ thấy được bối cảnh thực hiện chính xác.

Cửa sổ thời gian

Bạn phải hiển thị ưu đãi trên trang đích của ưu đãi cho tất cả người dùng khi họ đăng xuất hoặc đăng nhập vào trang web hoặc ứng dụng của bạn. Nếu ưu đãi có hiệu lực trong một khoảng thời gian cụ thể, bạn phải thêm trường validity_periods.valid_period để chỉ định khoảng thời gian có hiệu lực. Điều này ngăn việc hiển thị ưu đãi bên ngoài khoảng thời gian đó. Bạn cũng phải đặt khung thời gian nếu ưu đãi xuất hiện trên URL ưu đãi trong một số giờ nhất định trong ngày. Ví dụ: nếu trang đích không hiển thị ưu đãi khi nhà hàng đóng cửa, bạn phải thêm thời gian mở và đóng cửa của TimeOfDayWindow.

Xử lý khung thời gian qua nửa đêm

Những ưu đãi kéo dài qua nửa đêm (ví dụ: có hiệu lực từ 22:00 thứ Ba đến 2:00 thứ Tư) phải được phân đoạn để quy trình tiếp nhận xử lý đúng cách. Yêu cầu: Sử dụng trường TimeOfDayWindow để chia cửa sổ thành 2 phân đoạn riêng biệt:

  • Phân đoạn 1: Từ 22:00 đến 23:59:59 vào ngày bắt đầu (ví dụ: thứ Ba).
  • Phân đoạn 2: 00:00 đến 02:00 ngày hôm sau (ví dụ: thứ Tư).

Điều này giúp đảm bảo tính hợp lệ của ưu đãi được phản ánh chính xác trong toàn bộ thời gian.

Quy cách về phí

Bạn có thể chỉ định phí giao hàng và phí mang đi bằng trường OfferDetails.additional_fees. Bạn nên chỉ định phí phụ thu bằng cách sử dụng OfferDetails.convenience_fee. Sử dụng giá trị phạm vi phí cho các khoản phí thay đổi, ví dụ: nếu phí giao hàng thay đổi dựa trên vị trí của người dùng.