پرش به مطلب اصلی

ارسال اطلاعات Callback

Callback هایی راه‌اندازی کنید تا کد خودتان را اجرا کنید وقتی Adtrace SDK اطلاعات را به ادتریس ارسال می‌کند یا attribution تغییر می‌کند.

در iOS، اکثر callback ها از پروتکل اختیاری AdtraceDelegate استفاده می‌کنند. delegate را روی instance ADTConfig خود قبل از فراخوانی [Adtrace appDidLaunch:] / Adtrace.appDidLaunch(...) ثبت کنید.

نوع Callbackمکانیزمزمان اجرا
AttributionAdtraceDelegateبعد از اینکه SDK داده‌های attribution نهایی یا به‌روز را دریافت می‌کند
موفقیت / شکست رویدادAdtraceDelegateبعد از اینکه SDK سعی می‌کند یک بسته رویداد ارسال کند
موفقیت / شکست SessionAdtraceDelegateبعد از اینکه SDK سعی می‌کند یک بسته Session ارسال کند
Deferred deep linkAdtraceDelegateقبل از باز کردن deferred deep link توسط SDK. به Deep linking مراجعه کنید
Delegate در مقابل پارامترهای URL callback

این صفحه callback های delegate را در کد اپ شما پوشش می‌دهد. برای داده key-value که به URL های callback در هر Session و رویداد ضمیمه می‌شوند، به تنظیم پارامترهای callback Session مراجعه کنید.

مهم

باید delegate را قبل از مقداردهی اولیه SDK تنظیم کنید.

یک callback موفق به این معنی است که SDK بسته را ارسال کرده. به این معنی همیشه نیست که داده در آمار پنل نمایش داده می‌شود. رویدادها فقط بعد از اینکه install با موفقیت برای آن دستگاه ردیابی شده باشد در پنل نمایش داده می‌شوند.

راه‌اندازی delegate

۱. پذیرفتن AdtraceDelegate

AppDelegate.h
@interface AppDelegate : UIResponder <UIApplicationDelegate, AdtraceDelegate>
@end

۲. ثبت delegate روی ADTConfig

setDelegate: را قبل از appDidLaunch فراخوانی کنید:

AppDelegate.m
NSString *appToken = @"{YourAppToken}";
NSString *environment = ADTEnvironmentSandbox;
ADTConfig *adtraceConfig = [ADTConfig configWithAppToken:appToken
environment:environment];
[adtraceConfig setDelegate:self];

[Adtrace appDidLaunch:adtraceConfig];

۳. پیاده‌سازی متدهای delegate مورد نیاز

فقط متدهای اختیاری که به آن‌ها اهمیت می‌دهید را پیاده‌سازی کنید. متدهای پیاده‌سازی نشده صرفاً فراخوانی نمی‌شوند.

Callback های Attribution

یک callback delegate ثبت کنید تا وقتی attribution tracker تغییر می‌کند اطلاع داده شوید. SDK نمی‌تواند attribution را به صورت synchronous فراهم کند چون از چندین منبع می‌آید.

برای خواندن attribution در صورت تقاضا (بدون انتظار برای تغییر)، به دریافت اطلاعات attribution مراجعه کنید.

متد delegate

- (void)adtraceAttributionChanged:(nullable ADTAttribution *)attribution;

SDK این متد را بعد از دریافت داده‌های attribution نهایی فراخوانی می‌کند. آن را روی کلاس منطبق با AdtraceDelegate خود پیاده‌سازی کنید.

مثال

- (void)adtraceAttributionChanged:(ADTAttribution *)attribution {
NSLog(@"Tracker token: %@", attribution.trackerToken);
NSLog(@"Network: %@", attribution.network);
}

property های ADTAttribution

هر مقداری که برای کاربر تنظیم نشده باشد به عنوان nil برگردانده می‌شود.

Propertyنوعتوضیح
trackerTokenNSStringتوکن tracker که دستگاه در حال حاضر به آن attributed است.
trackerNameNSStringنام tracker که دستگاه در حال حاضر به آن attributed است.
networkNSStringشبکه‌ای که دستگاه در حال حاضر به آن attributed است.
campaignNSStringکمپینی که دستگاه در حال حاضر به آن attributed است.
adgroupNSStringad group ای که دستگاه در حال حاضر به آن attributed است.
creativeNSStringcreative ای که دستگاه در حال حاضر به آن attributed است.
clickLabelNSStringclick label که روی install tag شده.
adidNSStringشناسه یکتای دستگاه ادتریس.
costTypeNSStringمدل قیمت‌گذاری کمپین (برای مثال cpi). نیاز به cost data در attribution دارد.
costAmountNSNumberهزینه install. نیاز به cost data در attribution دارد.
costCurrencyNSStringکد ارز ISO 4217 برای هزینه. نیاز به cost data در attribution دارد.
نکته

فیلدهای هزینه فقط زمانی در دسترس هستند که آن‌ها را با setNeedsCost: روی ADTConfig قبل از appDidLaunch فعال کرده باشید. اگر هزینه فعال نشده یا بخشی از attribution نباشد، این فیلدها nil هستند.

Callback های رویداد و Session

Callback های delegate ثبت کنید تا وقتی SDK بسته‌های رویداد و Session را با موفقیت یا ناموفق ارسال می‌کند اطلاع داده شوید. از همان راه‌اندازی AdtraceDelegate مانند callback های attribution استفاده کنید.

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

Callback های Session

داده‌های response

Propertyنوعتوضیح
messageNSStringپیام از سرور، یا خطایی که توسط SDK لاگ شده.
timeStampNSStringtimestamp از سرورهای ادتریس.
adidNSStringشناسه یکتای دستگاه ادتریس.
jsonResponseNSDictionaryشیء JSON با پاسخ سرور.
willRetryBOOLفقط در شکست. اگر SDK بعداً سعی مجدد در ارسال بسته داشته باشد YES.

موفقیت Session

- (void)adtraceSessionTrackingSucceeded:(nullable ADTSessionSuccess *)sessionSuccessResponseData;
- (void)adtraceSessionTrackingSucceeded:(ADTSessionSuccess *)sessionSuccessResponseData {
NSLog(@"Session recorded at %@", sessionSuccessResponseData.timeStamp);
}

شکست Session

- (void)adtraceSessionTrackingFailed:(nullable ADTSessionFailure *)sessionFailureResponseData;
- (void)adtraceSessionTrackingFailed:(ADTSessionFailure *)sessionFailureResponseData {
NSLog(@"Session recording failed: %@", sessionFailureResponseData.message);
}

Callback های رویداد

داده‌های response

Propertyنوعتوضیح
messageNSStringپیام از سرور، یا خطایی که توسط SDK لاگ شده.
timeStampNSStringtimestamp از سرورهای ادتریس.
adidNSStringشناسه یکتای دستگاه ادتریس.
eventTokenNSStringتوکن رویداد.
callbackIdNSStringشناسه callback سفارشی تنظیم‌شده روی رویداد با setCallbackId در صورت وجود.
jsonResponseNSDictionaryشیء JSON با پاسخ سرور.
willRetryBOOLفقط در شکست. اگر SDK بعداً سعی مجدد داشته باشد YES.

موفقیت رویداد

- (void)adtraceEventTrackingSucceeded:(nullable ADTEventSuccess *)eventSuccessResponseData;
- (void)adtraceEventTrackingSucceeded:(ADTEventSuccess *)eventSuccessResponseData {
NSLog(@"Event %@ recorded at %@", eventSuccessResponseData.eventToken, eventSuccessResponseData.timeStamp);
}

شکست رویداد

- (void)adtraceEventTrackingFailed:(nullable ADTEventFailure *)eventFailureResponseData;
- (void)adtraceEventTrackingFailed:(ADTEventFailure *)eventFailureResponseData {
NSLog(@"Event recording failed: %@", eventFailureResponseData.message);
}