Google Sheets

أضف صفًا في Google Sheets لكل عميل محتمل عبر تطبيق ويب صغير في Apps Script: الإعداد كاملًا، وحل المشكلتين الأكثر شيوعًا.

يكتب تفسير بوب أب في جدولك عبر سكربت صغير تضيفه أنت إلى الجدول. السكربت «تطبيق ويب» له عنوانه الخاص؛ يرسل تفسير كل عميل محتمل إلى ذلك العنوان فيضيف السكربت الصف. يستغرق الإعداد نحو ثلاث دقائق.

ما تحتاجه

  • حساب Google وجدول Google Sheets الذي تذهب إليه العملاء، مع صلاحية تعديل الجدول.
  • في تفسير بوب أب: دور يسمح بإدارة التكاملات.
  • أن تكون مسجّلًا بحساب Google واحد فقط في المتصفح الذي تستخدمه للإعداد. مع عدة حسابات يفتح Google غالبًا Apps Script بالحساب الخطأ.

1. أضف السكربت إلى جدولك

  1. افتح جدول Google ثم Extensions > Apps Script.
  2. احذف الموجود والصق هذا السكربت ثم احفظ. يظهر السكربت في التطبيق مع زر نسخ، وهو هنا:
function doPost(e) {
  var lock = LockService.getScriptLock();
  lock.waitLock(20000);
  try {
    var row = JSON.parse(e.postData.contents).row || {};
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
    var last = sheet.getLastColumn();
    var headers = last > 0 ? sheet.getRange(1, 1, 1, last).getValues()[0].map(String) : [];
    Object.keys(row).forEach(function (key) {
      if (headers.indexOf(key) === -1) headers.push(key);
    });
    sheet.getRange(1, 1, 1, headers.length).setValues([headers]);
    sheet.appendRow(headers.map(function (key) {
      return row[key] === undefined ? '' : row[key];
    }));
    return answer({ ok: true });
  } catch (error) {
    return answer({ ok: false, error: String(error) });
  } finally {
    lock.releaseLock();
  }
}

function answer(body) {
  return ContentService.createTextOutput(JSON.stringify(body))
    .setMimeType(ContentService.MimeType.JSON);
}
  1. اضغط Deploy > New deployment واختر النوع Web app.
  2. اجعل "Execute as" على Me و"Who has access" على Anyone، ثم Deploy واسمح بالوصول عندما يطلب Google.
  3. انسخ رابط Web app (ينتهي بـ /exec) والصقه في الأسفل.

رابط الجدول نفسه لن يعمل. بعد الربط استخدم "إرسال عميل تجريبي" لترى صفًا جديدًا.

2. اربطه في تفسير بوب أب

  1. افتح التكاملات وابحث عن Google Sheets واضغط ربط.
  2. الصق رابط تطبيق الويب في خانة «Apps Script web app URL». يبدأ بـ https://script.google.com/macros/s/‎ وينتهي بـ ‎/exec‎.
  3. اضغط ربط.
  4. حدّد الحملات التي ترسل عملاءها إلى الجدول واضغط حفظ الحملات.
  5. في بطاقة Google Sheets اضغط إرسال عميل تجريبي.

النتيجة المتوقعة

يظهر صف جديد في التبويب الأول من جدولك خلال ثوانٍ. وفي المرة الأولى يكتب السكربت صف العناوين أيضًا. يقول التطبيق: تم تسليم العميل التجريبي. تحقق من وصوله.

الأعمدة

ينشئ السكربت عمودًا لكل قيمة ويضيف عمودًا جديدًا تلقائيًا عند ظهور قيمة جديدة:

  • capturedAt وemail وfirstName وlastName وphone وcompany
  • consent (yes أو no) وcouponCode
  • campaign وsite وpageUrl وdevice وcountry
  • utmSource وutmCampaign
  • عمود لكل سؤال من أسئلة نموذجك الخاصة باسم معرّف الحقل.

يمكنك إعادة ترتيب الأعمدة في الجدول. لا تغيّر أسماء خلايا العناوين: يجد السكربت العمود بعنوانه، وتغيير العنوان يجعله يضيف عمودًا جديدًا.

القيمة التي تبدأ بـ = أو + أو - أو @ (كرقم هاتف مثل ‎+966…‎) تُحفظ كنص حتى لا يقرأها الجدول كمعادلة.

المشكلة 1: «Access blocked: Authorization Error»

عند نشر السكربت أو عندما يطلب Google السماح بالوصول يعرض Google صفحة كهذه بدلًا من ذلك:

Access blocked: Authorization Error
The OAuth client was not found.
Error 401: invalid_client

لماذا يحدث

هذه الرسالة من Google، قبل أن يكون لتفسير أي دور. كل مشروع Apps Script مرتبط بمشروع Google Cloud في الخلفية، وهنا ذلك المشروع مفقود أو معطوب فلا يستطيع Google عرض شاشة الأذونات. يحدث غالبًا عندما أُنشئ السكربت بحساب Google غير الحساب المالك للجدول، أو نُسخ من مكان آخر، أو غُيّر مشروع Cloud الخاص به أو حُذف.

الحل

  1. سجّل الخروج من كل حسابات Google في المتصفح، ثم سجّل الدخول بحساب واحد فقط: الحساب المالك للجدول. نافذة خاصة بذلك الحساب وحده مناسبة.
  2. افتح الجدول نفسه واختر Extensions > Apps Script من قائمة الجدول. لا تبدأ من script.google.com ولا تُعد استخدام مشروع سكربت قديم.
  3. يفتح مشروع جديد. احذف ما فيه والصق السكربت أعلاه واحفظ.
  4. اضغط Deploy > New deployment، واختر النوع Web app، واضبط «Execute as» على Me و«Who has access» على Anyone، واضغط Deploy.
  5. يطلب Google الآن تفويض السكربت. اختر حسابك. إذا قال Google إن التطبيق غير موثّق فافتح Advanced وتابع إلى المشروع؛ فهو سكربتك أنت.
  6. انسخ رابط تطبيق الويب الجديد واستخدمه في تفسير بوب أب.

إذا كان لا بد من إبقاء مشروع السكربت الحالي: افتحه واضغط Project Settings (الترس) وانظر إلى «Google Cloud Platform (GCP) Project». أعده إلى المشروع الافتراضي، أو إلى مشروع Cloud تملكه وفيه شاشة موافقة OAuth مُعدّة. السكربت الجديد أسرع لمعظم الناس.

المشكلة 2: العملاء يحملون «فشل» لـ Google Sheets

الجدول مربوط، ومع ذلك يحمل العملاء فشل في قائمة العملاء، أو لا يصل العميل التجريبي. افتح عميلًا: تحت أين وصل هذا العميل وبعد ردّت الأداة: تقرأ:

Google asked for a sign-in, so the web app is not open to Tafsee. In Apps Script open Deploy > Manage deployments, set "Who has access" to Anyone, and deploy again.

لماذا يحدث

نُشر تطبيق الويب و«Who has access» مضبوط على «Only myself» أو على أشخاص مؤسستك. تفسير غير مسجّل في حسابك على Google، فيردّ Google بصفحة تسجيل الدخول بدل تشغيل السكربت. وإعادة إرسال العميل نفسه ستحصل على الرد نفسه، ولذلك يعلّمه تفسير بالفشل فورًا ولا يواصل المحاولة.

الحل

  1. افتح الجدول ثم Extensions > Apps Script.
  2. اضغط Deploy > Manage deployments.
  3. اختر نشر تطبيق الويب واضغط القلم لتعديله.
  4. اضبط «Execute as» على Me.
  5. اضبط «Who has access» على Anyone.
  6. تحت Version اختر New version.
  7. اضغط Deploy.
  8. قارن رابط تطبيق الويب بالرابط الذي لصقته في تفسير بوب أب. تعديل النشر بهذه الطريقة يُبقي الرابط نفسه. أما إذا أنشأت نشرًا جديدًا فالرابط مختلف: اربط Google Sheets مجددًا بالرابط الجديد.
  9. في تفسير بوب أب افتح الشرائح واضغط الفاشلة فقط وحدّد العملاء واضغط أعد الإرسال. راجع تسليم العملاء المحتملين وإعادة الإرسال.

«Anyone» تعني أن أي شخص لديه عنوان تطبيق الويب يستطيع إضافة صف عبر السكربت. ولا تجعل الجدول نفسه عامًّا: لا أحد يستطيع قراءة جدولك أو فتحه بذلك العنوان. احتفظ بالعنوان لنفسك.

قد يضبط مسؤول Google Workspace الحساب بحيث لا يتوفر خيار «Anyone». إذا كان الخيار مفقودًا فاسأل مسؤولك، أو أنشئ الجدول والسكربت بحساب Google شخصي.

رسائل أخرى وما تفعله

  • «That is the link of the sheet itself.» لصقت عنوان الجدول (docs.google.com). الصق رابط تطبيق الويب من Deploy؛ ينتهي بـ ‎/exec‎.
  • «That is the test link (/dev), which only works for you.» استخدم الرابط من Deploy > Manage deployments؛ ينتهي بـ ‎/exec‎.
  • «Google could not find that web app.» أُرشف النشر أو الرابط ناقص. انسخ الرابط مجددًا من Deploy > Manage deployments.
  • «The Apps Script has no doPost function.» لم يُلصق السكربت أو يوجد سكربت آخر. الصق السكربت من هذه الصفحة ثم انشر نسخة جديدة.
  • «The Apps Script could not add the row: …» اشتغل السكربت وأبلغ عن خطأ يأتي بعد النقطتين. الأكثر شيوعًا أن الحساب الذي يعمل به السكربت لم يعد يستطيع تعديل الجدول.
  • «The Apps Script stopped with an error.» افتح السكربت وانظر إلى Executions في الجانب لمعرفة الخطأ، وأصلحه وانشر نسخة جديدة.
  • غيّرت السكربت ولم يتغير شيء: يستمر تطبيق الويب في تشغيل النسخة المنشورة. بعد كل تغيير انشر نسخة جديدة (Deploy > Manage deployments > تعديل > New version > Deploy).
  • الصفوف تذهب إلى تبويب خاطئ: يكتب السكربت في التبويب الأول من الملف. اسحب التبويب الذي تريده إلى الموضع الأول.
  • لا توجد حملة ترسل العملاء إلى هنا بعد، لذلك لن يصل شيء. اضغط اختيار الحملات.

مواضيع ذات صلة

آخر تحديث: ١٢‏/١٠‏/٢٠٢٦

توليد العملاء

تفسير بوب أب

نوافذ منبثقة وعجلة حظ وعدادات تنازلية وعروض عند الخروج لأي موقع أو متجر — بالعربية أصلًا وبالإنجليزية.

⚡ عربي أصيل وأسعار لا تُحسب بالمشاهداتدعم ثنائي اللغةخطة مجانية وتجربة 14 يومًا
+966 58 267 6110+966 58 267 6110