بررسی اجمالی
کلاسی که پیاده سازی تلفن همراه Google Tag Manager (GTM) است.
استفاده از نمونه:
TAGContainer *container = [[TAGManager instance] openContainerById:myContainerId]; NSString *value = [container stringForKey:@"myKey"];
TAGDataLayer *dataLayer = [[TAGManager instance] dataLayer]; [dataLayer push:@{@"event": @"openScreen", @"screenName": @"Main Page"}];
کانتینر مجموعه ای از ماکروها، قوانین و برچسب ها است. این برنامه در برنامه GTM ( http://www.google.com/tagmanager ) ایجاد شده است و یک شناسه کانتینر به آن اختصاص داده شده است. این شناسه کانتینر همان شناسه ای است که در این API استفاده می شود.
کلاس TAGContainer روش هایی را برای بازیابی مقادیر ماکرو با توجه به نام ماکرو ارائه می دهد. روالهای booleanForKey: (TAGContainer) ، doubleForKey: (TAGContainer) ، int64ForKey: (TAGContainer) ، stringForKey: (TAGContainer) بسته به قوانین مرتبط با آن ماکرو در ظرف، مقدار فعلی را برای نام کلان مجموعه ارزش برمیگرداند.
به عنوان مثال، اگر کانتینر شما دارای یک ماکرو جمع آوری مقدار با کلید "سرعت" است که مقدار آن 32 است و قانون فعال کننده زبان "en" است. و یک ماکرو جمعآوری مقادیر دیگر با کلید "سرعت" که مقدار آن 45 است و قانون فعال کننده زبان "en" نیست، سپس فراخوانی زیر را انجام دهید:
[container longForKey:@"speed"]
اگر زبان فعلی دستگاه انگلیسی باشد 32 یا در غیر این صورت 45 را برمی گرداند.
لایه داده یک نقشه است که اطلاعات عمومی در مورد برنامه را در خود دارد. کلاس TAGDataLayer روش هایی را برای فشار دادن و بازیابی داده ها از لایه داده ارائه می دهد. با فشار دادن یک کلید event
به لایه داده، برچسب هایی که با این رویداد مطابقت دارند فعال می شوند.
یک نسخه اولیه از کانتینر با برنامه همراه است. باید به عنوان یک منبع در بسته با نام containerId
قرار گیرد که در آن containerId
همان شناسه کانتینری است که در این API استفاده می کنید. وقتی با openContainerById:callback: (TAGManager) تماس میگیرید، کانتینر با قوانین/برچسبها/ماکروهای همراه بازگردانده میشود. شما کانتینر را در رابط کاربری ایجاد میکنید و از دکمه دانلود برای دانلود آن استفاده میکنید.
می توانید ظرف را در رابط کاربری تغییر دهید و نسخه جدیدی را منتشر کنید. در این صورت، دفعه بعد که اپلیکیشن موبایل کانتینر را از شبکه رفرش کند (در حال حاضر هر 12 ساعت)، آن نسخه جدید را دریافت خواهد کرد. وقتی یکی از روال های دریافت را فراخوانی می کنید، مقدار با استفاده از جدیدترین قوانین محاسبه می شود.
ظرف بارگیری شده به صورت محلی ذخیره می شود. وقتی با openContainerById:callback: (TAGManager) تماس میگیرید، ابتدا کانتینر پیشفرض را بارگیری میکند و سپس هر کانتینر ذخیرهشده را بهصورت ناهمزمان بارگیری میکند. اگر هیچ کدام پیدا نشد یا اگر قدیمی تر از 12 ساعت باشد، سعی می کند نسخه جدیدتری را از شبکه بازیابی کند. میتوانید با ارسال یک TAGContainerCallback به openContainerById:callback: (TAGManager) وضعیت آن بارهای ناهمزمان را بیابید.
گاهی اوقات ممکن است بخواهید تا زمانی که یک کانتینر غیرپیشفرض در دسترس نباشد، یا تا زمانی که یک کانتینر تازه در دسترس نباشد، مسدود کنید. میتوانید این کار را با استفاده از پاسخهای تماس در openContainerById:callback: (TAGManager) یا استفاده از TAGContainerOpener انجام دهید.
وقتی کارتان با کانتینر تمام شد، با بستن (TAGContainer) تماس بگیرید.
توابع اعضای عمومی | |
( TAGContainer *) | - openContainerById:callback: |
یک ظرف را برمی گرداند. | |
( TAGContainer *) | - getContainerById: |
ظرف مرتبط با containerId داده شده را برمی گرداند. اگر ظرف از قبل باز نشده باشد، nil برمی گردد. | |
(بول) | - پیش نمایشWithUrl: |
برنامه را با URL ورودی پیشنمایش میکند. | |
(خالی) | - ارسال |
هر گونه ترافیک شبکه معلق تولید شده توسط برچسب ها (پیکسل های دلخواه، بیکن های تجزیه و تحلیل و غیره) را ارسال می کند. | |
(خالی) | - dispatchWithCompletion Handler: |
ترافیک شبکه معلق بعدی را در صف ارسال می کند، و هنگامی که درخواست ارسال شد (kTAGDispatchGood را برمی گرداند) یا یک خطا ایجاد شد (kTAGDispatchError برمی گرداند)، completionHandler را فراخوانی می کند. | |
توابع اعضای عمومی استاتیک | |
( TAGManager *) | + نمونه |
نمونه تکی کلاس TAGManager را دریافت می کند و در صورت لزوم آن را ایجاد می کند. | |
خواص | |
شناسه< TAGLogger > | متمرکز ساز |
لاگر مورد استفاده برای Google Tag Manager SDK. | |
TAGMode Refresh | حالت refresh |
حالت تازهسازی مورد استفاده برای Google Tag Manager SDK. | |
TAGDataLayer * | لایه داده |
فشار فراخوانی: روش (TAGDataLayer) برای فشار دادن رویدادها و سایر داده ها. | |
NSTimeInterval | فاصله ارسال |
اگر این مقدار مثبت باشد، اطلاعات ردیابی به صورت خودکار در هر ثانیه ارسال می شود. |
مستندات عملکرد اعضا
- ( TAGContainer *) openContainerById: | (NSString *) | شناسه کانتینر | |
پاسخ به تماس: | (id< TAGContainerCallback >) | پاسخ به تماس | |
یک ظرف را برمی گرداند.
معمولاً کانتینر برگشتی خالی است، اما بارگیری به صورت ناهمزمان اتفاق میافتد، بنابراین کانتینر برگشتی ممکن است قبل از بازگرداندن، پس از بازگرداندن، تازهسازی شود، یا اگر مثلاً در طول عمر، اتصال شبکه وجود نداشته باشد، ممکن است هرگز رفرش نشود. از ظرف
هنگامی که موارد مختلفی برای کانتینر اتفاق می افتد، Callback فراخوانی می شود. حداقل، openContainerById:callback: سعی می کند نسخه ذخیره شده کانتینر را بارگیری کند. اگر نسخه ذخیره شده ای وجود نداشته باشد، یا اگر نسخه ذخیره شده قدیمی باشد، سعی می شود از شبکه بارگیری شود.
اگر openContainerById:callback: برای بار دوم برای یک containerId
معین فراخوانی شود، nil
برگردانده می شود مگر اینکه ظرف باز شده قبلی قبلاً بسته شده باشد.
- مولفه های:
شناسه کانتینر شناسه کانتینر برای باز کردن. پاسخ به تماس شیئی که متدهای مختلف آن در حین بارگذاری فراخوانی خواهند شد. توجه داشته باشید که متدها ممکن است از رشته های مختلف فراخوانی شوند. علاوه بر این، آنها ممکن است قبل از بازگرداندن openContainerById:callback: فراخوانی شوند.
- برمی گرداند:
- ظرف باز شده
- ( TAGContainer *) getContainerById: | (NSString *) | شناسه کانتینر |
ظرف مرتبط با containerId
داده شده را برمی گرداند. اگر ظرف از قبل باز نشده باشد، nil
برمی گردد.
- (BOOL) previewWithUrl: | (NSURL *) | آدرس اینترنتی |
برنامه را با URL ورودی پیشنمایش میکند.
آدرس اینترنتی معتبر باید با موارد زیر شروع شود:
tagmanager.c.<app_name>://preview/p?id=
که در آن <app_name> نام برنامه است.
- مولفه های:
آدرس اینترنتی آدرس پیش نمایش.
- برمی گرداند:
- اگر نشانی اینترنتی یک نشانی اینترنتی پیشنمایش معتبر tagmanager باشد، بله.
+ ( TAGManager *) نمونه |
نمونه تکی کلاس TAGManager را دریافت می کند و در صورت لزوم آن را ایجاد می کند.
- برمی گرداند:
- نمونه تکی TAGManager .
- (باطل) اعزام |
هر گونه ترافیک شبکه معلق تولید شده توسط برچسب ها (پیکسل های دلخواه، بیکن های تجزیه و تحلیل و غیره) را ارسال می کند.
- (باطل) dispatchWithCompletionHandler: | (TAGDispatch Result) | Completion Handler |
ترافیک شبکه معلق بعدی را در صف ارسال می کند، و هنگامی که درخواست ارسال شد (kTAGDispatchGood را برمی گرداند) یا یک خطا ایجاد شد (kTAGDispatchError برمی گرداند)، completionHandler را فراخوانی می کند.
اگر اتصال شبکه وجود نداشته باشد یا داده ای برای ارسال وجود نداشته باشد، kTAGDispatchNoData برگردانده می شود.
فراخوانی این متد با nil completionHandler همانند فراخوانی dispatch است.
این روش را می توان برای واکشی داده های پس زمینه در iOS 7.0 یا جدیدتر استفاده کرد.
عاقلانه است که وقتی برنامه در حال خروج است، این را فراخوانی کنید تا هرگونه اطلاعات ردیابی ارسال نشده ارسال شود.
اسناد ملکی
لاگر مورد استفاده برای Google Tag Manager SDK.
بهطور پیشفرض، Google Tag Manager پیامهای خطا/هشدار را ثبت میکند و پیامهای اطلاعات/اشکالزدایی/کلامی را نادیده میگیرد. با تنظیم این ویژگی می توانید از لاگر سفارشی شده خود استفاده کنید.
- ( TAGRefreshMode ) refreshMode [read, write, assign] |
حالت تازهسازی مورد استفاده برای Google Tag Manager SDK.
تنظیم این روی kTAGRefreshModeDefaultContainer به روش refresh اجازه میدهد که فقط از ظرف پیشفرض برای اهداف توسعه استفاده کند. پیش فرض kTAGRefreshModeStandard است.
- ( TAGDataLayer *) dataLayer [read, assign] |
فشار فراخوانی: روش (TAGDataLayer) برای فشار دادن رویدادها و سایر داده ها.
- (NSTimeInterval) dispatchInterval [read, write, assign] |
اگر این مقدار مثبت باشد، اطلاعات ردیابی به صورت خودکار در هر ثانیه ارسال می شود.
در غیر این صورت، اطلاعات ردیابی باید به صورت دستی از طریق تماس با اعزام ارسال شود.
بهطور پیشفرض، روی «120» تنظیم شده است، که نشان میدهد اطلاعات ردیابی بهطور خودکار هر 120 ثانیه ارسال میشود.