WhatsApp मार्केटिंग टेम्पलेट
मार्केटिंग टेम्प्लेट प्रचार सामग्री भेजता है, जैसे कोई ऑफ़र, प्रोडक्ट घोषणा, या कूपन। भेजने से पहले स्वीकृत सामग्री, प्राप्तकर्ता की अनुमति, और जवाबों तथा ऑप्ट-आउट को संभालने का एक स्पष्ट तरीका तैयार रखें।
भेजने से पहले
Bird के प्रबंधित कैटलॉग में कोई मार्केटिंग टेम्पलेट नहीं है, इसलिए मार्केटिंग भेजने के लिए हमेशा आपके वर्कस्पेस द्वारा बनाया गया टेम्पलेट उपयोग होता है, आपके अपने WhatsApp Business Account पर:
- एक WhatsApp Business Account और अपना एक नंबर कनेक्ट करें। देखें फ़ोन नंबर सेटअप।
- कैटेगरी marketing के साथ एक टेम्पलेट बनाएँ और रिव्यू के लिए सबमिट करें। क्या स्वीकार होता है, इसके लिए देखें टेम्पलेट गाइडलाइंस।
- टेम्पलेट वाले WhatsApp Business Account के ही नंबर से भेजें। मार्केटिंग भेजने पर from अनिवार्य है, और किसी दूसरे अकाउंट का सेंडर कोई भी चार्ज लगने से पहले 422 E15023 WhatsAppSenderWABAMismatch के साथ अस्वीकार कर दिया जाता है।
मार्केटिंग टेम्पलेट भेजना
POST /v1/whatsapp/messages जिसमें from सेट हो और एक template ऑब्जेक्ट हो जो आपके अपने slug को नाम दे:
const msg = await bird.whatsapp.send({
to: "+16505551234",
from: "+13125550101",
template: {
slug: "summer_sale",
language: "en",
components: [
{
type: "header",
parameters: [{ type: "image", url: "https://cdn.example.com/banners/summer.png" }],
},
{ type: "body", parameters: [{ type: "text", name: "first_name", text: "Pablo" }] },
{ type: "button", parameters: [{ type: "text", text: "SUMMER25" }] },
],
},
});
console.log(msg.id, msg.status);msg = client.whatsapp.send(
to="+16505551234",
from_="+13125550101",
template="summer_sale",
language="en",
components=[
{
"type": "header",
"parameters": [{"type": "image", "url": "https://cdn.example.com/banners/summer.png"}],
},
{"type": "body", "parameters": [{"type": "text", "name": "first_name", "text": "Pablo"}]},
{"type": "button", "parameters": [{"type": "text", "text": "SUMMER25"}]},
],
)
print(msg.id, msg.status)package main
import (
"context"
"fmt"
"log"
"os"
bird "github.com/messagebird/bird-sdk-go"
"github.com/messagebird/bird-sdk-go/option"
)
func main() {
client, err := bird.NewClient(option.WithAPIKey(os.Getenv("BIRD_API_KEY")))
if err != nil {
log.Fatal(err)
}
name := "Pablo"
nameKey := "first_name"
banner := "https://cdn.example.com/banners/summer.png"
coupon := "SUMMER25"
components := []bird.WhatsAppMessageTemplateComponent{
{Type: "header", Parameters: &[]bird.WhatsAppMessageTemplateComponentParameter{{Type: "image", Url: &banner}}},
{Type: "body", Parameters: &[]bird.WhatsAppMessageTemplateComponentParameter{{Type: "text", Name: &nameKey, Text: &name}}},
{Type: "button", Parameters: &[]bird.WhatsAppMessageTemplateComponentParameter{{Type: "text", Text: &coupon}}},
}
msg, err := client.Whatsapp.Send(context.Background(), bird.WhatsappSendParams{
To: "+16505551234",
From: "+13125550101",
Template: "summer_sale",
Language: "en",
Components: components,
})
if err != nil {
log.Fatal(err)
}
fmt.Println(msg.Id, *msg.Status)
}$components = [
(new WhatsAppMessageTemplateComponent())
->setType('header')
->setParameters([
(new WhatsAppMessageTemplateComponentParameter())->setType('image')->setUrl('https://cdn.example.com/banners/summer.png'),
]),
(new WhatsAppMessageTemplateComponent())
->setType('body')
->setParameters([
(new WhatsAppMessageTemplateComponentParameter())->setType('text')->setName('first_name')->setText('Pablo'),
]),
(new WhatsAppMessageTemplateComponent())
->setType('button')
->setParameters([
(new WhatsAppMessageTemplateComponentParameter())->setType('text')->setText('SUMMER25'),
]),
];
$message = $bird->whatsapp->send(
to: '+16505551234',
from: '+13125550101',
template: 'summer_sale',
language: 'en',
components: $components,
);
echo $message->getId(), ' ', $message->getStatus();bird whatsapp send \
--from +13125550101 \
--components '[{"parameters":[{"type":"image","url":"https://cdn.example.com/banners/summer.png"}],"type":"header"},{"parameters":[{"name":"first_name","text":"Pablo","type":"text"}],"type":"body"},{"parameters":[{"text":"SUMMER25","type":"text"}],"type":"button"}]' \
--language en \
--template summer_sale \
--to +16505551234{
"name": "whatsapp_send",
"arguments": {
"from": "+13125550101",
"template": {
"components": [
{
"parameters": [
{
"type": "image",
"url": "https://cdn.example.com/banners/summer.png"
}
],
"type": "header"
},
{
"parameters": [
{
"name": "first_name",
"text": "Pablo",
"type": "text"
}
],
"type": "body"
},
{
"parameters": [
{
"text": "SUMMER25",
"type": "text"
}
],
"type": "button"
}
],
"language": "en",
"slug": "summer_sale"
},
"to": "+16505551234"
}
}curl -X POST "https://us1.platform.bird.com/v1/whatsapp/messages" \
-H "Authorization: Bearer $BIRD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "+16505551234",
"from": "+13125550101",
"template": {
"slug": "summer_sale",
"language": "en",
"components": [
{
"type": "header",
"parameters": [
{
"type": "image",
"url": "https://cdn.example.com/banners/summer.png"
}
]
},
{
"type": "body",
"parameters": [
{
"type": "text",
"name": "first_name",
"text": "Pablo"
}
]
},
{
"type": "button",
"parameters": [
{
"type": "text",
"text": "SUMMER25"
}
]
}
]
}
}'- बॉडी पैरामीटर नामित होते हैं, यूटिलिटी की तरह। हर पैरामीटर एक name रखता है, और ऐरे में क्रम का कोई अर्थ नहीं है।
- कूपन बटन का कोड एक सामान्य text पैरामीटर है, ऊपर वाले बटन पर दिए गए पैरामीटर की तरह। कोई अलग कूपन-कोड पैरामीटर टाइप नहीं है।
- एक gif हेडर gif पैरामीटर लेता है, video या image नहीं। मार्केटिंग एकमात्र कैटेगरी है जो एनिमेटेड-GIF हेडर स्वीकार करती है।
- कैरोसेल के मान cards पर जाते हैं, parameters पर नहीं, और भेजते समय ठीक उतने ही कार्ड देने होते हैं जितने के साथ टेम्पलेट स्वीकृत हुआ था।
Bird हर मार्केटिंग संदेश को स्वचालित रूप से Meta के Marketing Messages API पर रूट करता है; आपको ऑप्ट इन नहीं करना होता और हर संदेश के लिए अलग स्विच नहीं है। बिज़नेस अकाउंट की उस API के साथ ऑनबोर्डिंग स्थिति डिलीवरी की बजाय Meta के ऑप्टिमाइज़ेशन को नियंत्रित करती है, एक अपवाद के साथ: gif हेडर के लिए ऑनबोर्डेड अकाउंट ज़रूरी है, वरना भेजना WhatsApp पर विफल होता है। अकाउंट की स्थिति, ऑनबोर्डिंग क्या अनलॉक करता है, और देश के अनुसार मार्केटिंग कहाँ सीमित है, इसके लिए देखें Marketing templates।
ऑप्ट-आउट
जब Bird को Meta से कोई वैध marketing-stop इवेंट मिलता है, तो वह उस बिज़नेस अकाउंट के लिए प्राप्तकर्ता की प्राथमिकता रिकॉर्ड करता है। यह प्राथमिकता सभी-संदेश दमन (suppression) से अलग होती है। भेजने से पहले दोनों रिकॉर्ड जाँचें। डिलीवरी विफलता संबंधित प्राथमिकता इवेंट से पहले आ सकती है; फिर से प्रयास करने के बजाय प्राप्तकर्ता की पसंद को सुरक्षित रखें और उस इतिहास की जाँच करें। इन रिकॉर्ड्स को दर्ज करने और पढ़ने के लिए ऑप्ट-आउट देखें।
लागत
गंतव्य और मुद्रा के लिए प्रकाशित मार्केटिंग दर का उपयोग करें। Bird सबमिशन से पहले अपना आउटबाउंड शुल्क लेता है; बिल-योग्य डिलीवरी या रीड परिणाम पर Meta का शुल्क जुड़ सकता है। लागत और बिलिंग और WhatsApp मूल्य निर्धारण देखें।
ध्यान देने योग्य बातें
- Meta मार्केटिंग में पुनर्वर्गीकृत करता है, कभी बाहर नहीं, और यह एक मूल्य परिवर्तन है। जिस टेम्पलेट को Meta सारतः प्रचारात्मक पाता है वह marketing बन जाता है, चाहे आपने कोई भी कैटेगरी सबमिट की हो, और भेजना नई, ऊँची कीमत पर जारी रहता है। इससे ऑप्ट-आउट नहीं है और कैटेगरी वापस एडिट करने का कोई तरीका नहीं; उपाय एक नया टेम्पलेट है।
- 131049 डिलीवरी पॉज़ है, आपकी कॉन्फ़िगर की गई दर सीमा नहीं, और फिर से प्रयास करना इसे बदतर बनाता है। Meta 131049 अपने व्यापक US पॉज़ और प्रति-उपयोगकर्ता मार्केटिंग कैप दोनों के लिए रिपोर्ट करता है, और इसका अपना मार्गदर्शन है कि दोबारा भेजने से पहले लगभग एक दिन प्रतीक्षा करें। जल्दी दोबारा भेजने से उस प्राप्तकर्ता के लिए अकाउंट लंबे समय तक अनुपलब्ध हो सकता है और आपकी अपनी डिलीवरी दर प्रभावित होती है। Bird विफलता को rate_limited के रूप में रिपोर्ट करता है।
- 131050 का मतलब है कि प्राप्तकर्ता ने "Offers and announcements" बंद कर दिया है, और इसे कभी फिर से प्रयास नहीं करना चाहिए। Meta भेजने को स्वीकार करता है और फिर डिलीवर करने से मना कर देता है। सही प्रतिक्रिया मैसेजिंग-प्रेफ़रेंस पथ है, दोबारा भेजना नहीं: प्राप्तकर्ता को स्वयं सप्रेस करें, या उनके डिलीवरी फिर से सक्षम करने तक प्रतीक्षा करें, जिसकी जानकारी Bird उसी प्रेफ़रेंस तंत्र के माध्यम से प्राप्त करता है जिसने स्टॉप रिपोर्ट किया था। देखें ऑप्ट-आउट।
- 132015 और 132016 टेम्पलेट पॉज़िंग हैं, प्राप्तकर्ता की समस्या नहीं। 132015 निम्न गुणवत्ता के लिए पॉज़ है; 132016 बार-बार पॉज़ के बाद टेम्पलेट का स्थायी रूप से बंद होना है, और इसका एकमात्र उपाय अलग कंटेंट वाला एक नया टेम्पलेट है। टेम्पलेट की बजाय भाषा की अपनी स्थिति जाँचें, क्योंकि पॉज़ की गई भाषा तुरंत भेजना बंद कर देती है।
- गलत WhatsApp Business Account पर सेंडर कोई चार्ज लगने से पहले अस्वीकार कर दिया जाता है। from को टेम्पलेट वाले ही अकाउंट पर होना चाहिए, अन्यथा भेजना 422 E15023 WhatsAppSenderWABAMismatch के साथ विफल होता है।
अगले कदम
- WhatsApp templates: कैटलॉग ब्राउज़ करना और साझा send-by-template अनुबंध
- Marketing templates: Marketing Messages API, ऑनबोर्डिंग स्थिति, और मार्केटिंग कहाँ सीमित है
- ऑप्ट-आउट: सप्रेशन और प्रेफ़रेंस रिकॉर्ड करना और पढ़ना
- Utility templates: ऑर्डर अपडेट, अपॉइंटमेंट रिमाइंडर, और अकाउंट नोटिस
संबंधित संसाधन
इस विषय के लिए डॉक्यूमेंटेशन, गाइड और उदाहरणों के साथ आगे बढ़ें। संसाधन अंग्रेज़ी में हैं।
गाइड देखेंConnecting WhatsApp to Bird: from buying a number to a live channelकॉन्सेप्ट समझेंWhat is the 24-hour customer service window on WhatsApp?टूल का उपयोग करेंWhatsApp message builderक्षमता जानेंWhatsApp
अभ्यास करें और इम्प्लीमेंटेशन ब्रीफ़ पाएँ