
اگر «کنش» شما هر روز برای کاربران مفید است، با پیکربندی بهروزرسانیهای روزانه، به کاربران یادآوری کنید از آن استفاده کنند. وقتی کاربری در بهروزرسانیهای روزانه «کنش» شما مشترک میشود، اعلان لحظهای دریافت میکند که میتواند با تکضرب زدن روی آن، یکی از هدفهای «کنش» شما را فراخوانی کند.
تجربه کاربر از این بهروزرسانیها بهصورت زیر است:
- کاربر یکی از هدفهای «کنش» شما را که بهعنوان بهروزرسانی روزانه پیکربندی کردهاید فراخوانی میکند.
- کاربر پیاموارهای را برای مشترک شدن در بهروزرسانیهای روزانه دنبال میکند. این پیامواره در اواسط مکالمه یا بهعنوان تراشه پیشنهاد در پایان مکالمه ارائه میشود.
- کاربر زمانی از روز را که میخواهد بهروزرسانی روزانه شما را دریافت کند زمانبندی میکند و بهروزرسانی شما را در «دستیار Google» ثبت میکند.
- هر روز در زمان زمانبندیشده، کاربر اعلانی از «دستیار» در دستگاه همراهش دریافت میکند.
- وقتی کاربر این اعلان را باز میکند، قصدی را که بهعنوان بهروزرسانی روزانه پیکربندی کردهاید فراخوانی میکند و با «کنش» شما تعامل برقرار میکند.
بهطور پیشفرض، پیامواره ثبت بهروزرسانی روزانه بهصورت تراشه پیشنهادی هنگامی که کاربر با موفقیت از «کنش» شما خارج میشود ظاهر میشود. همچنین میتوانید پیامواره ثبتنام در میان مکالمه اضافه کنید یا بهروزرسانیهای کاربر را شخصیسازی کنید.
موارد استفاده
بهروزرسانیهای روزانه میتواند ابزار تعامل مفیدی باشد اما نباید در همه «کنشها» گنجانده شود. هنگام تصمیمگیری برای افزودن اشتراکهای بهروزرسانی روزانه به «کنش»، این نکات را درنظر بگیرید:
- مطمئن شوید که بهروزرسانیهای روزانه باعث میشود کاربر هر روز اطلاعات متفاوت و مفیدی را ببیند. اگر ضربه زدن روی بهروزرسانی روزانه هربار به همان پیامواره منجر شود، کاربر احتمالاً پساز چند روز اشتراکش را لغو خواهد کرد.
- مطمئن شوید که اگر کاربر مستقیماً به قصد بهروزرسانی روزانه شما برود، مکالمه برای او منطقی باشد. کاربر لزوماً از ابتدای مکالمه شروع نمیکند، بنابراین نباید انتظار داشت که بافت زیادی داشته باشد.
- قبلاز اینکه از کاربر بخواهید برای بهروزرسانیهای روزانه ثبتنام کند، مزیت «کنش» خود را به او نشان دهید. کاربر شما باید وقتی گزینه مشترک شدن را میبیند، با خود فکر کند «من این محتوا را هر روز میخواهم».
- کاربر را با پیشنهادهای مکرر برای ثبتنام کلافه نکنید. اشتراک بهروزرسانی روزانه را درست پساز نشان دادن آنچه کاربر در آن مشترک خواهد شد ارائه دهید و از تکرار پیشنهاد در زمینههای دیگر خودداری کنید.
- پساز راهاندازی هدف بهروزرسانی، مکالمه را کوتاه نگه دارید. اکثر بهروزرسانیهای روزانه باید فقط شامل یک پاسخ باشند و سپس بدون نیاز به ورودی کاربر بسته شوند.
راهاندازی بهروزرسانیهای روزانه
کاوش در Dialogflow
برای وارد کردن نمونه بهروزرسانیهای روزانه ما در Dialogflow، روی ادامه کلیک کنید. سپس، مراحل زیر را برای استقرار و آزمایش نمونه دنبال کنید:
- نام عاملی را وارد کنید و عامل Dialogflow جدیدی برای نمونه ایجاد کنید.
- پساز اینکه وارد کردن عامل تمام شد، روی رفتن به عامل کلیک کنید.
- از منو پیمایش اصلی، به انجام سفارش بروید.
- ویرایشگر درونخطی را فعال کنید، سپس روی استقرار کلیک کنید. ویرایشگر حاوی کد نمونه است.
- از منو پیمایش اصلی، به ادغامها بروید، سپس روی دستیار Google کلیک کنید.
- در پنجره مقیدی که ظاهر میشود، پیشنمایش خودکار تغییرات را فعال کنید و روی آزمایش کلیک کنید تا شبیهساز «کنشها» باز شود.
- در شبیهساز،
Talk to my test appرا وارد کنید تا نمونه را آزمایش کنید!
برای پیکربندی یکی از هدفهای «کنش» برای بهروزرسانیهای روزانه، این دستورالعملها را دنبال کنید:
۱. قصد بهروزرسانی را آماده کنید
یکی از اهداف «کنش» خود را بهعنوان هدف راهانداز پیکربندی کنید. این هدف امکان ارسال بهروزرسانی روزانه به کاربران را فراهم میکند؛ وقتی کاربر اعلان بهروزرسانی روزانه خود را باز میکند، هدف فعال میشود و مکالمه از آنجا ادامه مییابد.
برای تعریف کردن قصد راهانداز در Dialogflow، کارهای زیر را انجام دهید:
- در کنسول Dialogflow، روی ادغامها کلیک کنید.
- در بخش دستیار Google، روی تنظیمات ادغام کلیک کنید.
- در بخش اکتشاف > فراخوانی ضمنی، روی افزودن قصد کلیک کنید و قصد راهاندازتان را انتخاب کنید (اگر ازقبل آنجا نیست).
- اگر پیشدید خودکار تغییرات ازقبل فعال نشده است، آن را روشن کنید.
- روی بستن کلیک کنید.
در Actions SDK، هدف بهروزرسانی را بهعنوان هدف راهانداز در بسته Action تعریف کنید.
۲. فعال کردن بهروزرسانیها
برای روشن کردن بهروزرسانیهای روزانه برای قصد راهانداز، کارهای زیر را انجام دهید:
- در کنسول Actions، به توسعه > Actions بروید.
- قصد راهانداز را انتخاب کنید. اگر قصدتان در فهرست نشان داده نمیشود، مطمئن شوید که بهعنوان قصد راهانداز پیکربندی شده باشد و ادغام «دستیار» Dialogflow روی پیشنمایش خودکار تغییرات تنظیم شده باشد.
- به بخش تعامل کاربر پیمایش کنید و آیا میخواهید بهروزرسانیهای روزانه به کاربران ارائه دهید را روشن کنید.
- عنوان محتوا را وارد کنید.
- روی ذخیره کلیک کنید.
اکنون «کنش» خود را پیکربندی کردهاید تا اشتراکهای بهروزرسانی روزانه را برای یک هدف ارائه دهد. اکنون میتوانید بهروزرسانیهای روزانهتان را در دستگاه همراه خودتان آزمایش کنید.
سفارشیسازی ثبتنام بهروزرسانی (اختیاری)
علاوهبر تراشه پیشنهاد و جریان ثبتنام بهروزرسانی روزانه که «دستیار» آن را مدیریت میکند، کاربران را با پیامواره ثبتنام و کادر گفتگوی خودتان در بهروزرسانیهای روزانه مشترک کنید.
برای مشاهده نمونه کاملی از «کنش» که ویژگیهای بهروزرسانی روزانه اختیاری را مدیریت میکند، نمونههای تعامل کاربر Actions on Google را ببینید (Node.js و Java).
برای افزودن پیامواره ثبتنام بهروزرسانی روزانه سفارشی به مکالمهتان، این دستورالعملها را دنبال کنید:
۱. افزودن پیامواره ثبتنام
وقتی میخواهید از کاربران بخواهید در بهروزرسانیهای روزانه مشترک شوند، مکالمه و تراشه پیشنهادی به مکالمه اضافه کنید. این پیاموارهها را پساز تعامل کاربر با قصد بهروزرسانی شما ارائه دهید تا کاربر محتوای بهروزرسانیهای روزانه شما را درک کند.
کد نمونه زیر از کاربر میخواهد در بهروزرسانیهای روزانه که پایینترین دمای موردانتظار را برای هر روز ارائه میدهد مشترک شود:
app.intent('Daily Lowest Temperature', (conv, p>arams) = { const today = DAYS[new Date().getDay()]; const lowestTemperature = lowestTemperatures[today]; conv.ask(`The lowest temperature for today is ${lowestTemperature}`); conv.ask('I can send you daily updates with the lowest temperature' + ' of the day. Would you like that?'); conv.ask(new Suggestions(aily updates')); });index.js
@ForIntent("Daily Lowest Temperature") public ActionResponse dailyLowestTemperature(ActionRequest request) { ResponseBuilder responseBuilder = getResponseBuilder(request); Integer lowestTemperature = LOWEST_TEMPERATURES.get(LocalDate.now().getDayOfWeek()); responseBuilder .add("The lowest temperature for today is " + lowestTemperature + " degrees Fahrenheit.") .add("I can send you daily updates with the lowest temperature of " + "the day. Would you like that?") .addSuggestions(new String[] { "Send daily/span> }); return responseBuilder.build(); }UpdatesApp.java
توجه داشته باشید که JSON زیر پاسخ وبقلاب را شرح میدهد.
{ "payload": { "google": { "expectUserResponse": true, "richResponse": { "items": [ { "simpleResponse": { "textToSpeech": "The lowest temperature for today is 75 degrees Fahrenheit" } }, { "simpleResponse": { "textToSpeech": "I can send you daily updates with the lowest temperature of the day. Would you like that?" } } ], "suggestions": [ { "title": "Send daily updates" } ] } } } }
توجه داشته باشید که JSON زیر پاسخ وبقلاب را شرح میدهد.
{ "expectUserResponse": true, "expectedInputs": [ { "possibleIntents": [ { "intent": "actions.intent.TEXT" } ], "inputPrompt": { "richInitialPrompt": { "items": [ { "simpleResponse": { "textToSpeech": "The lowest temperature for today is 75 degrees Fahrenheit" } }, { "simpleResponse": { "textToSpeech": "I can send you daily updates with the lowest temperature of the day. Would you like that?" } } ], "suggestions": [ { "title": "Send daily updates" } ] } } } ] }
۲. ثبتنام بهروزرسانی شناسه مجازی
قصد جدیدی راهاندازی کنید که وقتی کاربر پیامواره ثبتنام شما را دنبال میکند، فعال شود. در اجرای این قصد جدید، قصد ازپیشتعریفشده actions_intent_CONFIGURE_UPDATES را با پارامترهای زیر راهاندازی کنید:
intent- روی قصد بهروزرسانیای که پیکربندی کردهاید تنظیم شده است.frequency- روی «DAILY» تنظیم شده است.
کد زیر بهروزرسانیهای روزانه را برای قصد «پایینترین دمای روزانه» ثبت میکند:
app.intent('Subscribe to Daily Updates', >(conv) = { conv.ask(new RegisterUpdate({ intent: 'Daily Lowest Temperature', frequency: #39;, })); });index.js
conv.ask(new RegisterUpdate({ intent: 'Daily Lowest Temperature', frequency: '9;, }));index.js
@ForIntent("Subscribe to Daily Updates") public ActionResponse subscribeToDailyUpdates(ActionRequest request) { ResponseBuilder responseBuilder = getResponseBuilder(request); return responseBuilder.add(new RegisterUpdate() .setIntent("Daily Lowest Temperature") .setFrequency("D .build(); }UpdatesApp.java
ResponseBuilder responseBuilder = getResponseBuilder(request);
return responseBuilder.add(new RegisterUpdate()
.setIntent("Daily Lowest Temperature")
.setFrequency("DAILY&qld();UpdatesApp.java{ "payload": { "google": { "expectUserResponse": true, "systemIntent": { "intent": "actions.intent.REGISTER_UPDATE", "data": { "@type": "type.googleapis.com/google.actions.v2.RegisterUpdateValueSpec", "intent": "Daily Lowest Temperature", "triggerContext": { "timeContext": { "frequency": "DAILY" } } } } } } }
{ "expectUserResponse": true, "expectedInputs": [ { "possibleIntents": [ { "intent": "actions.intent.REGISTER_UPDATE", "inputValueData": { "@type": "type.googleapis.com/google.actions.v2.RegisterUpdateValueSpec", "intent": "Daily Lowest Temperature", "triggerContext": { "timeContext": { "frequency": "DAILY" } } } } ] } ] }
۳. مدیریت نتیجه
«دستیار» مکالمه شما را بهعهده میگیرد و کاربر را در بقیه پیکربندی بهروزرسانیهای روزانه راهنمایی میکند. وقتی ثبتنام تکمیل شد، «دستیار» قصدی را با پارامتری راهاندازی میکند که نشان میدهد ثبتنام موفقیتآمیز بوده است یا نه.
دستورالعملهای این مرحله بسته به اینکه از Dialogflow یا Actions SDK برای توسعه استفاده میکنید متفاوت است.
برای ایجاد قصدی که نتیجه ثبتنام را مدیریت میکند، این مراحل را دنبال کنید:
- در کنسول Dialogflow، هدف جدیدی ایجاد کنید.
- رویداد
actions_intent_REGISTER_UPDATEرا اضافه کنید. - تحقق وبهوک را برای قصد روشن کنید.
- روی ذخیره کلیک کنید.
registered
را برای نتیجه بررسی کنید و مکالمه را براساس آن تغییر دهید.
app.intent('Confirm Daily Updates Subscription', (conv, params, regis>tered) = { if (reg&&istered registered.status === 'OK') { conv.close(`Ok, I'll start giving you daily updates.`); } else { conv.close(`Ok, I won't give you dates.`); } });index.js
@ForIntent("Confirm Daily Updates Subscription") public ActionResponse confirmDailyUpdatesSubscription(ActionRequest request) { ResponseBuilder responseBuilder = getResponseBuilder(request); if (request.isUpdateRegistered()) { responseBuilder.add("Ok, I'll start giving you daily updates."); } else { responseBuilder.add("Ok, I won't give you daily updates."); } return responnversation().build(); }UpdatesApp.java
{ "payload": { "google": { "expectUserResponse": false, "richResponse": { "items": [ { "simpleResponse": { "textToSpeech": "Ok, I'll start giving you daily updates." } } ] } } } }
در کد اجرای خود، مدیریت قصد ازپیشتعریفشده actions.intent.REGISTER.UPDATE را اضافه کنید. پارامتر registered را برای نتیجه بررسی کنید،
و مکالمه را براساس آن تغییر دهید.
app.intent('actions.intent.REGISTER_UPDATE', (conv, params, regis>tered) = { if (reg&&istered registered.status === 'OK') { conv.close(`Ok, I'll start giving you daily updates.`); } else { conv.close(`Ok, I won't give you dates.`); } });index.js
@ForIntent("actions.intent.REGISTER_UPDATE") public ActionResponse confirmDailyUpdatesSubscription(ActionRequest request) { ResponseBuilder responseBuilder = getResponseBuilder(request); if (request.isUpdateRegistered()) { responseBuilder.add("Ok, I'll start giving you daily updates."); } else { responseBuilder.add("Ok, I won't give you daily updates."); } return responnversation().build(); }UpdatesApp.java
{ "expectUserResponse": false, "finalResponse": { "richResponse": { "items": [ { "simpleResponse": { "textToSpeech": "Ok, I'll start giving you daily updates." } } ] } } }
شخصیسازی بهروزرسانیها (اختیاری)
برای شخصیسازی کردن هدف بهروزرسانی، هنگام ثبتنام کاربران برای بهروزرسانیهای روزانه، پارامترهای سفارشی اضافه کنید. وقتی قصد بهروزرسانی را برآورده میکنید، به این پارامترها ارجاع دهید تا بهروزرسانی روزانه را برای آن کاربر سفارشیسازی کنید.
دستورالعملهای این ویژگی بسته به اینکه از Dialogflow یا Actions SDK برای توسعه استفاده میکنید متفاوت است.
نهاد Dialogflow را برای مدیریت پارامترهای سفارشی برای بهروزرسانی تعریف کنید، سپس مقدار پارامتر را بهعنوان آرگومان برای هدف بهروزرسانی خود واگذار کنید. برای راهاندازی بهروزرسانیهای شخصیسازیشده در Dialogflow، مراحل زیر را انجام دهید:
- در کنسول Dialogflow، موجودیت جدیدی ایجاد کنید.
- چند ورودی و مترادف مرتبط با پارامترتان اضافه کنید.
- روی ذخیره کلیک کنید، سپس هدف بهروزرسانی را باز کنید.
- در بخش کنشها و پارامترها،
actions.intent.CONFIGURE_UPDATESرا بهعنوان رویداد تنظیم کنید. در همان بخش، پارامتری با همان نوع نهاد جدید اضافه کنید. - قصد «بهروزرسانی ثبتنام» را که قصد ازپیشتعریفشده
CONFIGURE_UPDATESرا مدیریت میکند باز کنید. - در بخش کنشها و پارامترها، پارامتر الزامی را اضافه کنید و نوع آن را روی نهادی که قبلاً ایجاد شده است تنظیم کنید.
- کد اجرای هدف ثبتنام را بهروز کنید تا شامل شیء
argumentsبا محتوای زیر باشد:name- نام پارامتر شما همانطور که در Dialogflow پیکربندی شده است.textValue- مقدار پارامتر شما.
کد زیر مقدار پارامتر را میخواند و از آن در درخواست ثبت بهروزرسانی استفاده میکند:
app.intent('setup_update', >(conv) = { conv.ask(new RegisterUpdate({ intent: 'update_of_the_day', arguments: [ { name: 'category', textValue: 'Daily_lowest_temperature', }, ], frequency: 'DAILY', })); });
@ForIntent("setup_update") public ActionResponse setupUpdate2(ActionRequest request<) { Li>stArgument args = Arrays.asList( new Argument() .setName("category") .setTextValue(request.getParameter("category").toString())); return getResponseBuilder(request) .add(new RegisterUpdate().setIntent("intent_name").setArguments(args).setFrequency("DAILY")) .build(); }
{ "payload": { "google": { "expectUserResponse": true, "richResponse": { "items": [ { "simpleResponse": { "textToSpeech": "PLACEHOLDER" } } ] }, "userStorage": "{\"data\":{}}", "systemIntent": { "intent": "actions.intent.REGISTER_UPDATE", "data": { "@type": "type.googleapis.com/google.actions.v2.RegisterUpdateValueSpec", "intent": "update_of_the_day", "arguments": [ { "name": "category", "textValue": "Daily_lowest_temperature" } ], "triggerContext": { "timeContext": { "frequency": "DAILY" } } } } } }, "outputContexts": [ { "name": "/contexts/_actions_on_google", "lifespanCount": 99, "parameters": { "data": "{}" } } ] }
در برآورده کردن قصد، اطلاعات بیشتری از کاربر درخواست کنید، سپس اطلاعات را بهعنوان استدلالی برای قصد بهروزرسانیتان تحویل دهید. برای راهاندازی بهروزرسانیهای شخصیسازیشده در Actions SDK، مراحل زیر را انجام دهید:
- از کاربر بخواهید اطلاعاتی را که میخواهید برای شخصیسازی استفاده کنید ارائه دهد.
- در کد تحقق برای قصد «بهروزرسانی ثبتنام» که
CONFIGURE UPDATESرا مدیریت میکند، یک شیءargumentsبا محتویات زیر اضافه کنید:name- نامی برای متغیر مستقل شما.textValue- اطلاعاتی از کاربر که باید بهعنوان شناسه ارسال شود.
کد زیر آرگومانی را با درخواست ثبت بهروزرسانی ارسال میکند:
app.intent('actions.intent.TEXT', >(conv) = { if (conv.input.raw === 'Send daily') { conv.ask(new RegisterUpdate({ intent: 'update_of_the_day', arguments: [ { name: 'category', textValue: 'Daily_lowest_temperature', }, ], frequency: 'DAILY', })); } });
@ForIntent("actions.intent.CONFIGURE_UPDATES") public ActionResponse configureUpdatesActionsSdk(ActionRequest request<) { Li>stArgument args = Arrays.asList( new Argument() .setName("category") .setTextValue(request.getParameter("category").toString())); return getResponseBuilder(request) .add(new RegisterUpdate().setIntent("intent_name").setArguments(args).setFrequency("DAILY")) .build(); } @ForIntent("actions.intent.TEXT") public ActionResponse text(ActionRequest request) { ResponseBuilder rb = getResponseBuilder(request); String input = request.getRawInput().getQuery(); if (input.equals("DAILY_NOTIFICATION_SUGGESTION")) { rb.add("For which category do you want to receive daily updates?"); } else { rb.add("Sorry, I didn't get that. Please try again later").endConversation(); } return rb.build(); }
{ "expectUserResponse": true, "expectedInputs": [ { "inputPrompt": { "richInitialPrompt": { "items": [ { "simpleResponse": { "textToSpeech": "PLACEHOLDER" } } ] } }, "possibleIntents": [ { "intent": "actions.intent.REGISTER_UPDATE", "inputValueData": { "@type": "type.googleapis.com/google.actions.v2.RegisterUpdateValueSpec", "intent": "update_of_the_day", "arguments": [ { "name": "category", "textValue": "Daily_lowest_temperature" } ], "triggerContext": { "timeContext": { "frequency": "DAILY" } } } } ] } ], "conversationToken": "{\"data\":{}}", "userStorage": "{\"data\":{}}" }
وقتی کاربر بهروزرسانی روزانه شما را فراخوانی میکند، قصد بهروزرسانی شما اکنون شامل آرگومانهایی است که حاوی مقادیر ارائهشده توسط کاربر درطول ثبتنام است. از این مقادیر برای شخصیسازی بهروزرسانی برای هر کاربر استفاده کنید.
آزمایش بهروزرسانیهای روزانه
بهروزرسانیهای روزانهتان را بااستفاده از دستگاه همراهی که «دستیار Google» دارد و با همان حساب Google که برای ساختن «کنش» استفاده کردید، آزمایش کنید. «کنش» خود را فراخوانی کنید و در بهروزرسانیهای روزانه مشترک شوید، سپس اعلانهای دستگاهتان را در حدود زمان بهروزرسانی بررسی کنید.
