به روز رسانی روزانه (Dialogflow)

کاربری که در به‌روزرسانی‌های روزانه یک Action در تلفن خود مشترک می‌شود

اگر Action شما هر روز ارزشی را برای کاربران فراهم می‌کند، با پیکربندی به‌روزرسانی‌های روزانه به کاربران یادآوری کنید که از آن استفاده کنند. وقتی کاربر مشترک به‌روزرسانی‌های روزانه Action شما می‌شود، یک اعلان فشاری دریافت می‌کند که می‌تواند برای فراخوانی یکی از مقاصد Action شما روی آن ضربه بزند.

تجربه یک کاربر از این به روز رسانی ها به شرح زیر است:

  1. کاربر یکی از مقاصد Action شما را که به عنوان به‌روزرسانی روزانه پیکربندی کرده‌اید، فراخوانی می‌کند.
  2. کاربر درخواستی را برای اشتراک در به روز رسانی های روزانه دنبال می کند. این درخواست در اواسط مکالمه یا به عنوان یک تراشه پیشنهاد وقتی مکالمه به پایان می رسد داده می شود.
  3. کاربر زمانی از روز را برنامه ریزی می کند که بخواهد به روز رسانی روزانه شما را دریافت کند و به روز رسانی شما را در Google Assistant ثبت می کند.
  4. هر روز در زمان برنامه ریزی شده خود، کاربر یک اعلان دستیار را در دستگاه تلفن همراه خود دریافت می کند.
  5. وقتی کاربر این اعلان را باز می‌کند، هدفی را که شما به‌عنوان به‌روزرسانی روزانه پیکربندی کرده‌اید، فراخوانی می‌کند و با Action شما تعامل دارد.

به‌طور پیش‌فرض، هنگامی که کاربر از Action شما با موفقیت خارج می‌شود، درخواست ثبت به‌روزرسانی روزانه به‌عنوان یک تراشه پیشنهاد ظاهر می‌شود. همچنین می توانید یک درخواست ثبت نام در اواسط مکالمه اضافه کنید یا به روز رسانی های کاربر را شخصی سازی کنید.

موارد استفاده کنید

به روز رسانی روزانه می تواند یک ابزار تعامل مفید باشد، اما نباید در هر Action گنجانده شود. هنگام تصمیم‌گیری برای اضافه کردن اشتراک‌های به‌روزرسانی روزانه به یک Action، این نکات را در نظر بگیرید:

  • مطمئن شوید که به‌روزرسانی‌های روزانه باعث می‌شود کاربر هر روز اطلاعات مفید و متفاوتی را ببیند. اگر هر بار ضربه زدن روی یک به‌روزرسانی روزانه منجر به همان درخواست شود، کاربر احتمالاً پس از چند روز اشتراک خود را لغو می‌کند.
  • مطمئن شوید که گفت و گوی شما برای کاربر شما منطقی است اگر مستقیماً به قصد به روز رسانی روزانه شما بپردازد. کاربر شما لزوماً از ابتدای مکالمه شروع نمی کند، بنابراین نباید از آنها انتظار داشت که زمینه زیادی داشته باشند.
  • قبل از اینکه از او بخواهید برای به‌روزرسانی‌های روزانه ثبت نام کند، مزایای Action خود را به کاربر نشان دهید. وقتی به کاربر امکان اشتراک داده می شود، باید فکر کند "من هر روز این محتوا را می خواهم".
  • کاربر را با پیشنهادات مکرر برای ثبت نام غرق نکنید. اشتراک به‌روزرسانی روزانه را بلافاصله پس از اینکه به کاربر نشان دادید در چه چیزی مشترک است، ارائه دهید و از تکرار پیشنهاد در زمینه‌های دیگر خودداری کنید.
  • پس از شروع به‌روزرسانی، مکالمه را کوتاه نگه دارید. اکثر به‌روزرسانی‌های روزانه باید فقط از یک پاسخ تشکیل شده باشند و سپس بدون نیاز به ورودی کاربر بسته شوند.

به روز رسانی های روزانه را تنظیم کنید

در Dialogflow کاوش کنید

برای وارد کردن نمونه به روز رسانی روزانه ما در Dialogflow روی Continue کلیک کنید. سپس، مراحل زیر را برای استقرار و آزمایش نمونه دنبال کنید:

  1. یک نام عامل وارد کنید و یک عامل Dialogflow جدید برای نمونه ایجاد کنید.
  2. پس از وارد کردن عامل، روی Go to agent کلیک کنید.
  3. از منوی پیمایش اصلی، به Fulfillment بروید.
  4. ویرایشگر درون خطی را فعال کنید، سپس روی Deploy کلیک کنید. ویرایشگر حاوی کد نمونه است.
  5. از منوی پیمایش اصلی، به Integrations بروید، سپس روی Google Assistant کلیک کنید.
  6. در پنجره مدال که ظاهر می‌شود، پیش‌نمایش خودکار تغییرات را فعال کنید و روی Test کلیک کنید تا شبیه‌ساز Actions باز شود.
  7. در شبیه ساز برای تست نمونه وارد Talk to my test app شوید!
ادامه

برای پیکربندی یکی از اهداف Action خود برای به‌روزرسانی‌های روزانه، این دستورالعمل‌ها را دنبال کنید:

1. یک هدف به روز رسانی آماده کنید

یکی از مقاصد Action خود را به عنوان یک هدف راه‌انداز پیکربندی کنید. این هدف امکان ارسال به روز رسانی روزانه برای کاربران را فراهم می کند. هنگامی که یک کاربر اعلان به روز رسانی روزانه خود را باز می کند، قصد شروع می شود و گفتگو از آنجا ادامه می یابد.

برای تعریف یک هدف راه‌اندازی در Dialogflow، موارد زیر را انجام دهید:

  1. در کنسول Dialogflow ، روی Integrations کلیک کنید.
  2. در بخش Google Assistant ، روی تنظیمات ادغام کلیک کنید.
  3. در بخش Discovery > Invocation ضمنی ، روی Add intent کلیک کنید و اگر قصد راه‌اندازی خود را قبلاً وجود ندارد، آن را انتخاب کنید.
  4. اگر از قبل فعال نشده باشد، تغییرات پیش‌نمایش خودکار را روشن کنید.
  5. روی Close کلیک کنید.

در Actions SDK، هدف به‌روزرسانی خود را به عنوان یک هدف راه‌اندازی در بسته Action تعریف کنید.

2. به روز رسانی را فعال کنید

برای روشن کردن به‌روزرسانی‌های روزانه برای هدف راه‌اندازی، موارد زیر را انجام دهید:

  1. در کنسول Actions ، به Develop > Actions بروید.
  2. هدف محرک خود را انتخاب کنید. اگر هدف شما در لیست نشان داده نمی‌شود، مطمئن شوید که به‌عنوان یک هدف راه‌انداز پیکربندی شده است و ادغام دستیار Dialogflow روی پیش‌نمایش خودکار تغییرات تنظیم شده است.
  3. به بخش تعامل کاربر بروید و Wid you like to offer updates daily to users را روشن کنید.
  4. عنوان محتوا را وارد کنید.
  5. روی ذخیره کلیک کنید.

اکنون Action خود را طوری پیکربندی کرده‌اید که اشتراک‌های به‌روزرسانی روزانه را برای یک هدف ارائه می‌کند. اکنون می توانید به روز رسانی های روزانه خود را در دستگاه تلفن همراه خود آزمایش کنید.

سفارشی کردن ثبت نام به روز رسانی (اختیاری)

علاوه بر تراشه پیشنهادات و جریان ثبت به‌روزرسانی روزانه با دستیار، کاربران را در به‌روزرسانی‌های روزانه با پیام گفتگو و ثبت نام خود مشترک کنید.

برای مثال کاملی از یک Action که ویژگی‌های آپدیت روزانه اختیاری را کنترل می‌کند، به نمونه‌های تعامل کاربر Actions on Google ( Node.js و Java ) مراجعه کنید.

برای افزودن درخواست ثبت به‌روزرسانی روزانه سفارشی به مکالمه خود، این دستورالعمل‌ها را دنبال کنید:

1. درخواست ثبت نام را اضافه کنید

وقتی می‌خواهید از کاربران بخواهید در به‌روزرسانی‌های روزانه مشترک شوند، گفتگو و یک تراشه پیشنهاد را به مکالمه اضافه کنید. پس از تعامل کاربر با قصد به‌روزرسانی شما، این درخواست‌ها را ارائه دهید تا محتوای به‌روزرسانی‌های روزانه شما را درک کنند.

کد مثال زیر از کاربر می‌خواهد که مشترک به‌روزرسانی‌های روزانه شود که کمترین دمای مورد انتظار را هر روز ارائه می‌دهند:

Node.js
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();
}
Dialogflow JSON

توجه داشته باشید که 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"
          }
        ]
      }
    }
  }
}
Actions SDK JSON

توجه داشته باشید که 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"
            }
          ]
        }
      }
    }
  ]
}

2. رسیدگی به ثبت نام به روز رسانی

یک هدف جدید تنظیم کنید که وقتی کاربر از درخواست ثبت نام شما پیروی می کند، فعال می شود. در تکمیل این هدف جدید، actions_intent_CONFIGURE_UPDATES هدف داخلی را با پارامترهای زیر فعال کنید:

  • intent - روی قصد به‌روزرسانی که پیکربندی کرده‌اید، تنظیم کنید.
  • frequency - روی " DAILY " تنظیم کنید.

کد زیر به‌روزرسانی‌های روزانه را برای هدف «پایین‌ترین دما» ثبت می‌کند:

Dialogflow Node.js
app.intent('Subscribe to Daily Updates', (conv) => {
  conv.ask(new RegisterUpdate({
    intent: 'Daily Lowest Temperature',
    frequency: 'DAILY',
  }));
});
Actions SDK Node.js
conv.ask(new RegisterUpdate({
  intent: 'Daily Lowest Temperature',
  frequency: 'DAILY',
}));
Dialogflow جاوا
@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();
}
Actions SDK Java
ResponseBuilder responseBuilder = getResponseBuilder(request);
return responseBuilder.add(new RegisterUpdate()
    .setIntent("Daily Lowest Temperature")
    .setFrequency("DAILY"))
    .build();
Dialogflow JSON
{
  "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"
            }
          }
        }
      }
    }
  }
}
Actions SDK JSON
{
  "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. نتیجه را مدیریت کنید

«دستیار» مکالمه شما را کنترل می‌کند و کاربر را در بقیه پیکربندی‌های به‌روزرسانی روزانه‌اش راهنمایی می‌کند. هنگامی که ثبت نام کامل شد، دستیار هدفی را با پارامتری راه اندازی می کند که نشان می دهد آیا ثبت نام موفقیت آمیز بوده است یا خیر.

بسته به اینکه از Dialogflow یا Actions SDK برای توسعه استفاده می کنید، دستورالعمل های این مرحله متفاوت است.

جریان گفتگو

برای ایجاد یک intent که نتیجه ثبت نام را کنترل می کند، این مراحل را دنبال کنید:

  1. در کنسول Dialogflow ، یک intent جدید ایجاد کنید.
  2. رویداد actions_intent_REGISTER_UPDATE را اضافه کنید.
  3. اجرای وب هوک را برای این هدف روشن کنید.
  4. روی ذخیره کلیک کنید.
در تحقق هدف، پارامتر registered را برای نتیجه بررسی کنید و مکالمه را بر این اساس بچرخانید.
Dialogflow Node.js
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.`);
  }
});
Dialogflow جاوا
@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();
}
Dialogflow JSON
{
  "payload": {
    "google": {
      "expectUserResponse": false,
      "richResponse": {
        "items": [
          {
            "simpleResponse": {
              "textToSpeech": "Ok, I'll start giving you daily updates."
            }
          }
        ]
      }
    }
  }
}
Actions SDK

در کد تکمیل خود، مدیریت برای intent داخلی actions.intent.REGISTER.UPDATE اضافه کنید. پارامتر registered را برای نتیجه بررسی کنید و مکالمه را بر اساس آن تغییر دهید.

Actions SDK Node.js
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.`);
  }
});
Actions SDK Java
@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();
}
Actions SDK JSON
{
  "expectUserResponse": false,
  "finalResponse": {
    "richResponse": {
      "items": [
        {
          "simpleResponse": {
            "textToSpeech": "Ok, I'll start giving you daily updates."
          }
        }
      ]
    }
  }
}

شخصی سازی به روز رسانی ها (اختیاری)

برای شخصی‌سازی هدف به‌روزرسانی، هنگام ثبت به‌روزرسانی‌های روزانه، پارامترهای سفارشی را اضافه کنید. وقتی قصد به‌روزرسانی را انجام می‌دهید، به این پارامترها اشاره کنید تا به‌روزرسانی روزانه را برای آن کاربر سفارشی کنید.

بسته به اینکه از Dialogflow یا Actions SDK برای توسعه استفاده می کنید، دستورالعمل های این ویژگی متفاوت است.

جریان گفتگو

یک موجودیت Dialogflow را برای کنترل پارامترهای سفارشی برای به‌روزرسانی تعریف کنید، سپس مقدار پارامتر را به عنوان آرگومان برای هدف به‌روزرسانی خود تحویل دهید. برای تنظیم به‌روزرسانی‌های شخصی‌شده در Dialogflow، مراحل زیر را انجام دهید:

  1. در کنسول Dialogflow ، یک موجودیت جدید ایجاد کنید.
  2. برخی از ورودی ها و مترادف های مرتبط با پارامتر خود را اضافه کنید.
  3. روی ذخیره کلیک کنید، سپس هدف به روز رسانی خود را باز کنید.
  4. در بخش Actions and Parameters ، actions.intent.CONFIGURE_UPDATES را به عنوان رویداد تنظیم کنید. در همان بخش، پارامتری با همان نوع موجودیت جدید اضافه کنید.
  5. هدف «به‌روزرسانی ثبت» را که هدف داخلی CONFIGURE_UPDATES را مدیریت می‌کند، باز کنید.
  6. در قسمت Actions and Parameters یک پارامتر مورد نیاز را اضافه کنید و نوع آن را روی موجودی که قبلا ایجاد شده است تنظیم کنید.
  7. کد تحقق هدف ثبت نام خود را به‌روزرسانی کنید تا شیء arguments با محتوای زیر را در بر گیرد:
    • name - نام پارامتر شما همانطور که در Dialogflow پیکربندی شده است.
    • textValue - مقدار پارامتر شما.

کد زیر مقدار پارامتر را می خواند و از آن در درخواست ثبت به روز رسانی استفاده می کند:

Dialogflow Node.js
app.intent('setup_update', (conv) => {
  conv.ask(new RegisterUpdate({
    intent: 'update_of_the_day',
    arguments: [
      {
        name: 'category',
        textValue: 'Daily_lowest_temperature',
      },
    ],
    frequency: 'DAILY',
  }));
});
Dialogflow جاوا
@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();
}
Dialogflow JSON
{
  "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

اطلاعات اضافی را از کاربر در تحقق هدف خود درخواست کنید، سپس اطلاعات را به عنوان استدلالی برای قصد به روز رسانی خود تحویل دهید. برای راه‌اندازی به‌روزرسانی‌های شخصی‌شده در Actions SDK، مراحل زیر را انجام دهید:

  1. اطلاعاتی را که می خواهید برای شخصی سازی استفاده کنید از کاربر بخواهید.
  2. در کد تکمیلی خود برای هدف "ثبت به‌روزرسانی" که CONFIGURE UPDATES را کنترل می‌کند، یک شی arguments با محتوای زیر را شامل می‌شود:
    • name - نامی برای استدلال شما.
    • textValue - اطلاعات کاربر که به عنوان آرگومان ارسال می شود.

کد زیر یک آرگومان را با درخواست ثبت به روز رسانی ارسال می کند:

Actions SDK Node.js
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',
    }));
  }
});
Actions SDK Java
@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();
}
Actions SDK JSON
{
  "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 که برای ساخت Action استفاده کردید، آزمایش کنید. Action خود را فراخوانی کنید و در به‌روزرسانی‌های روزانه مشترک شوید، سپس اعلان‌های دستگاهتان را در زمان به‌روزرسانی بررسی کنید.