İşleminiz kullanıcılara her gün değer sağlıyorsa kullanıcılara şunu hatırlatın: günlük güncellemeleri yapılandırarak kullanabilirsiniz. Bir kullanıcı günlük abone olduğunda almak için bir push bildirimi alırlar. İşleminizin amaçlarından birini çağırmak için dokunun.
Kullanıcıların bu güncellemelerle ilgili deneyimi aşağıdaki gibidir:
- Kullanıcı, İşleminizin temel olarak yapılandırdığınız amaçlarından birini çağırır günlük güncelleme.
- Kullanıcı, günlük güncellemelere abone olma istemini izler. Bu istem görüşme sırasında veya görüşme sona erdiğinde öneri çipi olarak verilir.
- Kullanıcı, günün herhangi bir saatinde günlük e-posta adresinizi almak istediği bir saat belirler. güncelleme, güncellemenizi Google Asistan'a kaydetme.
- Kullanıcı, her gün programlandığı saatte bir Asistan alır mobil cihazlarına bildirim gönderebileceklerini.
- Kullanıcı bu bildirimi açtığında, günlük güncelleme olarak yapılandırılıp İşleminizle etkileşimde bulunun.
Varsayılan olarak, günlük güncelleme kaydı istemi bir öneri çipi olarak görünür Kullanıcı İşleminizden başarıyla çıktığında. Görüşmenin ortasındaki bir görüşmeyi de veya kullanıcının güncellemelerini kişiselleştirin.
Kullanım alanları
Günlük güncellemeler kullanışlı bir etkileşim aracı olabilir ancak her İşlemlere dahil edilir. Eklenecek ya da olmayan bir uygulama veya bir İşleme günlük abonelik güncellemesi:
- Günlük güncellemelerin kullanıcının farklı ve faydalı veriler görmesini sağlayacağından emin olun. bilgi edinmektir. Günlük bir güncellemeye dokunduğunuzda aynı istem gösteriliyorsa kullanıcı birkaç gün sonra abonelikten çıkabilir.
- Kullanıcılar doğrudan doğrudan amacına ulaşabiliyorsunuz. Kullanıcınız baştan başlamayabilir çok fazla bağlama sahip olması beklenmemelidir.
- Kaydolmalarını istemeden önce kullanıcınıza işleminizin avantajını gösterin takip edin. Kullanıcınız, "Bu içeriği her zaman istiyorum gün" abonelik seçeneği sunulduğunda.
- Kaydolmak için tekrarlanan önerilerle kullanıcıyı bunaltmayın. Teklifin kullanıcıya ne abone olacağını gösterdikten hemen sonra günlük güncelleme aboneliği yapmalı ve teklifi başka bağlamlarda tekrarlamamalısınız.
- Güncelleme amacı tetiklendikten sonra sohbeti kısa tutun. En çok günlük güncellemeler yalnızca tek bir yanıttan oluşmalı ve ardından tek bir yanıt olmadan kapatılmalıdır. giriş yapmayı gerektirebilir.
Günlük güncellemeleri ayarlama
Dialogflow'da keşfet
Dialogflow'da günlük güncellemeler örneğimizi içe aktarmak için Devam'ı tıklayın. Ardından, adımları uygulayın:
- Bir aracı adı girin ve örnek için yeni bir Dialogflow aracısı oluşturun.
- Temsilcinin içe aktarma işlemini tamamladıktan sonra Temsilciye git'i tıklayın.
- Ana gezinme menüsünden Karşılama'ya gidin.
- Satır içi düzenleyici'yi etkinleştirin ve ardından Dağıt'ı tıklayın. Düzenleyici, örneği içeriyor girin.
- Ana gezinme menüsünden Integrations'a (Entegrasyonlar) gidin, ardından Google Asistan'a dokunun.
- Görünen kalıcı pencerede Otomatik önizleme değişiklikleri'ni etkinleştirin ve Test et'i tıklayın. Eylem simülatörünü açın.
- Simülatörde
Talk to my test app
komutunu girerek örneği test edebilirsiniz.
İşleminizin amaçlarından birini günlük güncellemeler için yapılandırmak üzere şu adımları uygulayın: talimatlar:
1. Güncelleme amacı hazırlama
İşleminizin amaçlarından birini tetikleme amacı olarak yapılandırın. Bu amaç kullanıcılara günlük güncelleme gönderilmesini sağlar; Kullanıcı günlük güncellemesini açtığında bildirimi, niyet tetikleyicileri ve buradan devam eder.
Dialogflow'da bir tetikleme amacı tanımlamak için aşağıdakileri yapın:
- Dialogflow Console'da şunu tıklayın: Entegrasyonlar.
- Google Asistan bölümünde Entegrasyon Ayarları'nı tıklayın.
- Keşif > Dolaylı çağrı için Amaç ekle'yi tıklayın. Tetikleme amacınızı seçin.
- Henüz etkinleştirilmemişse Otomatik önizleme değişikliklerini etkinleştirin.
- Kapat'ı tıklayın.
Actions SDK'sında, güncelleme amacınızı İşlem paketi.
2. Güncellemeleri etkinleştir
Tetikleme amacınızla ilgili günlük güncellemeleri etkinleştirmek için aşağıdakileri yapın:
- Actions Console'da Geliştir > İşlemler.
- Tetikleme amacınızı seçin. Amacınız listede görünmüyorsa tetikleyici intent ve Dialogflow'un Asistanı olarak yapılandırıldığından emin olun. entegrasyonu değişiklikleri otomatik olarak önizleyecek şekilde ayarlandı.
- Kullanıcı etkileşimi bölümüne gidin ve etkinleştirin Kullanıcılara günlük güncellemeler sunmak istiyor musunuz.
- İçerik başlığı girin.
- Kaydet'i tıklayın.
İşleminizi şunun için günlük güncelleme abonelikleri sunacak şekilde yapılandırdınız: isteyebilirsiniz. Artık günlük güncellemelerinizi kendi mobil cihazınızda test edebilirsiniz.
Güncelleme kaydını özelleştirin (isteğe bağlı)
Öneri çipi ve Asistan tarafından işlenen günlük güncellemeye ek olarak güncellemeleri almak için kullanıcılarınızın günlük kendi iletişim kutusu ve kayıt istemini kullanabilirsiniz.
İsteğe bağlı günlük güncelleme özelliklerini işleyen bir Action'ın tam örneği için Actions on Google kullanıcı etkileşimi örneklerine göz atın (Node.js ve Java) içerir.
Görüşmenize özel bir günlük güncelleme kaydı istemi eklemek için şu talimatları uygulayın:
1. Kayıt istemi ekleyin
İstem istediğinizde görüşmeye diyalog ve öneri çipi ekleyin kullanıcıların günlük güncellemelere abone olmasını sağlar. Kullanıcı etkileşimde bulunduktan sonra bu istemleri sunun Böylece günlük çalışmalarınızın içeriğini anlayabilirler. güncellemelerine göz atın.
Aşağıdaki örnek kod, kullanıcının her gün beklenen en düşük sıcaklığı sunmalıdır:
app.intent('Daily Lowest Temperature', (conv, params) => { 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('Send daily updates')); });
@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 updates" }); return responseBuilder.build(); }
Aşağıdaki JSON dosyasının bir webhook yanıtını açıkladığını unutmayın.
{ "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" } ] } } } }
Aşağıdaki JSON dosyasının bir webhook yanıtını açıkladığını unutmayın.
{ "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" } ] } } } ] }
2. Güncelleme kaydını işleme
Kullanıcı, kaydınızı takip ettiğinde tetiklenen yeni bir amaç oluşturun
tıklayın. Bu yeni amacın karşılanmasında actions_intent_CONFIGURE_UPDATES
öğesini tetikleyin
yerleşik intent
şu parametrelere sahiptir:
intent
- Yapılandırdığınız güncelleme amacına ayarlayın.frequency
- "DAILY" olarak ayarlayın.
Aşağıdaki kod, "Günlük En Düşük Sıcaklık" için günlük güncellemeleri kaydeder amaç:
app.intent('Subscribe to Daily Updates', (conv) => { conv.ask(new RegisterUpdate({ intent: 'Daily Lowest Temperature', frequency: 'DAILY', })); });
conv.ask(new RegisterUpdate({ intent: 'Daily Lowest Temperature', frequency: 'DAILY', }));
@ForIntent("Subscribe to Daily Updates") public ActionResponse subscribeToDailyUpdates(ActionRequest request) { ResponseBuilder responseBuilder = getResponseBuilder(request); return responseBuilder.add(new RegisterUpdate() .setIntent("Daily Lowest Temperature") .setFrequency("DAILY")) .build(); }
ResponseBuilder responseBuilder = getResponseBuilder(request); return responseBuilder.add(new RegisterUpdate() .setIntent("Daily Lowest Temperature") .setFrequency("DAILY")) .build();
{ "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" } } } } ] } ] }
3. Sonucu işleme
Asistan görüşmenizi üstlenir ve kullanıcıya geri dönmelerini sağlar. Kayıt işlemi tamamlandığında, Asistan, kullanıcının isteğine bağlı olup olmadığını belirten bir parametreyle başarılı olup olmadığını kontrol edin.
Bu adıma yönelik talimatlar, Geliştirme için Dialogflow veya Actions SDK'sı.
Kayıt sonucunu işleyen bir intent oluşturmak için şu adımları uygulayın:
- Dialogflow konsolunda yeni bir amaç oluşturabilirsiniz.
actions_intent_REGISTER_UPDATE
etkinliğini ekleyin.- Intent için webhook karşılamayı etkinleştirin.
- Kaydet'i tıklayın.
registered
parametresini kullanın ve konuşmayı buna göre özetleyin.
app.intent('Confirm Daily Updates Subscription', (conv, params, registered) => { if (registered && registered.status === 'OK') { conv.close(`Ok, I'll start giving you daily updates.`); } else { conv.close(`Ok, I won't give you daily updates.`); } });
@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 responseBuilder.endConversation().build(); }
{ "payload": { "google": { "expectUserResponse": false, "richResponse": { "items": [ { "simpleResponse": { "textToSpeech": "Ok, I'll start giving you daily updates." } } ] } } } }
Sipariş karşılama kodunuza actions.intent.REGISTER.UPDATE
için işleme alma bilgilerini ekleyin.
yerleşik amaçtır. Sonuç için registered
parametresini kontrol edin.
ve konuşmayı buna göre
ayarlamanızı sağlar.
app.intent('actions.intent.REGISTER_UPDATE', (conv, params, registered) => { if (registered && registered.status === 'OK') { conv.close(`Ok, I'll start giving you daily updates.`); } else { conv.close(`Ok, I won't give you daily updates.`); } });
@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 responseBuilder.endConversation().build(); }
{ "expectUserResponse": false, "finalResponse": { "richResponse": { "items": [ { "simpleResponse": { "textToSpeech": "Ok, I'll start giving you daily updates." } } ] } } }
Güncellemeleri kişiselleştirin (isteğe bağlı)
Güncelleme amacınızı kişiselleştirmek için kullanıcılar kaydolurken özel parametreler ekleyin günlük güncellemeler. Güncelleme amacını gerçekleştirirken bu parametrelere başvurun o kullanıcı için günlük güncellemeyi özelleştirebilirsiniz.
Bu özelliğe ilişkin talimatlar, Geliştirme için Dialogflow veya Actions SDK'sı.
Güncelleme için özel parametreleri işleyecek bir Dialogflow varlığı tanımlayın, ardından parametrenin değerini, güncelleme amacınız için bir bağımsız değişken olarak aktarın. Dialogflow'da kişiselleştirilmiş güncellemeleri ayarlamak için aşağıdaki adımları uygulayın:
- Dialogflow konsolunda yeni bir varlık oluşturun.
- Parametrenizle alakalı birkaç giriş ve eş anlamlı ekleyin.
- Kaydet'i tıklayın, ardından güncelleme amacını açın.
- İşlemler ve parametreler bölümünde
actions.intent.CONFIGURE_UPDATES
değerini ayarlayın ekleyebilirsiniz. Aynı bölümde, yeni öğeyle aynı türde bir parametre ekleyin. - "Kaydı güncelle"yi açın
CONFIGURE_UPDATES
yerleşik niyetini işleyen bir. - İşlemler ve parametreler bölümünde gerekli bir parametreyi ekleyin ve türünü daha önce oluşturulan öğeye ayarlayın.
- Kayıt amacınızın karşılama kodunu, aşağıdakileri içeren bir
arguments
nesnesi içerecek şekilde güncelleyin: şu içerikte bulunuyorsunuz:name
- Dialogflow'da yapılandırılan parametrenizin adı.textValue
: Parametrenizin değeri.
Aşağıdaki kod, parametrenin değerini okur ve bu değeri güncelleme isteğinde:
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) { List<Argument> 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": "{}" } } ] }
Amacınızı yerine getirirken kullanıcıdan ek bilgi isteme sonra bilgileri, güncelleme amacınız için bir argüman olarak aktarın. Actions SDK'sında kişiselleştirilmiş güncellemeleri ayarlamak için aşağıdaki adımları uygulayın:
- Kullanıcıdan kullanmak istediğiniz bilgileri iste kişiselleştirme.
- "Kaydı güncelleme"niz için sipariş karşılama kodunuzda satın almanın
CONFIGURE UPDATES
işleyicisi birarguments
nesnesi içerir ve şu içerikte bulunuyorsunuz:name
: Bağımsız değişkeninizin adı.textValue
: Bağımsız değişken olarak iletilecek, kullanıcıdan alınan bilgiler.
Aşağıdaki kod, güncelleme kayıt isteğiyle birlikte bir bağımsız değişken gönderir:
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) { List<Argument> 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\":{}}" }
Kullanıcı günlük güncellemenizi çağırdığında güncelleme amacınız artık şunları içeriyor: Kayıt sırasında kullanıcı tarafından verilen değerleri içeren bağımsız değişkenler. Bunları kullan değerini kullanın.
Günlük güncellemeleri test edin
Mobil cihazda Google Asistan'ın yüklü olduğu bir cihazda günlük güncellemelerinizi test edin: İşleminizi oluşturmak için kullandığınız Google Hesabı. İşleminizi çağırma ve günlük güncellemelere abone ol. Ardından cihazınızın bildirimlerini etrafınızda kontrol edin. güncelleme zamanı.