# ईमेल में उत्पाद अनुशंसाएँ कैसे सेट अप करें

प्रोडक्ट्स ब्लॉक के **स्रोत** को **अनुशंसाएँ** पर सेट करने से उत्पाद **बेस्टसेलर**, **वापस स्टॉक में**, **कीमत में गिरावट**, **नए आगमन**, **एक साथ खरीदे गए**, या **उन्होंने जो देखा उसके आधार पर** के अनुसार रैंक हो सकते हैं, बिना आपके द्वारा उत्पाद चुनने या कैटलॉग नियम लिखने के। इस स्रोत द्वारा जोड़े गए हर फ़ील्ड के लिए [अनुशंसित उत्पाद प्राप्त करें](/hi/product/content/email-content/drag-and-drop-email-editor/blocks/#get-recommended-products) देखें। उन रणनीतियों में से तीन को काम करने के लिए आपके कैटलॉग के बाहर से डेटा की आवश्यकता होती है: **बेस्टसेलर** आपके ऑर्डर इतिहास को पढ़ता है, और **एक साथ खरीदे गए** और **उन्होंने जो देखा उसके आधार पर** यह पढ़ते हैं कि खरीदारों ने क्या देखा और खरीदा है। यह गाइड बताता है कि प्रत्येक रणनीति के पास रैंक करने के लिए कुछ हो, इसके लिए क्या भेजना है।

<Aside type="tip">
क्या आप पहले से ही [छूटी हुई कार्ट रिकवरी](/hi/tutorials/product-guides/email-marketing-campaigns/how-to-set-up-an-abandoned-cart-campaign/) के लिए `PW_AbandonedCart` और `PW_OrderCreated` भेज रहे हैं? पढ़ते रहें। **बेस्टसेलर** को `PW_OrderCreated` पर एक और फ़ील्ड की आवश्यकता है जो छूटी हुई कार्ट गाइड में शामिल नहीं है।
</Aside>

## शुरू करने से पहले

सुनिश्चित करें कि आपके खाते के कैटलॉग में उत्पाद हैं। **सामग्री → उत्पाद कैटलॉग** पर जाएं और एक फ़ीड कनेक्ट करें, एक CSV आयात करें, या हाथ से उत्पाद जोड़ें। [अपने कैटलॉग को कैसे भरें सीखें](/hi/product/content/product-catalog/#ways-to-populate-your-catalog)।

<Aside type="caution" icon="setting" title="डेवलपर की सहायता आवश्यक है">
नीचे दिए गए इवेंट्स भेजने के लिए आपकी विकास टीम की मदद की आवश्यकता होगी, जब तक कि आपका स्टोर एकीकरण उन्हें आपके लिए पहले से ही नहीं भेजता है। कृपया इस गाइड को उनके साथ साझा करें।
</Aside>

<Aside type="note" title="नए खाते पहले नियमित कैटलॉग देखते हैं">
नीचे दी गई प्रत्येक रणनीति को कुछ भी रैंक करने से पहले इतिहास जमा करने की आवश्यकता होती है। तब तक, ब्लॉक इसके बजाय नियमित कैटलॉग दिखाता है। [अनुशंसित उत्पाद प्राप्त करें](/hi/product/content/email-content/drag-and-drop-email-editor/blocks/#get-recommended-products) के तहत नोट देखें।
</Aside>

## किन रणनीतियों को इवेंट्स की आवश्यकता है

छह रणनीतियों में से तीन आपके द्वारा भेजे गए इवेंट्स से उत्पादों को रैंक करती हैं; अन्य तीन सीधे आपके कैटलॉग से रैंक करती हैं और आपसे कुछ भी नहीं चाहिए।

| रणनीति | इवेंट्स की आवश्यकता है? | डेटा स्रोत |
| :---- | :---- | :---- |
| **वापस स्टॉक में** | नहीं | कैटलॉग स्टॉक परिवर्तन |
| **कीमत में गिरावट** | नहीं | कैटलॉग मूल्य परिवर्तन |
| **नए आगमन** | नहीं | कैटलॉग "जोड़ा गया" दिनांक |
| **बेस्टसेलर** (7/30 दिन) | हाँ | `PW_OrderCreated` / `PW_OrderUpdated` `items` के साथ |
| **उन्होंने जो देखा उसके आधार पर** | हाँ | कोई भी इवेंट जो उत्पाद आईडी ले जाता है |
| **एक साथ खरीदे गए** | हाँ | कोई भी इवेंट जो उत्पाद आईडी ले जाता है, प्लस एक डिवाइस टैग |

आपकी फ़ीड में स्टॉक या मूल्य परिवर्तन, या अगला निर्धारित सिंक, **वापस स्टॉक में**, **कीमत में गिरावट**, और **नए आगमन** को स्वचालित रूप से अपडेट करता है। उन तीनों के लिए कुछ भी भेजने की आवश्यकता नहीं है।

## बेस्टसेलर: अपने ऑर्डर इवेंट्स में आइटम जोड़ें

**बेस्टसेलर (7 दिन)** और **बेस्टसेलर (30 दिन)** उत्पादों को उस अवधि में बेची गई इकाइयों की संख्या के अनुसार रैंक करते हैं। वे `PW_OrderCreated` और `PW_OrderUpdated` पर `items` ऐरे को पढ़ते हैं, विशेष रूप से प्रत्येक आइटम के `productId` और `quantity` को।

यदि आप पहले से ही [छूटी हुई कार्ट टैग को साफ़ करने](/hi/tutorials/product-guides/email-marketing-campaigns/how-to-set-up-an-abandoned-cart-campaign/#what-happens-when-you-send-pw_ordercreated) के लिए `PW_OrderCreated` भेजते हैं, तो वह न्यूनतम कॉल (सिर्फ `orderId`) अभी भी कार्ट को साफ़ करती है, लेकिन यह बेस्टसेलर को गिनने के लिए कुछ नहीं देती है। उसी कॉल में ऑर्डर के लाइन आइटम जोड़ें:

```json
{
  "request": {
    "hwid": "8f65b16df378e7a6bece9614e1530fb2",
    "application": "XXXXX-XXXXX",
    "event": "PW_OrderCreated",
    "attributes": {
      "orderId": "ORDER-10293",
      "items": [
        {
          "productId": "SKU-4821",
          "quantity": 1
        },
        {
          "productId": "SKU-5190",
          "quantity": 2
        }
      ]
    },
    "userId": "shopper@example.com"
  }
}
```

`productId` को उस आईडी से मेल खाना चाहिए जो आपका [उत्पाद कैटलॉग](/hi/product/content/product-catalog/) उस आइटम के लिए उपयोग करता है, ताकि बेस्टसेलर दिखाने के लिए उत्पाद को देख सके। अतिरिक्त आइटम फ़ील्ड (मूल्य, नाम, और इसी तरह) इस रणनीति के लिए अनदेखा कर दिए जाते हैं। रैंकिंग में केवल `productId` और `quantity` गिने जाते हैं। ऑर्डर संपादन, रिफंड, या आंशिक रद्दीकरण के लिए `PW_OrderUpdated` पर वही `items` ऐरे भेजें, क्योंकि बेस्टसेलर उस ऑर्डर के लिए नवीनतम इवेंट जो कहता है, उससे फिर से गिनती करता है।

<Aside type="tip">
यदि आप [Shopify एकीकरण](/hi/product/integrations/shopify-integration/) का उपयोग करते हैं, तो `PW_OrderCreated` पहले से ही हर ऑर्डर के लिए `productId` और `quantity` के साथ `items` ले जाता है — आपकी तरफ से कुछ भी जोड़ने की आवश्यकता नहीं है। हालांकि, एकीकरण `PW_OrderUpdated` नहीं भेजता है, इसलिए बेस्टसेलर ऑर्डर को मूल रूप से रखे गए के रूप में गिनता है और बाद के संपादन, रिफंड, या रद्दीकरण से इकाइयों को वापस नहीं लेता है।
</Aside>

<Aside type="caution" title="मात्रा को एक संख्या के रूप में भेजें">
`quantity` के लिए एक वास्तविक JSON संख्या का उपयोग करें, न कि एक उद्धृत स्ट्रिंग का। Pushwoosh प्रत्येक एट्रिब्यूट मान को केवल उस प्रकार में संग्रहीत करता है जिसमें इसे पहली बार घोषित या अनुमानित किया गया था; एक बेमेल मान चुपचाप छोड़ दिया जाता है, और `postEvent` अभी भी सफलता लौटाता है। `PW_AbandonedCart` पर समान सावधानी के लिए [सही एट्रिब्यूट प्रकारों का उपयोग करें](/hi/tutorials/product-guides/email-marketing-campaigns/how-to-set-up-an-abandoned-cart-campaign/#create-the-events-in-your-control-panel) देखें।
</Aside>

<Aside type="note">
**बेस्टसेलर** विशेष रूप से ऑर्डर इतिहास के अनुसार रैंक करता है। व्यू और कार्ट गतिविधि नहीं गिनी जाती है। एक रैंकिंग के लिए जिसमें ब्राउज़िंग और कार्ट गतिविधि भी शामिल है, इसके बजाय **उन्होंने जो देखा उसके आधार पर** या **एक साथ खरीदे गए** का उपयोग करें।
</Aside>

## उन्होंने जो देखा उसके आधार पर और एक साथ खरीदे गए: उत्पाद गतिविधि को ट्रैक करें

दोनों रणनीतियाँ एक ही संकेत से बनती हैं: इवेंट्स जो एक उत्पाद आईडी ले जाते हैं। आपको एक समर्पित "उत्पाद देखा गया" इवेंट नाम की आवश्यकता नहीं है — [postEvent](/hi/developer/api-reference/user-centric-api/#postevent) के माध्यम से भेजा गया कोई भी [कस्टम इवेंट](/hi/product/audience-data-and-segmentation/events/custom-events/) गिना जाता है, जब तक कि उसके `attributes` में इनमें से एक कुंजी शामिल हो:

* एक एकल उत्पाद, एक शीर्ष-स्तरीय एट्रिब्यूट के रूप में: `product_id`, `productId`, `productid`, `item_id`, या `sku`।
* एकाधिक उत्पाद, एक `products` ऐरे के रूप में जहां प्रत्येक आइटम में `product_id`, `productId`, `id`, या `sku` होता है।

उदाहरण के लिए, अपने मौजूदा उत्पाद-व्यू इवेंट को एक उत्पाद आईडी एट्रिब्यूट के साथ फायर करें जो पहले से ही उस पर है:

```json
{
  "request": {
    "hwid": "8f65b16df378e7a6bece9614e1530fb2",
    "application": "XXXXX-XXXXX",
    "event": "ProductViewed",
    "attributes": {
      "product_id": "SKU-4821",
      "category": "Audio"
    },
    "userId": "shopper@example.com"
  }
}
```

**उन्होंने जो देखा उसके आधार पर** प्रत्येक खरीदार के अपने हाल ही में इंटरैक्ट किए गए उत्पादों को रैंक करता है — उपरोक्त इवेंट्स के प्रवाहित होने के बाद किसी और सेटअप की आवश्यकता नहीं है।

<Aside type="tip">
यदि आप [Shopify एकीकरण](/hi/product/integrations/shopify-integration/) का उपयोग करते हैं, तो स्टोरफ्रंट थीम एम्बेड पहले से ही हर उत्पाद पृष्ठ व्यू पर `productId` के साथ `PW_ProductViewed` भेजता है — आपकी तरफ से कुछ भी जोड़ने की आवश्यकता नहीं है, जब तक कि **Push Init Embed** टॉगल चालू है (यह डिफ़ॉल्ट रूप से बंद है)। [स्टोरफ्रंट ब्राउज़िंग इवेंट्स](/hi/product/integrations/shopify-integration/#storefront-browsing-events) देखें।
</Aside>

**एक साथ खरीदे गए** आपके पूरे खाते के इतिहास में, एक एंकर उत्पाद के साथ अक्सर खरीदे जाने वाले उत्पादों को रैंक करता है। इसे एक और चीज़ की आवश्यकता है: एक **उत्पाद टैग**, एक [डिवाइस टैग](/hi/developer/api-reference/tags/) जो वर्तमान एंकर उत्पाद की आईडी रखता है। [उत्पाद ब्लॉक](/hi/product/content/email-content/drag-and-drop-email-editor/blocks/#get-recommended-products) में रणनीति को कॉन्फ़िगर करते समय फ़ील्ड का नाम सेट करें (उदाहरण के लिए `PW_LastViewedProductID`), फिर उस टैग को प्रत्येक डिवाइस पर अपडेट रखें। उदाहरण के लिए, जब भी खरीदार कोई उत्पाद देखता है, तो [इसे](/hi/developer/api-reference/tags/) उत्पाद की आईडी पर सेट करें। किसी प्राप्तकर्ता पर टैग सेट किए बिना, ब्लॉक उनके लिए नियमित कैटलॉग पर वापस आ जाता है।

<Aside type="caution" title="टैग नाम के नियम">
टैग नाम केवल अक्षर, अंक, अंडरस्कोर और स्पेस स्वीकार करता है, क्योंकि इसे Liquid में संबोधित करने योग्य होना चाहिए। [एक साथ खरीदे गए को एक उत्पाद टैग की आवश्यकता है](/hi/product/content/email-content/drag-and-drop-email-editor/blocks/#get-recommended-products) देखें।
</Aside>

## पुष्टि करें कि आपके इवेंट्स आ रहे हैं

ब्लॉक जोड़ने से पहले, जांचें कि Pushwoosh वास्तव में उपरोक्त इवेंट्स प्राप्त कर रहा है: **ऑडियंस → इवेंट्स** पर जाएं, आपके द्वारा भेजे गए इवेंट को खोलें (`PW_OrderCreated` या उत्पाद आईडी ले जाने वाला कस्टम इवेंट), और पुष्टि करें कि हाल के हिट दिखाई देते हैं। [इवेंट सांख्यिकी](/hi/product/audience-data-and-segmentation/events/) देखें।

<Aside type="note">
एक खाली प्रोडक्ट्स ब्लॉक का मतलब या तो "इवेंट्स कभी नहीं आए" या "अभी तक पर्याप्त इतिहास जमा नहीं हुआ है" हो सकता है (ऊपर नोट देखें)। इवेंट सांख्यिकी दूसरे कारण का पीछा करने से पहले पहले कारण को खारिज कर देती है।
</Aside>

## ब्लॉक को अपने ईमेल में जोड़ें

अपने [ईमेल सामग्री](/hi/product/content/email-content/drag-and-drop-email-editor/create-email-content-with-drag-and-drop-editor/) में एक [प्रोडक्ट्स](/hi/product/content/email-content/drag-and-drop-email-editor/blocks/#products) ब्लॉक जोड़ें, **स्रोत** को **अनुशंसाएँ** पर सेट करें, और एक **रणनीति** चुनें। सेटिंग्स पैनल में हर फ़ील्ड के लिए [अनुशंसित उत्पाद प्राप्त करें](/hi/product/content/email-content/drag-and-drop-email-editor/blocks/#get-recommended-products) देखें। भेजने से पहले कैनवास वास्तविक उत्पादों से भर जाता है, यह जांचने के लिए **पूर्वावलोकन ताज़ा करें** पर क्लिक करें।