جاوا اسکریپت سمت کلاینت

An example of the dialog asking the subscriber to link their subscription

با پیوند اشتراک، جاوا اسکریپت سمت مشتری تنها راه برای ایجاد ارتباط جدید بین PPID و حساب Google خواننده است. در یک صفحه پیکربندی شده، یک گفتگو به خواننده ارائه می شود که از آنها می خواهد اشتراک خود را پیوند دهند. پس از اینکه خواننده روی دکمه «ادامه با Google» کلیک کرد، می‌تواند حسابی را برای پیوند انتخاب کند و پس از تکمیل به صفحه پیکربندی‌شده بازگردانده شود.

مرتبط کردن PPID با حساب خواننده با استفاده از روش linkSubscription در swg.js انجام می شود. استفاده مشابه ویژگی قبلی Account Linking ( مثال ) است، اما به جای انتقال یک وعده، این روش یک شی حاوی PPID را می پذیرد.

نمونه های کد

این نمونه‌های کد سمت کلاینت نشان می‌دهند که چگونه می‌توان یک پیوند را راه‌اندازی کرد، یک پاسخ معتبر چگونه به نظر می‌رسد، و (به صورت اختیاری) چگونه از swg.js eventManager برای گوش دادن به رویدادهای تحلیلی و مسیریابی آنها بر اساس آن استفاده کرد.

گفتگوی پیوند اشتراک را شروع کنید

const result = await subscriptions.linkSubscription({publisherProvidedId:6789})

نمونه پاسخ

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

console.log(result) //{publisherProvidedId: 6789, success: true}

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

نمونه کامل Client-Side

<script
  async
  type="application/javascript"
  subscriptions-control="manual"
  src="https://news.google.com/swg/js/v1/swg.js">
</script>

<script>

  function linkSubscription(ppid) {
    self.SWG.push(async (subscriptions) => {
      try {
        const result = await subscriptions.linkSubscription({
          publisherProvidedId: ppid,
        })
        console.log(result)
      } catch(e) {
        console.log(e)
      }
    })
  }

  document.addEventListener('DOMContentLoaded', function () {
    (self.SWG = self.SWG || []).push(subscriptions => {
      subscriptions.init("PUBLICATION_ID");

      //Configure the event manager for analytics integration
      subscriptions.getEventManager().then(manager => {
        manager.registerEventListener((event) => {
            // Add code here to send the event to your analytics
            // sendToAnalytics(event);
          console.log(event);
        });
      });
    });

    document
      .querySelector("SELECTOR")
      .addEventListener('click', function(){
        linkSubscription(PPID)
      })
  });
</script>

یک شناسه مشتری OAuth ایجاد کنید

در حالی که یک سرویس گیرنده OAuth برای پیوند اشتراک مورد نیاز نیست، یک مشتری OAuth می تواند برای ایجاد لیست مجاز دامنه های مجاز برای پروژه شما استفاده شود. دامنه های مجاز فهرستی از دامنه هایی هستند که جاوا اسکریپت سمت سرویس گیرنده شما مجاز به برقراری تماس از آنهاست. احتمالاً انتشارات شما قبلاً دارای شناسه مشتری OAuth است که در مرکز ناشران برای استفاده با swg.js پیکربندی شده است.

  • اگر تماس‌های جاوا اسکریپت سمت سرویس گیرنده پیوند اشتراک شما از یک نام دامنه تأیید شده قبلی سرچشمه می‌گیرد، هیچ اقدامی لازم نیست.
  • اگر جاوا اسکریپت شما از یک نام دامنه جدید اجرا می شود، دستورالعمل های پیکربندی SwG OAuth Client ID را دنبال کنید.

آزمایش کردن

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

  1. برای استفاده در تولید، منابع مجاز می‌توانند از OAuth Client پیکربندی‌شده یا از فهرست دامنه‌های تأیید شده در تنظیمات انتشارات در مرکز ناشر باشد.
  2. برای استفاده از توسعه یا مرحله بندی، با یک دامنه غیرقابل تأیید (مثلاً میزبان محلی یا سرور غیر عمومی)، دامنه باید در سرویس گیرنده OAuth پیکربندی شده فهرست شود.

عیب یابی خطاها

رایج ترین مشکل هنگام آزمایش جاوا اسکریپت سمت سرویس گیرنده دریافت خطای 403 - Not Authorized هنگام تلاش برای اجرای جاوا اسکریپت است. برای حل این مشکل، مطمئن شوید که جاوا اسکریپت را از یک دامنه معتبر در Publisher Center اجرا می‌کنید، یا اینکه کد را روی میزبانی اجرا می‌کنید که در مبدا js مجاز مشتری OAuth مرتبط است.