1. بررسی اجمالی
Actions on Google یک پلت فرم توسعه دهنده است که به شما امکان می دهد نرم افزاری ایجاد کنید تا عملکرد Google Assistant ، دستیار شخصی مجازی Google را در بیش از 1 میلیارد دستگاه، از جمله بلندگوهای هوشمند، تلفن ها، اتومبیل ها، تلویزیون ها، هدفون ها و موارد دیگر گسترش دهید. کاربران برای انجام کارهایی مانند خرید مواد غذایی یا رزرو یک سواری، دستیار را در مکالمه قرار می دهند. (برای فهرست کاملی از آنچه ممکن است، دایرکتوری Actions را ببینید.) به عنوان یک برنامهنویس، میتوانید از Actions on Google برای ایجاد و مدیریت آسان تجربیات گفتگوی لذتبخش و مؤثر بین کاربران و سرویس شخص ثالث خود استفاده کنید.
این یک ماژول Codelab پیشرفته است که برای خوانندگانی در نظر گرفته شده است که قبلاً تجربه ساخت Actions برای Google Assistant را دارند. اگر تجربه توسعه قبلی با Actions on Google ندارید، اکیداً توصیه میکنیم که با دنبال کردن کدهای مقدماتی ما ( سطح 1 ، سطح 2 و سطح 3 ) با این پلتفرم آشنا شوید. این ماژولهای پیشرفته شما را از طریق مجموعهای از ویژگیها راهنمایی میکنند که میتوانند به شما در گسترش عملکرد Action و افزایش مخاطبانتان کمک کنند.
یکی از راههای مهم برای اندازهگیری موفقیت یک Action، تعامل کاربر یا میزان تأثیر اکشن در بازگرداندن کاربران پس از اولین تعامل آنها است. برای کمک به آسانتر شدن این کار، میتوانید چندین ویژگی را در Action خود پیادهسازی کنید که به کاربران مسیرهایی را برای بازگشت به مکالمه شما میدهد.
این آزمایشگاه کد ویژگیهای تعامل کاربر و بهترین روشها را برای Actions on Google پوشش میدهد.
چیزی که خواهی ساخت
با فعال کردن ویژگیهایی که قبلاً ساخته شده است، آن را بهبود میبخشید:
- یک بهروزرسانی روزانه برای کاربران ارسال کنید تا بتوانند روی آن ضربه بزنند تا با Action شما صحبت کنند
- اعلانهای فشاری را برای کاربران ارسال کنید که به Action شما پیوند داده میشوند
- پیوندی ایجاد کنید که کاربران را از مرورگر وب تلفن همراه به Action شما برساند
چیزی که یاد خواهید گرفت
- تعامل کاربر چیست و چرا برای موفقیت یک Action مهم است
- چگونه یک Action را برای افزایش تعامل کاربر تغییر دهیم
- از کدام ویژگی های تعامل کاربر در انواع مختلف کنش ها استفاده کنید
- نحوه استفاده از Action API برای ارسال اعلان ها از طریق Assistant
آنچه شما نیاز دارید
شما باید ابزارهای زیر را داشته باشید:
- یک ویرایشگر IDE/متن انتخابی شما، مانند WebStorm ، Atom ، یا Sublime
- ترمینالی برای اجرای دستورات پوسته با نصب Node.js، npm و git
- یک مرورگر وب، مانند گوگل کروم
- یک محیط توسعه محلی با رابط خط فرمان Firebase
- یک دستگاه تلفن همراه (اندروید یا iOS) با Assistant (شما باید با همان حساب Google که برای ساخت این پروژه استفاده میکنید به Assistant وارد شوید.)
آشنایی با جاوا اسکریپت (ES6) نیز به شدت توصیه می شود، اگرچه لازم نیست، اما برای درک کد وب هوک.
2. پروژه خود را تنظیم کنید
این بخش به شما نشان میدهد که چگونه ویژگیهای تعامل کاربر را به یک Action کامل و از قبل ساخته شده اضافه کنید.
نمونه را درک کنید
نمونه این کد لبه یک اکشن ساده برای یک باشگاه تخیلی به نام "Action Gym" است. Action اطلاعاتی در مورد سالن بدنسازی، از جمله فهرستی از کلاس هایی که هر روز چرخش می کنند، ارائه می دهد. یک اقدام آموزنده مانند این کاندیدای خوبی برای همه ویژگیهای تعامل کاربر است، زیرا فهرست کلاسهای چرخشی هر روز اطلاعات مفید متفاوتی را ارائه میدهد.
نمودار زیر جریان مکالمه نمونه Action Gym را نشان می دهد:
برای تطابق بیشتر با ویژگیهای تعاملی که اضافه میکنید، تغییرات جزئی در گفتگو ایجاد خواهید کرد. با این حال، طراحی کلی مکالمه تغییر زیادی نخواهد کرد.
فایل های پایه خود را دانلود کنید
دستور زیر را برای کلون کردن مخزن GitHub برای Codelab اجرا کنید:
git clone https://github.com/actions-on-google/user-engagement-codelab-nodejs
پروژه و عامل خود را تنظیم کنید
برای راهاندازی پروژه Actions و عامل Dialogflow، مراحل زیر را انجام دهید:
- کنسول Actions را باز کنید.
- پروژه جدید را کلیک کنید.
- نام پروژه را تایپ کنید، مانند
engagement-codelab
. - روی ایجاد پروژه کلیک کنید.
- به جای انتخاب یک دسته، به قسمت گزینه های بیشتر بروید و روی کارت مکالمه کلیک کنید.
- برای گسترش گزینهها روی Build your Action کلیک کنید و Add Action(s) را انتخاب کنید.
- روی Add Your First Action کلیک کنید.
- در گفتگوی Create Action ، Custom Intent را انتخاب کنید و سپس روی Build کلیک کنید تا کنسول Dialogflow راه اندازی شود.
- در صفحه ایجاد عامل کنسول Dialogflow، روی ایجاد کلیک کنید.
- را کلیک کنید (نماد چرخ دنده) در سمت چپ ناوبری.
- روی Export and Import و سپس Restore From Zip کلیک کنید.
- فایل
agent.zip
را از پوشه/user-engagement-codelab-nodejs/start/
قبلا دانلود کردهاید، آپلود کنید. -
RESTORE
را تایپ کنید و روی Restore کلیک کنید. - روی Done کلیک کنید.
تحقق خود را مستقر کنید
اکنون که پروژه Actions و عامل Dialogflow آماده هستند، فایل index.js
محلی خود را با استفاده از Firebase Functions CLI مستقر کنید.
از پوشه /user-engagement-codelab-nodejs/start/functions/
کلون فایل های پایه خود، دستورات زیر را اجرا کنید:
firebase use <PROJECT_ID>
npm install
firebase deploy
پس از چند دقیقه، " Deploy full! " را مشاهده می کنید که نشان می دهد که شما با موفقیت وب هوک خود را در Firebase مستقر کرده اید.
URL استقرار را بازیابی کنید
باید Dialogflow را با URL تابع ابر ارائه دهید. برای بازیابی این URL، مراحل زیر را دنبال کنید:
- کنسول Firebase را باز کنید.
- پروژه Actions خود را از لیست گزینه ها انتخاب کنید.
- به Develop > Functions در نوار ناوبری سمت چپ بروید. اگر از شما خواسته شد «انتخاب تنظیمات اشتراکگذاری داده» را انتخاب کنید، میتوانید این گزینه را با کلیک کردن روی انجام این کار بعدا نادیده بگیرید.
- در زیر برگه داشبورد ، باید یک ورودی برای "تحقق" با یک URL در زیر Trigger مشاهده کنید. این URL را ذخیره کنید. شما باید آن را در بخش بعدی در Dialogflow کپی کنید.
URL webhook را در Dialogflow تنظیم کنید
اکنون باید عامل Dialogflow خود را به روز کنید تا از webhook خود برای تکمیل استفاده کنید. برای این کار مراحل زیر را دنبال کنید:
- کنسول Dialogflow را باز کنید (در صورت تمایل می توانید کنسول Firebase را ببندید).
- روی Fulfillment در ناوبری سمت چپ کلیک کنید.
- Webhook را فعال کنید.
- نشانی اینترنتی را که از داشبورد Firebase کپی کردهاید جایگذاری کنید، اگر قبلاً ظاهر نشده است.
- روی ذخیره کلیک کنید.
بررسی کنید که پروژه شما به درستی تنظیم شده است
کاربران باید بتوانند Action شما را برای کسب اطلاعات درباره Action Gym فراخوانی کنند، از جمله یک پاسخ متنی با کد سخت با ساعات کاری و یک پاسخ متنی که برنامه کلاس را برای هر روز هفته فهرست میکند.
برای آزمایش اکشن خود در شبیه ساز اکشن:
- در ناوبری سمت چپ کنسول Dialogflow، روی Integrations > Google Assistant کلیک کنید.
- مطمئن شوید که پیشنمایش خودکار تغییرات فعال است و برای بهروزرسانی پروژه Actions خود، روی Test کلیک کنید.
- شبیه ساز Actions پروژه Actions شما را بارگیری می کند. برای آزمایش Action خود،
Talk to my test app
را در قسمت Input تایپ کنید و enter را فشار دهید. - شما باید پاسخی را ببینید که از شما به Action Gym خوش آمد می گوید. سعی کنید دستورات را دنبال کنید تا مکالمه را ادامه دهید و در عین حال مطمئن شوید که انجام شما برای هر ورودی پاسخی دارد.
3. اشتراک های به روز رسانی روزانه را اضافه کنید
یک راه متداول برای تعامل با کاربران این است که اطلاعات را در زمانی که مفیدتر است به آنها ارائه دهید. این با ارائه گزینه اشتراک بهروزرسانیهای روزانه برای یک intent به کاربران انجام میشود، که یک اعلان دستیار برای آنها ارسال میشود که مستقیماً به تحقق آن هدف پیوند میدهد.
در این مرحله، با اشتراکهای بهروزرسانی روزانه آشنا میشوید و آنها را به هدف Action's Class List خود اضافه میکنید. پس از دنبال کردن این دستورالعمل ها، مکالمه Action شما مانند نمودار زیر خواهد بود:
این چگونه کاربران را درگیر خواهد کرد؟
کاربران گوشیهای هوشمند احتمالاً با اعلانهای فشاری آشنا هستند که اطلاعات و بهروزرسانیهای خاص برنامه را ارائه میکنند. اشتراکهای بهروزرسانی روزانه راهی ساده برای دسترسی به کاربران در دستگاههای تلفن همراه خارج از «دستیار» است، مشروط بر اینکه هدفی که بهروزرسانیها را برای آن ارسال میکنید همچنان ارزشی را برای کاربر به صورت روزانه فراهم کند.
به روز رسانی روزانه می تواند یک ابزار تعامل مفید باشد، اما لزوما نباید در هر Action گنجانده شود. هنگام تصمیمگیری برای اضافه کردن اشتراکهای بهروزرسانی روزانه به یک Action، این نکات را در نظر بگیرید:
- مطمئن شوید که بهروزرسانیهای روزانه باعث میشود کاربر هر روز اطلاعات مفید و متفاوتی را ببیند. اگر هر بار ضربه زدن روی یک بهروزرسانی روزانه منجر به همان درخواست شود، کاربر احتمالاً پس از چند روز اشتراک خود را لغو میکند.
- مطمئن شوید که گفت و گوی شما برای کاربر شما منطقی است اگر مستقیماً به قصد به روز رسانی روزانه شما بپردازد. کاربر شما لزوماً از ابتدای مکالمه شروع نمی کند، بنابراین نباید از آنها انتظار داشت که زمینه زیادی داشته باشند.
- قبل از اینکه از او بخواهید در بهروزرسانیهای روزانه مشترک شود، مزایای Action خود را به کاربر نشان دهید. وقتی به کاربر امکان اشتراک داده می شود، باید فکر کند "من هر روز این محتوا را می خواهم".
- کاربر را با پیشنهادات مکرر برای اشتراک غرق نکنید. اشتراک بهروزرسانی روزانه را بلافاصله پس از اینکه به کاربر نشان دادید در چه چیزی مشترک است، ارائه دهید و از اذیت کردن او در مورد آن در جاهای دیگر خودداری کنید.
- پس از شروع بهروزرسانی، مکالمه را کوتاه نگه دارید. اکثر بهروزرسانیهای روزانه فقط باید از یک پاسخ تشکیل شده باشند و سپس بدون نیاز به ورودی کاربر بسته شوند.
به روز رسانی روزانه را روشن کنید
اشتراکهای بهروزرسانی روزانه را میتوان به هدف خوشآمدگویی اضافه کرد که کاربر را در شروع مکالمه شما قرار میدهد، یا قصد خاصی را به منظور پیوند عمیق آنها با جایی در مکالمه. برای این نرمافزار، هدف فهرست کلاسها منطقیتر است، زیرا گفتگو هر روز تغییر میکند و کاربران ممکن است یادآوری کلاسهای موجود را مفید بدانند.
برای فعال کردن بهروزرسانیهای روزانه برای هدف فهرست کلاس ، این مراحل را دنبال کنید:
- در کنسول Actions، روی تب Develop کلیک کنید و Actions را در نوار ناوبری سمت چپ انتخاب کنید.
- بر روی Class List در زیر لیست اقدامات کلیک کنید.
- در بخش تعامل کاربر ، گزینه Wild you like to offer daily updates to users را تغییر دهید.
- یک عنوان محتوای توصیفی تنظیم کنید که بهروزرسانی روزانه را توصیف کند. متن این خواهد بود "چه ساعتی میخواهید < عنوان محتوای>" روزانه شما را بفرستم، بنابراین مطمئن شوید که عنوان شما هم توصیفی است و هم وقتی با صدای بلند صحبت میکنید درست به نظر میرسد. برای این مثال، عنوان Content را روی
list of upcoming Action Gym classes
تنظیم کنید. - روی Save در بالای صفحه کلیک کنید.
Dialogflow را تنظیم کنید
این مراحل را در کنسول Dialogflow دنبال کنید تا برای جریان اشتراک روزانه بهروزرسانی ایجاد کنید:
از کاربر بخواهید مشترک شود
- یک هدف جدید برای رسیدگی به درخواست کاربر برای اشتراک در بهروزرسانیهای روزانه تنظیم کنید. در کنسول Dialogflow، روی دکمه + در کنار Intent در ناوبری سمت چپ کلیک کنید تا یک intent جدید ایجاد کنید.
- نام این intent
Setup Updates
بگذارید. - در بخش عبارات آموزشی ، عبارات کاربری زیر را اضافه کنید:
-
Send daily reminders
-
Reminder
-
Remind me
-
Updates
-
Upcoming classes
- در قسمت Fulfillment ، گزینه Enable webhook call for this intent را تغییر دهید.
- روی ذخیره در بالای صفحه کلیک کنید.
تصمیم کاربر را مدیریت کنید
- یک هدف جدید برای رسیدگی به پاسخ کاربر به درخواست اشتراک روزانه بهروزرسانی تنظیم کنید. برای ایجاد یک intent جدید، روی دکمه + در کنار Intents در ناوبری سمت چپ کلیک کنید.
- نام این هدف جدید را
Confirm Updates
. - در بخش رویدادها ،
actions_intent_REGISTER_UPDATE
را اضافه کنید. این رویداد Dialogflow با اتمام جریان اشتراک روزانه بهروزرسانی توسط کاربر فعال میشود، خواه در نهایت مشترک شود یا نه. - در قسمت Fulfillment ، گزینه Enable webhook call for this intent را تغییر دهید.
- روی ذخیره در بالای صفحه کلیک کنید.
تحقق را اجرا کنید
برای پیاده سازی تکمیل در وب هوک خود، مراحل زیر را انجام دهید:
بارگذاری وابستگی ها
در فایل index.js
، تابع require()
را بهروزرسانی کنید تا بسته RegisterUpdate
را از بسته actions-on-google
اضافه کنید، بنابراین واردات شما به شکل زیر است:
index.js
const {
dialogflow,
Suggestions,
RegisterUpdate,
} = require('actions-on-google');
تراشه های پیشنهادی را به روز کنید
در فایل index.js
، یک ورودی DAILY
به لیست عناوین تراشه های پیشنهادی اضافه کنید، بنابراین تعریف Suggestion
شما به این صورت است:
index.js
// Suggestion chip titles
const Suggestion = {
HOURS: 'Ask about hours',
CLASSES: 'Learn about classes',
DAILY: 'Send daily reminders',
};
تکمیل را برای مقاصد جدید اضافه کنید
هنگامی که کاربر میگوید میخواهد مشترک شود، جریان اشتراک روزانه بهروزرسانیها را با تماس با Helper RegisterUpdate
با هدف بهروزرسانی ( فهرست کلاس ) و نوع ( DAILY
) شروع کنید. پس از اتمام جریان اشتراک، Assistant رویداد actions_intent_REGISTER_UPDATE
را با آرگومان status
راهاندازی میکند که نشان میدهد آیا اشتراک موفق بوده یا خیر. پیشنهادهای پیگیری را به کاربر ارائه دهید که بسته به وضعیت اشتراک تغییر می کند.
در فایل index.js
کد زیر را اضافه کنید:
index.js
// Start opt-in flow for daily updates
app.intent('Setup Updates', (conv) => {
conv.ask(new RegisterUpdate({
intent: 'Class List',
frequency: 'DAILY',
}));
});
// Confirm outcome of opt-in for daily updates
app.intent('Confirm Updates', (conv, params, registered) => {
if (registered && registered.status === 'OK') {
conv.ask(`Gotcha, I'll send you an update everyday with the ` +
'list of classes. Can I help you with anything else?');
} else {
conv.ask(` I won't send you daily reminders. Can I help you with anything else?`);
}
if (conv.screen) {
conv.ask(new Suggestions([Suggestion.HOURS, Suggestion.CLASSES]));
}
});
پیشنهادهای جایگزین برای کاربر ارائه دهید
پاسخ لیست کلاس شما اشتراک به روز رسانی روزانه را در پایان ارائه می دهد، اما این مشکل ایجاد می کند. از آنجایی که وقتی کاربر روی اعلان بهروزرسانی روزانه ضربه میزند، همین پاسخ نشان داده میشود، همچنان از آنها خواسته میشود مشترک بهروزرسانیهای روزانه شوند، حتی اگر بهتازگی از یک بهروزرسانی دریافت شده باشند. چگونه می توانید کاربر را از اینکه فکر کند نیاز به اشتراک مجدد دارد جلوگیری کنید؟
خوشبختانه، آرگومان های شی conv
شما شامل اطلاعاتی درباره جایی است که کاربر مکالمه را از کجا شروع کرده است. میتوانید آرگومانهای conv
را بررسی کنید تا ببینید آیا حاوی بخش UPDATES
هستند که نشان میدهد کاربر مکالمه را از یک اعلان بهروزرسانی روزانه شروع کرده است یا خیر، و پاسخ را بر این اساس تغییر دهید. همچنین میتوانید از این شاخه مکالمه استفاده کنید تا بلافاصله پس از ارائه لیست کلاسها، گفتگو را ببندید، که از بهترین روش ما برای کوتاه نگه داشتن بهروزرسانی روزانه پیروی میکند.
در فایل index.js
کد زیر را جایگزین کنید:
index.js
// Class list intent handler
app.intent('Class List', (conv, {day}) => {
if (!day) {
day = DAYS[new Date().getDay()];
}
const classes =
[...new Set(schedule.days[day].map((d) => `${d.name} at ${d.startTime}`))]
.join(', ');
const classesMessage =
`On ${day} we offer the following classes: ${classes}. ` +
`Can I help you with anything else?`;
conv.ask(classesMessage);
if (conv.screen) {
conv.ask(new Suggestions([Suggestion.HOURS]));
}
});
با این:
index.js
// Class list intent handler
app.intent('Class List', (conv, {day}) => {
if (!day) {
day = DAYS[new Date().getDay()];
}
const classes =
[...new Set(schedule.days[day].map((d) => `${d.name} at ${d.startTime}`))]
.join(', ');
let classesMessage = `On ${day} we offer the following classes: ${classes}. `;
// If the user started the conversation from the context of a daily update,
// the conv's arguments will contain an 'UPDATES' section.
let engagement = conv.arguments.get('UPDATES');
// Check the conv arguments to tailor the conversation based on the context.
if (engagement) {
classesMessage += `Hope to see you soon at Action Gym!`;
conv.close(classesMessage);
} else {
classesMessage += `Would you like me to send you daily reminders of upcoming classes, or can I help you with anything else?`;
conv.ask(classesMessage);
if (conv.screen) {
conv.ask(new Suggestions([Suggestion.DAILY, Suggestion.HOURS]));
};
};
});
به روز رسانی های روزانه خود را آزمایش کنید
در ترمینال، دستور زیر را برای استقرار کد وب هوک به روز شده خود در Firebase اجرا کنید:
firebase deploy
برای آزمایش reprompt سفارشی خود در شبیه ساز Actions، این مراحل را دنبال کنید:
- در کنسول Actions، به Test بروید.
-
Talk to my test app
را در قسمت Input تایپ کنید و enter را فشار دهید. -
Learn about classes
را تایپ کرده و enter را فشار دهید. پاسخ Action شما اکنون باید ارسال یادآورهای روزانه را ارائه دهد. -
Send daily reminders
تایپ کرده و اینتر را فشار دهید. - زمانی را وارد کنید که میخواهید بهروزرسانی را ببینید و اینتر را فشار دهید. برای اهداف آزمایشی، سعی کنید 3-5 دقیقه دیرتر از زمان فعلی پاسخ دهید.
در دستگاه تلفن همراه خود، باید یک اعلان از دستیار در زمانی که برای بهروزرسانی مشخص کردهاید دریافت کنید. توجه داشته باشید که نمایش این اعلان ممکن است چند دقیقه طول بکشد. روی اعلان ضربه بزنید و باید مستقیماً به هدف فهرست کلاس در Assistant پیوند عمیق داده شود و لیستی از کلاس های آینده را به شما ارائه دهد:
4. اعلانهای فشاری را اضافه کنید
به عنوان گزینه دیگری برای جذب کاربران خارج از Action خود، می توانید با Action API تماس بگیرید تا اعلان های فشار را برای کاربران ارسال کنید. برخلاف بهروزرسانیهای روزانه، این اعلانها بهطور خودکار توسط «دستیار» برنامهریزی نمیشوند، بنابراین میتوانید آنها را به میل خود ارسال کنید.
در این مرحله، نحوه پیادهسازی اعلانهای فشار را در Action خود با افزودن یک هدف لغو کلاس جدید و ارسال اعلانهایی به کاربرانی که آنها را در مورد لغو کلاس مطلع میکنند، میآموزید. همچنین سه مؤلفه زیر را که برای ارسال اعلانها لازم است تنظیم میکنید:
- حساب Actions API - شما با ارسال یک درخواست
POST
به یک API اعلانها را برای کاربر ارسال میکنید، بنابراین باید یک حساب سرویس و اعتبارنامهها را برای ارتباط با این API تنظیم کنید. - کمک کننده مجوز - برای دسترسی به شناسه کاربری مورد نیاز برای ارسال اعلانهای فشاری، به اجازه کاربر نیاز دارید. در این مثال، از یک تابع کتابخانه کلاینت برای فراخوانی راهنما مجوز و درخواست این شناسه استفاده میکنید.
- فضای ذخیرهسازی - برای ارسال اعلانهای فشاری به یک کاربر خارج از مکالمه، باید شناسههای کاربر را در جایی ذخیره کنید که بتوان آن را به میل خود فراخوانی کرد. در این مثال، شما یک پایگاه داده Firestore برای ذخیره اطلاعات برای هر کاربر راه اندازی خواهید کرد.
پس از دنبال کردن این دستورالعملها، گفتگوی زیر را به مکالمه Action خود اضافه میکنید:
این چگونه کاربران را درگیر خواهد کرد؟
کاربران گوشیهای هوشمند احتمالاً با اعلانهای فشاری آشنا هستند که اطلاعات و بهروزرسانیهای خاص برنامه را ارائه میکنند. اعلانهای فشاری روشی انعطافپذیر برای دسترسی به کاربران در دستگاههای تلفن همراه خارج از Assistant هستند، مشروط بر اینکه به کاربران دلیل خوبی برای فعال کردن آنها ارائه شود. با به روز رسانی روزانه، کاربران از قبل آگاه هستند که به صورت روزانه به آنها اطلاع داده می شود. با این حال، با استفاده از اعلانهای فشاری، کاربران نمیدانند که آیا دریافت اعلانهای نادر را انتخاب میکنند یا با چندین نوتیفیکیشن در روز آزار میدهند.
اعلانهای فشاری میتوانند ابزار تعامل مفیدی باشند، اما لزوماً نباید در هر Action گنجانده شوند. هنگام تصمیمگیری برای اضافه کردن اعلانهای فشار به یک Action، این نکات را در نظر بگیرید:
- چند نمونه برنامه برای اعلان های فشاری خود برنامه ریزی کنید. اگر قصد دارید فقط یک نوتیفیکیشن فشاری در روز ارسال کنید، به جای آن از بهروزرسانیهای روزانه استفاده کنید.
- مطمئن شوید که اعلانهای فشاری شما هر بار که دریافت میشوند، اطلاعات مفیدی را ارائه میکنند. اعلانهای شما همچنین میتوانند به یکی از مقاصد Action شما پیوند عمیق بدهند، بنابراین مطمئن شوید که هدف مفید و مرتبط است.
- هنگام درخواست از کاربر برای اشتراک در اعلانهای فشار صریح باشید. آنها باید بدانند که با هر نوتیفیکیشن فشاری چه انتظاری دارند و در مورد اینکه اعلان ها چند وقت یکبار ارسال می شوند، ایده ای داشته باشند.
Actions API را فعال کنید
- کنسول Google Cloud را باز کنید و نام پروژه Actions خود را در منوی بازشو انتخاب کنید.
- در منوی پیمایش ( ☰) ، به APIs & Services > Library بروید.
- Actions API را جستجو کنید و روی Enable کلیک کنید.
یک حساب کاربری ایجاد کنید
Action API به احراز هویت نیاز دارد، بنابراین باید یک حساب سرویس برای ارسال درخواست ایجاد کنید. برای ایجاد و نصب کلید حساب سرویس برای Action API مراحل زیر را دنبال کنید:
- در منوی پیمایش Google Cloud Console (☰) ، به APIs & Services > Credentials بروید.
- روی Create credentials > Service key account کلیک کنید.
- در منوی کشویی حساب سرویس ، حساب سرویس جدید را انتخاب کنید.
- اطلاعات زیر را پر کنید:
- نام حساب سرویس :
service-account
- نقش : پروژه > مالک
- شناسه حساب سرویس:
service-account
(همیشه با @<project_id>.iam.gserviceaccount.com دنبال می شود) - نوع کلید : JSON
- روی ایجاد کلیک کنید.
- فایل JSON دانلود شده را به پوشه /user-engagement-codelab/start/functions/ پروژه خود منتقل کنید.
- نام فایل JSON را به
service-account.json
تغییر دهید.
Firestore را فعال کنید
برای ارسال اعلانهای خارج از مکالمه، به روشی برای ذخیره شناسههای کاربری نیاز دارید که بتوان از کد اعلان شما ارجاع داد. برای این مثال، ما از یک پایگاه داده Firestore برای ذخیره شناسه های کاربری کاربران مشترک استفاده می کنیم.
این مراحل را برای ایجاد یک پایگاه داده Firestore برای Action خود دنبال کنید:
- در کنسول Firebase ، نام پروژه Actions خود را انتخاب کنید.
- در پیمایش سمت چپ، به Develop > Database بروید و روی ایجاد پایگاه داده کلیک کنید.
- شروع در حالت تست را انتخاب کنید.
- روی Enable کلیک کنید.
Dialogflow را تنظیم کنید
این مراحل را در کنسول Dialogflow دنبال کنید تا جریان انتخابی اعلانهای فشار ایجاد کنید:
از کاربر بخواهید مشترک شود
- یک هدف جدید برای مدیریت درخواست کاربر برای اشتراک در اعلانهای فشار برای کلاسهای لغو شده تنظیم کنید. در کنسول Dialogflow، روی دکمه + در کنار Intent در ناوبری سمت چپ کلیک کنید تا یک intent جدید ایجاد کنید.
- نام این intent
Setup Push Notifications
بگذارید . - در بخش عبارات آموزشی ، عبارات کاربری زیر را اضافه کنید:
-
Subscribe to notifications
-
Send notification
-
Notify me
-
Send class notifications
-
Cancelled notifications
- در قسمت Fulfillment ، گزینه Enable webhook call for this intent را تغییر دهید.
- روی ذخیره در بالای صفحه کلیک کنید.
تصمیم کاربر را مدیریت کنید
- یک هدف جدید برای رسیدگی به پاسخ کاربر به درخواست اشتراک اعلانهای فشاری تنظیم کنید. برای ایجاد یک intent جدید، روی دکمه + در کنار Intents در ناوبری سمت چپ کلیک کنید.
- این هدف جدید را
Confirm Push Notifications
نامگذاری کنید. - در بخش رویدادها ،
actions_intent_PERMISSION
را اضافه کنید. این رویداد Dialogflow با اتمام جریان اشتراک اعلانهای فشاری توسط کاربر فعال میشود، خواه در نهایت مشترک شود یا نه. - در قسمت Fulfillment ، گزینه Enable webhook call for this intent را تغییر دهید.
- روی ذخیره در بالای صفحه کلیک کنید.
اعلان فشار را مدیریت کنید
میتوانید اعلانهای فشاری خود را به یک هدف خاص پیوند دهید، بنابراین کاربرانی که روی اعلان فشار ضربه میزنند مستقیماً به آن هدف در Action شما پیوند عمیقی پیدا میکنند. در این مثال، یک هدف جدید برای اعلانهای فشاری اضافه کنید که جزئیات مربوط به کلاسهای لغو شده را ارائه میدهد.
برای افزودن هدفی که با ضربه زدن روی یک اعلان فشاری توسط کاربر ایجاد می شود، این مراحل را دنبال کنید:
- در کنسول Dialogflow، روی دکمه + در کنار Intent در ناوبری سمت چپ کلیک کنید تا یک intent جدید ایجاد کنید.
- نام این
Class Canceled
. - در بخش عبارات آموزشی ،
Cancelations
به عنوان عبارت کاربری اضافه کنید. - در قسمت Fulfillment ، گزینه Enable webhook call for this intent را تغییر دهید.
- روی ذخیره در بالای صفحه کلیک کنید.
اعلانهای آزمایشی را در اواسط مکالمه ارسال کنید
در تولید، شما باید یک اسکریپت جدا از کد اجرای Action خود داشته باشید که اعلانهای فشاری را ارسال میکند. برای این مثال، یک intent ایجاد کنید که میتوانید هنگام صحبت با Action خود، یک اعلان فشار ارسال کنید. این هدف فقط برای اهداف اشکال زدایی است. در عمل، اعلانهای فشاری نباید توسط شما انجام شود یا بهعنوان بخشی از مکالمه Action شما فعال شوند.
این مراحل را برای ایجاد یک هدف برای آزمایش اعلانهای فشار دنبال کنید:
- برای اهداف آزمایش و اشکال زدایی، یک هدف جدید تنظیم کنید که به شما امکان می دهد اعلان های فشار را برای کاربران مشترک ارسال کنید. در کنسول Dialogflow، روی دکمه + در کنار Intent در ناوبری سمت چپ کلیک کنید تا یک intent جدید ایجاد کنید.
- این
Test Notification
قصد جدید را نامگذاری کنید. - در بخش عبارات آموزشی ،
Test notification
به عنوان عبارت کاربر اضافه کنید. - در قسمت Fulfillment ، گزینه Enable webhook call for this intent را تغییر دهید.
- روی ذخیره در بالای صفحه کلیک کنید.
اعلانهای فشاری را روشن کنید
برای فعال کردن اعلانهای فشاری برای هدف لغو شده ، این مراحل را دنبال کنید:
- در کنسول Dialogflow، به بخش Integrations در نوار پیمایش بروید.
- در کارت دستیار Google ، روی تنظیمات ادغام کلیک کنید.
- اضافه کردن کلاس لغو شده به عنوان یک قصد فراخوانی ضمنی . این مرحله برای اینکه Dialogflow تشخیص دهد که کاربران میتوانند مکالمه شما را با هدف لغو کلاس (با ضربه زدن روی یک اعلان فشار) شروع کنند، ضروری است.
- روی Close کلیک کنید.
- در کنسول Actions، روی تب Develop کلیک کنید و Actions را در نوار ناوبری سمت چپ انتخاب کنید.
- بر روی Class Canceled در لیست Actions کلیک کنید.
- در بخش تعامل کاربر ، گزینه Wid you like to send push notifications را تغییر دهید؟ گزینه
- یک عنوان محتوای توصیفی تنظیم کنید که اعلان فشار را توصیف کند. متن به این صورت خواهد بود: «آیا مشکلی ندارد اگر اعلانهای فشاری برای <content title> ارسال کنم؟»، بنابراین مطمئن شوید که عنوان شما هم توصیفی است و هم وقتی با صدای بلند صحبت میکنید درست به نظر میرسد. برای این مثال، عنوان محتوا را روی
class cancelations
تنظیم کنید. - روی ذخیره در بالای صفحه کلیک کنید.
تحقق را اجرا کنید
برای پیاده سازی تکمیل در وب هوک خود، مراحل زیر را انجام دهید:
بارگذاری وابستگی ها
در فایل index.js
، تابع require()
را بهروزرسانی کنید تا بسته UpdatePermission
را از بسته actions-on-google
اضافه کنید، بنابراین واردات شما به شکل زیر است:
index.js
const {
dialogflow,
Suggestions,
RegisterUpdate,
UpdatePermission,
} = require('actions-on-google');
تراشه های پیشنهادی را به روز کنید
در فایل index.js
، یک ورودی NOTIFICATIONS
را به لیست عناوین تراشه پیشنهادی اضافه کنید، بنابراین تعریف Suggestion
شما به این صورت است:
index.js
// Suggestion chip titles
const Suggestion = {
HOURS: 'Ask about hours',
CLASSES: 'Learn about classes',
DAILY: 'Send daily reminders',
NOTIFICATIONS: 'Get notifications',
};
راه اندازی واردات جدید
برای اتصال به پایگاه داده Firestore خود، بسته firebase-admin
را اضافه کنید و ثابت هایی را برای فیلدهای ذخیره شده در پایگاه داده اضافه کنید. همچنین، google-auth-library
را وارد کنید و بستههایی را برای رسیدگی به احراز هویت و درخواستها به API Actionها request
.
در فایل index.js
کد زیر را به ایمپورت های خود اضافه کنید:
index.js
// Firebase admin import
const admin = require('firebase-admin');
// Initialize Firestore
admin.initializeApp();
const db = admin.firestore();
// Firestore constants
const FirestoreNames = {
INTENT: 'intent',
USER_ID: 'userId',
USERS: 'users',
};
// Actions API authentication imports
const {auth} = require('google-auth-library');
const request = require('request');
پیشنهاد تنظیم اعلانهای لغو کلاس
در فایل index.js
کد زیر را جایگزین کنید:
index.js
// Class list intent handler
app.intent('Class List', (conv, {day}) => {
if (!day) {
day = DAYS[new Date().getDay()];
}
const classes =
[...new Set(schedule.days[day].map((d) => `${d.name} at ${d.startTime}`))]
.join(', ');
let classesMessage = `On ${day} we offer the following classes: ${classes}. `;
// If the user started the conversation from the context of a daily update,
// the conv's arguments will contain an 'UPDATES' section.
let engagement = conv.arguments.get('UPDATES');
// Check the conv arguments to tailor the conversation based on the context.
if (engagement) {
classesMessage += `Hope to see you soon at Action Gym!`;
conv.close(classesMessage);
} else {
classesMessage += `Would you like me to send you daily reminders of upcoming classes, or can I help you with anything else?`;
conv.ask(classesMessage);
if (conv.screen) {
conv.ask(new Suggestions([Suggestion.DAILY, Suggestion.HOURS]));
};
};
});
با این:
index.js
// Class list intent handler
app.intent('Class List', (conv, {day}) => {
if (!day) {
day = DAYS[new Date().getDay()];
}
const classes =
[...new Set(schedule.days[day].map((d) => `${d.name} at ${d.startTime}`))]
.join(', ');
let classesMessage = `On ${day} we offer the following classes: ${classes}. `;
// If the user started the conversation from the context of a daily update,
// the conv's arguments will contain an 'UPDATES' section.
let engagement = conv.arguments.get('UPDATES');
// Check the conv arguments to tailor the conversation based on the context.
if (engagement) {
classesMessage += `Hope to see you soon at Action Gym!`;
conv.close(classesMessage);
} else {
classesMessage += `Would you like to receive daily reminders of upcoming classes, subscribe to notifications about cancelations, or can I help you with anything else?`;
conv.ask(classesMessage);
if (conv.screen) {
conv.ask(new Suggestions([Suggestion.DAILY, Suggestion.NOTIFICATIONS,
Suggestion.HOURS]));
};
};
});
تکمیل را برای مقاصد جدید اضافه کنید
وقتی کاربر میگوید که میخواهد در اعلانهای فشاری مشترک شود، با راهنمای UpdatePermission
تماس بگیرید تا از کاربر اجازه درخواست کند. در صورت موفقیت آمیز بودن، آرگومان PERMISSION
به آرگومان های شی conv
اضافه می شود که می توانید آن را بررسی کنید تا مکالمه را محور قرار دهید.
هنگامی که اجازه کاربر را گرفتید، شناسه کاربری را از آرگومان های شی conv
بگیرید و آن را در پایگاه داده خود ذخیره کنید. بعداً این شناسه کاربری را به Actions API ارسال خواهید کرد، به این ترتیب Assistant تعیین میکند که چه کسی اعلان را دریافت میکند.
در نهایت، برای هدف Class Canceled
که با ضربه زدن روی اعلان فشار ایجاد میشود، تکمیل را اضافه کنید. در این مثال پاسخ شما یک رشته نگهدارنده مکان است، اگرچه در نسخه آماده تولید این Action، اسکریپت اعلان شما اطلاعات پویا تری در مورد کلاس لغو شده ارائه می دهد.
در فایل index.js
کد زیر را اضافه کنید:
index.js
// Call the User Information helper for permission to send push notifications
app.intent('Setup Push Notifications', (conv) => {
conv.ask('Update permission for setting up push notifications');
conv.ask(new UpdatePermission({intent: 'Class Canceled'}));
});
// Handle opt-in or rejection of push notifications
app.intent('Confirm Push Notifications', (conv) => {
if (conv.arguments.get('PERMISSION')) {
let userId = conv.arguments.get('UPDATES_USER_ID');
if (!userId) {
userId = conv.request.conversation.conversationId;
}
// Add the current conversation ID and the notification's
// target intent to the Firestore database.
return db.collection(FirestoreNames.USERS)
.add({
[FirestoreNames.INTENT]: 'Class Canceled',
[FirestoreNames.USER_ID]: userId,
})
.then(() => {
conv.ask(`Great, I'll notify you whenever there's a class cancelation. ` +
'Can I help you with anything else?');
});
} else {
conv.ask(`Okay, I won't send you notifications about class cancelations. ` +
'Can I help you with anything else?');
}
if (conv.screen) {
conv.ask(new Suggestions([Suggestion.CLASSES, Suggestion.HOURS]));
}
});
// Intent triggered by tapping the push notification
app.intent('Class Canceled', (conv) => {
conv.ask('Classname at classtime has been canceled.');
});
اعلان های تست را اضافه کنید
برای ارسال یک اعلان فشاری به یک کاربر، یک درخواست POST
با شناسه کاربر، عنوان اعلان و هدف هدف به Action API ارسال کنید. در این مثال، راهاندازی هدف Test Notification از طریق پایگاه داده Firestore شما تکرار میشود و اعلانهای فشاری را برای هر کاربری که مشترک اعلانها است ارسال میکند.
به یاد داشته باشید که در این مثال، شما کدی را که اعلان فشار ارسال میکند در اجرای وب هوک خود وارد کرده و با فراخوانی یک هدف آزمایشی در مکالمه خود، آن کد را فعال میکند. در اقداماتی که قصد انتشار آنها را دارید، کد اعلان فشار شما باید در اسکریپتی جدا از اجرای شما وجود داشته باشد.
در فایل index.js
کد زیر را اضافه کنید:
index.js
// Debug intent to trigger a test push notification
app.intent('Test Notification', (conv) => {
// Use the Actions API to send a Google Assistant push notification.
let client = auth.fromJSON(require('./service-account.json'));
client.scopes = ['https://www.googleapis.com/auth/actions.fulfillment.conversation'];
let notification = {
userNotification: {
title: 'Test Notification from Action Gym',
},
target: {},
};
client.authorize((err, tokens) => {
if (err) {
throw new Error(`Auth error: ${err}`);
}
// Iterate through Firestore and send push notifications to every user
// who's currently opted in to canceled class notifications.
db.collection(FirestoreNames.USERS)
.where(FirestoreNames.INTENT, '==', 'Class Canceled')
.get()
.then((querySnapshot) => {
querySnapshot.forEach((user) => {
notification.target = {
userId: user.get(FirestoreNames.USER_ID),
intent: user.get(FirestoreNames.INTENT),
};
request.post('https://actions.googleapis.com/v2/conversations:send', {
'auth': {
'bearer': tokens.access_token,
},
'json': true,
'body': {'customPushMessage': notification, 'isInSandbox': true},
}, (err, httpResponse, body) => {
if (err) {
throw new Error(`API request error: ${err}`);
}
console.log(`${httpResponse.statusCode}: ` +
`${httpResponse.statusMessage}`);
console.log(JSON.stringify(body));
});
});
})
.catch((error) => {
throw new Error(`Firestore query error: ${error}`);
});
});
conv.ask('A notification has been sent to all subscribed users.');
});
اعلانهای فشاری خود را آزمایش کنید
در ترمینال، دستور زیر را برای استقرار کد وب هوک به روز شده خود در Firebase اجرا کنید:
firebase deploy
برای آزمایش اعلانها در شبیهساز Actions، این مراحل را دنبال کنید:
- در کنسول Actions، به تب Test بروید.
-
Talk to my test app
را در قسمت Input تایپ کنید و enter را فشار دهید. -
Learn about classes
را تایپ کرده و enter را فشار دهید. -
Get notifications
تایپ کرده و enter را فشار دهید. - اگر قبلاً به Action خود اجازه ارسال اعلانهای فشاری را ندادهاید،
yes
را تایپ کرده و enter را فشار دهید. -
yes
را تایپ کرده و enter را فشار دهید. اکنون باید حساب Google شما در اعلانهای فشاری برای این اقدام مشترک شود.
-
no
را تایپ کنید و برای خروج اینتر را فشار دهید. -
Talk to my test app
را تایپ کنید و enter را فشار دهید تا مکالمه جدیدی شروع شود. -
Test notification
را تایپ کرده و enter را فشار دهید.
در عرض چند دقیقه باید اعلان فشاری دستیار «تست اعلان از Action Gym» را در دستگاه تلفن همراه خود دریافت کنید. با ضربه زدن روی این اعلان، شما را به هدف Class Canceled Action خود مرتبط میکند.
5. یک پیوند دستیار ایجاد کنید
تاکنون درباره ویژگیهای تعامل صحبت کردهایم که میتوانید برای بازگرداندن کاربران به Action خود پیادهسازی کنید، اما این ویژگیها بر اساس داشتن کاربرانی است که Action شما را کشف کرده و استفاده میکنند.
میتوانید پیوند دستیار ایجاد کنید که کاربران دستگاههای تلفن همراه را مستقیماً به Action on Assistant شما پیوند میدهد. از آنجایی که پیوند دستیار یک لینک استاندارد است، میتوانید آن را به یک وبسایت یا هر محتوای بازاریابی اینترنتی مانند وبلاگ یا پست رسانههای اجتماعی اضافه کنید.
در این مرحله، در مورد اینکه پیوند Assistant چیست، نحوه ایجاد پیوندی برای هدف استقبال از Action و نحوه اضافه کردن آن به یک وب سایت ساده برای آزمایش یاد خواهید گرفت.
این چگونه کاربران را درگیر خواهد کرد؟
جذب کاربران به Action خود برای اولین بار می تواند چالش برانگیز باشد، به خصوص زمانی که آنها نیاز دارند به صراحت Action on Assistant شما را فراخوانی کنند. پیوند Assistant با دادن پیوند مستقیم به Action به کاربران، این اصطکاک را کاهش می دهد. هنگامی که کاربری پیوند دستیار شما را در دستگاهی که دارای Assistant فعال است دنبال میکند، مستقیماً به Action شما منتقل میشود. وقتی کاربری پیوند شما را در دستگاه غیر همراه یا هر دستگاه دیگری که از Assistant پشتیبانی نمیکند باز میکند، همچنان به فهرست فهرست Actions شما منتقل میشود (اگر منتشر شده باشد) بنابراین پیوند همچنان میتواند Action شما را برای آنها بازاریابی کند. کاربران
پیوندهای دستیار می توانند ابزار تعامل مفیدی باشند، بنابراین اگر قصد دارید اکشن خود را از طریق وب سایت یا رسانه های اجتماعی خود تبلیغ کنید، باید آن را ایجاد کنید. فقط قبل از ایجاد و توزیع پیوند دستیار از نکات زیر آگاه باشید:
- پیوندهای دستیار فقط زمانی کار می کنند که Action شما منتشر شود. در حالی که پروژه شما در حالت پیشنویس است، پیوند فقط در دستگاههای خودتان کار میکند. هر کس دیگری به صفحه 404 در فهرست Actions منتقل می شود.
- شما می توانید با انتشار اقدامات خود در یک محیط آلفا یا بتا ، کاربران را قبل از انتشار یک لینک دستیار آزمایش کنید. توجه داشته باشید که فقط کاربرانی که در آلفا یا بتا شرکت می کنند ، می توانند پیوند دستیار شما را آزمایش کنند.
- اطمینان حاصل کنید که هدف مقصد برای پیوند دستیار شما اولین تأثیر خوبی را با کاربران جدید ایجاد می کند. هدف خوش آمدید شما مقصد پیش فرض برای یک لینک دستیار است زیرا در حال حاضر باید کار خوبی را برای معرفی عمل شما انجام دهد
پیوندهای دستیار را روشن کنید
این مراحل را دنبال کنید تا یک پیوند دستیار برای هدف استقبال ایجاد کنید:
- در کنسول Actions ، روی برگه توسعه کلیک کنید و Actions را در نوار ناوبری سمت چپ انتخاب کنید.
- روی Actions.intent.main در لیست اقدامات کلیک کنید.
- در بخش پیوندها ، آیا می خواهید URL را برای این گزینه عمل فعال کنید .
- عنوان پیوند توصیفی را تنظیم کنید که عملکرد شما را توصیف می کند. عنوان خود را به یک جفت فعل ساده اسم تبدیل کنید که توصیف می کند کاربر با عملکرد شما چه کاری می تواند انجام دهد. برای این مثال ، عنوان پیوند را برای
learn about Action Gym
تنظیم کنید. - قطعه HTML را از پایین این صفحه کپی کرده و بعداً آن را ذخیره کنید.
- روی ذخیره در بالای صفحه کلیک کنید.
استقرار یک وب سایت آزمایشی
برای آزمایش پیوند دستیار خود ، می توانید از ابزارهای Firebase برای استقرار یک وب سایت آزمایشی در کنار تحقق خود استفاده کنید. ما قبلاً یک وب سایت تست ساده برای این مثال ایجاد کرده ایم ، شما فقط باید لینک دستیار خود را اضافه کنید.
به Ensufillment /user-engagement-codelab-nodejs/start/public/
directory بروید و پرونده index.html
را در یک ویرایشگر متن باز کنید.
در پرونده index.html
، قطعه HTML پیوند دستیار خود را در عنصر بدن قرار دهید. پرونده باید در نهایت مانند قطعه زیر به نظر برسد:
index.html
<body>
<p>
<a href="https://assistant.google.com/services/invoke/uid/000000efb5f2fd97">🅖 Ask my test app to learn about Action Gym
</a>
</p>
</body>
پیوند دستیار خود را آزمایش کنید
در ترمینال ، دستور زیر را اجرا کنید تا وب سایت تست خود را به Firebase مستقر کنید:
firebase deploy
پس از اتمام دستور استقرار ، به URL میزبانی در خروجی توجه کنید.
به مرورگر وب دستگاه تلفن همراه خود به این URL بروید و باید پیوند دستیار را در وب سایت تست خود مشاهده کنید. با کلیک بر روی این لینک در دستگاه تلفن همراه شما باید شما را به هدف استقبال از اقدام خود در دستیار برساند.
همچنین می توانید از طریق مرورگر دسک تاپ به URL میزبانی بروید ، که باید شما را به یک صفحه 404 در دایرکتوری دستیار منتقل کند زیرا عملکرد شما منتشر نشده است.
6. مراحل بعدی
تبریک می گویم!
شما اکنون در مورد اهمیت تعامل کاربر هنگام توسعه یک عمل ، چه ویژگی های نامزدی کاربر در سیستم عامل موجود است و نحوه اضافه کردن هر ویژگی به یک عمل ، آموخته اید.
منابع یادگیری اضافی
برای کسب اطلاعات بیشتر در مورد تعامل کاربر برای عمل خود ، این منابع را کاوش کنید:
- نامزدی کاربر و دستیار پیوندهای اسناد : اقدامات رسمی در مورد مستندات گوگل در مورد ویژگی های مورد بحث در این CodeLab و درگیری کاربر به طور کلی.
- تحلیلی حفظ کاربر : مستندات مربوط به ویژگی Analytics در کنسول اقدامات که نشان دهنده حفظ کاربر برای اقدامات منتشر شده شما است.
- دستورالعمل های طراحی مکالمه : بهترین روشها و دستورالعمل ها برای نحوه طراحی ویژگی های تعامل کاربر.
- اقدامات در Google Github Repo : کد نمونه و کتابخانه ها.
- R/Googleassistantdev : جامعه رسمی Reddit برای توسعه دهندگان که با دستیار کار می کنند.
ما را در توییتر ActionSongOogle دنبال کنید تا با آخرین اطلاعیه های ما در ارتباط باشید و به #aogdevs توییت کنید تا آنچه را که ساخته اید به اشتراک بگذارید!
بررسی بازخورد
قبل از رفتن ، لطفاً این فرم را پر کنید تا به ما اطلاع دهید که چگونه ما کار می کنیم!