WebViews میں رضامندی: نیٹیو اور ویب رضامندی کو ہم آہنگ رکھنا

دوہرے بینر کا مسئلہ

بہت سی ایپس جزوی طور پر نیٹیو اور جزوی طور پر ویب ہوتی ہیں۔ ایک گیم اپنا اسٹور، خبریں یا مدد کے صفحات WebView میں دکھاتی ہے؛ ایک یوٹیلیٹی ایپ اپنی ویب سائٹ کے مضامین رینڈر کرتی ہے؛ ایک ہائبرڈ ایپ اپنے زیادہ تر انٹرفیس کو ویب مواد میں لپیٹتی ہے۔ ہر طرف کا اپنا رضامندی کا میکانزم ہے: نیٹیو ایپ ان ایپ CMP یا SDK استعمال کرتی ہے، اور ویب صفحات ویب CMP لوڈ کرتے ہیں۔ جب تک انہیں جوڑا نہ جائے، صارف سے دو بار پوچھا جاتا ہے، ایک جگہ کیے گئے انتخاب دوسری جگہ نظر انداز ہوتے ہیں، اور WebView کے اندر سے اشتہاری درخواستیں غلط سگنلز کے ساتھ جاتی ہیں۔

یہ گائیڈ بتاتی ہے کہ نیٹیو اور ویب رضامندی کو کیسے ہم آہنگ کیا جائے، تاکہ صارفین ایک بار جواب دیں اور ہر اشتہاری درخواست وہی فیصلہ لے کر جائے۔

ہر طرف رضامندی کہاں محفوظ کرتی ہے

نیٹیو

IAB TCF بتاتا ہے کہ ان ایپ CMP رضامندی کیسے محفوظ کرے: iOS پر NSUserDefaults میں اور Android پر SharedPreferences میں، معیاری کلیدوں جیسے IABTCF_TCString، IABTCF_gdprApplies اور IABTCF_PurposeConsents کے ساتھ۔ اشتہاری SDKs یہ کلیدیں براہِ راست پڑھتے ہیں۔ IAB GPP IABGPP_ سابقے والی ملتی جلتی کلیدیں بیان کرتا ہے، جیسے IABGPP_HDR_GppString۔

ویب

ویب CMP عموماً اپنا فیصلہ سائٹ کے ڈومین کے لیے فرسٹ پارٹی کوکیز یا لوکل اسٹوریج میں محفوظ کرتا ہے، اور اسے __tcfapi اور __gpp JavaScript فنکشنز کے ذریعے سامنے لاتا ہے۔ صفحے کے اشتہاری ٹیگز انہی فنکشنز کو کال کرتے ہیں، نیٹیو اسٹوریج کو نہیں۔

خلا

WebViews کی اپنی کوکی اور اسٹوریج کی جگہ ہوتی ہے، ڈیوائس براؤزر سے الگ اور ایپ کی نیٹیو ترجیحات سے الگ۔ iOS پر، غیر مستقل ڈیٹا اسٹور استعمال کرنے والا WKWebView بند ہونے پر سب کچھ بھول جاتا ہے۔ دونوں طرف کے درمیان کچھ نہیں بہتا جب تک آپ اسے خود نہ بنائیں۔

سچائی کا ایک ہی ذریعہ چنیں

پہلا فیصلہ یہ ہے کہ رضامندی کا مالک کون سا فریق ہے۔ زیادہ تر ایپس کے لیے جواب نیٹیو CMP ہے، کیونکہ:

ویب فرسٹ ان ہائبرڈ ایپس کے لیے معقول ہو سکتا ہے جن کا پورا انٹرفیس ویب مواد ہے، لیکن اس صورت میں آپ کو نیٹیو SDKs کے لیے فیصلہ نیٹیو اسٹوریج میں واپس لکھنا ہوگا۔

نیٹیو رضامندی کو WebView میں پہنچانا

جب نیٹیو سچائی کا ذریعہ ہو تو WebView کو وہی فیصلہ دیکھنا ہوگا۔ عام پیٹرنز:

  1. __tcfapi کا نفاذ انجیکٹ کریں۔ صفحے کے اسکرپٹس چلنے سے پہلے، ایک چھوٹا اسکرپٹ انجیکٹ کریں جو __tcfapi (اور ضرورت ہو تو __gpp) متعین کرے اور کالز کا جواب TC اسٹرنگ اور نیٹیو اسٹوریج سے پڑھی گئی قدروں سے دے۔ پھر صفحے کے اشتہاری ٹیگز معیاری API کے ذریعے نیٹیو فیصلہ حاصل کرتے ہیں۔
  2. ویب بینر کو دبائیں۔ ویب CMP کو ترتیب دیں کہ جب صفحہ آپ کی ایپ کے اندر لوڈ ہو تو وہ چھپا رہے، مثلاً کوئری پیرامیٹر یا آپ کے کنٹرول والے کسٹم یوزر ایجنٹ ٹوکن کی بنیاد پر۔ ورنہ صارف دوسرا بینر دیکھتا ہے۔
  3. لوڈ پر اسٹرنگ پاس کریں۔ کچھ ویب CMPs ابتدا کے وقت موجودہ رضامندی اسٹرنگ قبول کر کے اپنا سکتے ہیں۔ معاون طریقوں کے لیے اپنے ویب CMP کی دستاویزات دیکھیں۔

جو بھی پیٹرن استعمال کریں، یقینی بنائیں کہ جب صارف نیٹیو سیٹنگز اسکرین میں اپنا انتخاب بدلے تو انجیکٹ کی گئی قدریں اپ ڈیٹ ہوں، صرف ایپ کے اگلے لانچ پر نہیں۔

ویب رضامندی کو واپس نیٹیو تک پہنچانا

اگر صارفین WebView کے اندر رضامندی بدل سکتے ہیں، مثلاً پرائیویسی سیٹنگز کے صفحے سے، تو ایپ کو اس کا علم ہونا چاہیے۔ JavaScript برج استعمال کریں: iOS پر میسج ہینڈلر یا Android پر JavaScript انٹرفیس۔ ویب کی طرف __tcfapi('addEventListener', ...) سے سنتی ہے اور نئی اسٹرنگ نیٹیو کوڈ کو بھیجتی ہے، جو معیاری کلیدیں لکھتا ہے۔ لکھنے سے پہلے WebView سے آنے والے ان پٹ کی توثیق کریں؛ صرف اپنے مواد کے پیغامات قبول کریں۔

WebViews کے اندر اشتہارات

WebView میں رینڈر ہونے والے اشتہارات ویب اشتہارات ہیں۔ وہ رضامندی صفحے سے پڑھتے ہیں، نیٹیو اسٹوریج سے نہیں، جب تک اشتہاری SDK دونوں کو جوڑنے کا طریقہ نہ دے۔ مثلاً Google کا Mobile Ads SDK WebViews رجسٹر کرنے کی API دیتا ہے تاکہ ان کے اندر کے اشتہارات ایپ کے سگنلز استعمال کر سکیں؛ اپنے SDK کی موجودہ دستاویزات دیکھیں۔ ہر صورت میں ٹیسٹ سے تصدیق کریں کہ WebView سے اشتہاری درخواستیں وہی TC یا GPP اسٹرنگ لے کر جاتی ہیں جو نیٹیو اشتہاری درخواستیں۔

ٹیسٹنگ چیک لسٹ

اہم نکات

← بdelays delays سب پڑھیں →