ارسال اعلان شخصیسازی شده
تعریف اعلان شخصیسازی شده
در این نوع اعلان با استفاده از برچسبهایی(tag) که به کاربران خود اختصاص دادهاید، میتوانید اعلان با عنوان(title) و متن(content) شخصیسازی شده متناسب با هر کاربر ارسال کنید.
برای دریافت اطلاعات بیشتر از نحوه برچسبگذاری (tag) کاربران میتوانید به بخش برچسبگذاری در مستندات کتابخانه پوشه مراجعه کنید.
نکته مهم
این نوع اعلان هماکنون فقط در پلتفرم
Android
قابل استفاده میباشد.
احتیاط
این نوع اعلان فقط زمانی ارسال میشود که
اعلان فیلتردار
باشد.
(اعلان فیلتردار به اعلانی گفته میشود که حداقل یکی از کلید های
filters
, max_recipient
, uniqe:True
را دارا باشد.)
کلیدهای ارسال شخصیسازی شده
برای ارسال اعلان شخصیسازی شده کافیست در عنوان(title) و متن اعلان(content) از ساختار زیر پیروی کنید:
{{ tag_key | default_value }}
به عنوان نمونه:
"data": {
"title": "عزیز {{ name | کاربر }} سلام",
"content": "درصد تخفیف تعلق گرفت {{ discount | 10 }} ،به شما همراه گرامی"
}
در هنگام ارسال اعلان به هر مخاطبین ساختار استفاده شده به ازای هر مخاطب به صورت زیر جایگذاری میشود:
- در صورتی که مخاطب برچسب تعیین شده (tag_key) را داشته باشد، مقدار این برچسب جایگزین ساختار تعیین شده خواهد شد.
"data": {
"title": "سلام محمد عزیز",
"content": "به شما همراه گرامی، ۱۰۰ درصد تخفیف تعلق گرفت"
}
- در صورتی که مخاطب برچسب تعیین شده (tag_key) را نداشته باشد، مقدار پیش فرض تعیین شده (default value) جایگزین ساختار تعیین شده خواهد شد.
"data": {
"title": "سلام کاربر عزیز",
"content": "به شما همراه گرامی، ۱۰ درصد تخفیف تعلق گرفت"
}
نکته
مقدار
default_value
در ساختار اعلان شخصیسازی شده میتوانید
بیش از یک کلمه
باشد.
تغییر جهت متن
توجه داشته باشید استفاده از کاراکترهای انگلیسی در متون فارسی باعث تغییر جهت متن (direction) میشود.
توصیه ما به شما این است که ابتدا عنوان و متن فارسی خود را نوشته و سپس ساختارهای مورد نظر رو در جای مناسب جایگزین کنید.
به عنوان نمونه:
{
"title":"سلام محمد خوبی؟"
}
با جایگزین کردن ساختار شخصیسازی به جای محمد متن حاصل بدین صورت خواهد شد:
{
"title":"سلام {{ کاربر | name }} خوبی؟"
}
نمونه کد ارسال اعلان شخصیسازی شده
در نمونه کد های زیر حداقل کد مورد نیاز برای ارسال یک اعلان شخصیسازی شده در زبان های مختلف با عنوان و متن نمایش داده شده است. برای مشاهده تمامی کلید های قابل استفاده به بخش تمامی کلید های اعلان مراجعه کنید.
- CURL
- NODE.JS
- PYTHON
- PHP
- GO
- در این نمونه کد از cURL استفاده شده است که میتوانیدتوسط
sudo apt install curl
آن را نصب کنید.
curl -X POST https://api.pushe.co/v2/messaging/notifications/ \
-H 'authorization: Token YOUR_TOKEN' \
-H 'content-type: application/json' \
-d '{
"app_ids": "YOUR_APP_ID",
"filters": {
"device_id": ["device_id_1"]
},
"data":{
"title": "سلام {{ name | کاربر }} عزیز",
"content":"به شما {{ discount | 10}} درصد تخفیف تعلق گرفت."
},
}'
- برای اجرای این کد باید ابتدا پکیج axios را نصب کنید
npm install axios
const axios = require('axios');
const YOUR_TOKEN = 'put your token here ...';
const YOUR_APP_ID = 'put your app id here ...';
const url = `https://api.pushe.co/v2/messaging/notifications/`;
const options = {
headers: {
'Authorization': `Token ${YOUR_TOKEN}`,
'Content-Type': 'application/json'
}
};
const data = {
app_ids: YOUR_APP_ID,
data:{
title: 'سلام {{ name | کاربر }} عزیز',
content:'به شما {{ discount | 10}} درصد تخفیف تعلق گرفت.'
},
filters: {
device_id: [
'device_id_1'
]
}
};
axios.post(url, data, options)
.then(resp => console.log(resp))
.catch(err => console.error(err));
- برای اجرا نیاز به پایتون ورژن ۳.۶ و به بالا میباشد
- برای اجرای این کد باید ابتدا پکیج requests را نصب کنید.
pip install requests
import requests
import json
YOUR_TOKEN = 'put your token here ...'
YOUR_APP_ID = 'put your app id here ...'
url = f'https://api.pushe.co/v2/messaging/notifications/'
headers = {
'Authorization': f'Token {YOUR_TOKEN}',
'Content-Type': 'application/json'
}
payload = json.dumps({
'app_ids': YOUR_APP_ID,
'data': {
'title': 'سلام {{ name | کاربر }} عزیز',
'content': 'به شما {{ discount | 10}} درصد تخفیف تعلق گرفت.'
},
'filters': {
'device_id': [
'device_id_1'
]
}
})
r = requests.post(url, data=payload, headers=headers)
print(r.status_code)
$YOUR_TOKEN = 'put your token here ...';
$YOUR_APP_ID = 'put your app id here ...';
$ch = curl_init('https://api.pushe.co/v2/messaging/notifications/');
curl_setopt_array($ch, array(
CURLOPT_POST => 1,
CURLOPT_TIMEOUT => 30,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json",
"Authorization: Token " . $YOUR_TOKEN,
),
));
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(array(
'app_ids' => $YOUR_APP_ID,
'data' => array(
'title': 'سلام {{ name | کاربر }} عزیز',
'content':'به شما {{ discount | 10}} درصد تخفیف تعلق گرفت. '
),
'filters' => array(
'device_id' => array(
'device_id_1'
)
)
)));
$result = curl_exec($ch);
curl_close($ch);
echo $result;
package main
import (
"fmt"
"bytes"
"io/ioutil"
"encoding/json"
"net/http"
)
const YOUR_TOKEN = "put your token here ..."
const YOUR_APP_ID = "put your app id here ..."
func main() {
url := "https://api.pushe.co/v2/messaging/notifications/"
payload := map[string]interface{}{
"app_ids" : YOUR_APP_ID,
"data": map[string]string{
"title": "سلام {{ name | کاربر }} عزیز",
"content":"به شما {{ discount | 10}} درصد تخفیف تعلق گرفت. "
},
"filters": map[string][]string{
"device_id": []string{
"device_id_1"
}
}
}
jsonValue, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonValue))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Token " + YOUR_TOKEN)
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("response Status:", resp.Status)
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println("response Body:", string(body))
}