ارسال اطلاعات Callback
Callback هایی راهاندازی کنید تا کد خودتان را اجرا کنید وقتی Adtrace SDK اطلاعات را به ادتریس ارسال میکند یا attribution تغییر میکند.
در iOS، اکثر callback ها از پروتکل اختیاری AdtraceDelegate استفاده میکنند. delegate را روی instance ADTConfig خود قبل از فراخوانی [Adtrace appDidLaunch:] / Adtrace.appDidLaunch(...) ثبت کنید.
| نوع Callback | مکانیزم | زمان اجرا |
|---|---|---|
| Attribution | AdtraceDelegate | بعد از اینکه SDK دادههای attribution نهایی یا بهروز را دریافت میکند |
| موفقیت / شکست رویداد | AdtraceDelegate | بعد از اینکه SDK سعی میکند یک بسته رویداد ارسال کند |
| موفقیت / شکست Session | AdtraceDelegate | بعد از اینکه SDK سعی میکند یک بسته Session ارسال کند |
| Deferred deep link | AdtraceDelegate | قبل از باز کردن deferred deep link توسط SDK. به Deep linking مراجعه کنید |
این صفحه callback های delegate را در کد اپ شما پوشش میدهد. برای داده key-value که به URL های callback در هر Session و رویداد ضمیمه میشوند، به تنظیم پارامترهای callback Session مراجعه کنید.
باید delegate را قبل از مقداردهی اولیه SDK تنظیم کنید.
یک callback موفق به این معنی است که SDK بسته را ارسال کرده. به این معنی همیشه نیست که داده در آمار پنل نمایش داده میشود. رویدادها فقط بعد از اینکه install با موفقیت برای آن دستگاه ردیابی شده باشد در پنل نمایش داده میشوند.
راهاندازی delegate
۱. پذیرفتن AdtraceDelegate
- Objective-C
- Swift
@interface AppDelegate : UIResponder <UIApplicationDelegate, AdtraceDelegate>
@end
class AppDelegate: UIResponder, UIApplicationDelegate, AdtraceDelegate {
// ...
}
۲. ثبت delegate روی ADTConfig
setDelegate: را قبل از appDidLaunch فراخوانی کنید:
- Objective-C
- Swift
NSString *appToken = @"{YourAppToken}";
NSString *environment = ADTEnvironmentSandbox;
ADTConfig *adtraceConfig = [ADTConfig configWithAppToken:appToken
environment:environment];
[adtraceConfig setDelegate:self];
[Adtrace appDidLaunch:adtraceConfig];
let appToken = "{YourAppToken}"
let environment = ADTEnvironmentSandbox
let adtraceConfig = ADTConfig(appToken: appToken, environment: environment)
adtraceConfig?.delegate = 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 خود پیادهسازی کنید.
مثال
- Objective-C
- Swift
- Javascript
- (void)adtraceAttributionChanged:(ADTAttribution *)attribution {
NSLog(@"Tracker token: %@", attribution.trackerToken);
NSLog(@"Network: %@", attribution.network);
}
func adtraceAttributionChanged(_ attribution: ADTAttribution?) {
print("Tracker token: \(attribution?.trackerToken ?? "")")
print("Network: \(attribution?.network ?? "")")
}
adtraceConfig.setAttributionCallback(function(attribution) {
console.log('Tracker token = ' + attribution.trackerToken);
console.log('Network = ' + attribution.network);
});
property های ADTAttribution
هر مقداری که برای کاربر تنظیم نشده باشد به عنوان nil ب رگردانده میشود.
| Property | نوع | توضیح |
|---|---|---|
trackerToken | NSString | توکن tracker که دستگاه در حال حاضر به آن attributed است. |
trackerName | NSString | نام tracker که دستگاه در حال حاضر به آن attributed است. |
network | NSString | شبکهای که دستگاه در حال حاضر به آن attributed است. |
campaign | NSString | کمپینی که دستگاه در حال حاضر به آن attributed است. |
adgroup | NSString | ad group ای که دستگاه در حال حاضر به آن attributed است. |
creative | NSString | creative ای که دستگاه در حال حاضر به آن attributed است. |
clickLabel | NSString | click label که روی install tag شده. |
adid | NSString | شناسه یکتای دستگاه ادتریس. |
costType | NSString | مدل قیمتگذاری کمپین (برای مثال cpi). نیاز به cost data در attribution دارد. |
costAmount | NSNumber | هزینه install. نیاز به cost data در attribution دارد. |
costCurrency | NSString | کد ارز ISO 4217 برای هزینه. نیاز به cost data در attribution دارد. |
فیلدهای هزینه فقط زمانی در دسترس هستند که آنها را با setNeedsCost: روی ADTConfig قبل از appDidLaunch فعال کرده باشید. اگر هزینه فعال نشده یا بخشی از attribution نباشد، این فیلدها nil هستند.
Callback های رویداد و Session
Callback های delegate ثبت کنید تا وقتی SDK بستههای رویداد و Session را با موفقیت یا ناموفق ارسال میکند اطلاع داده شوید. از همان راهاندازی AdtraceDelegate مانند callback های attribution استفاده کنید.
SDK این متدها را بعد از تلاش برای ارسال بسته به سرور فراخوانی میکند.
Callback های Session
دادههای response
| Property | نوع | توضیح |
|---|---|---|
message | NSString | پیام از سرور، یا خطایی که توسط SDK لاگ شده. |
timeStamp | NSString | timestamp از سرورهای ادتریس. |
adid | NSString | شناسه یکتای دستگاه ادتریس. |
jsonResponse | NSDictionary | شیء JSON با پاسخ سرور. |
willRetry | BOOL | فقط در شکست. اگر SDK بعداً سعی مجدد در ارسال بسته داشته باشد YES. |
موفقیت Session
- (void)adtraceSessionTrackingSucceeded:(nullable ADTSessionSuccess *)sessionSuccessResponseData;
- Objective-C
- Swift
- Javascript
- (void)adtraceSessionTrackingSucceeded:(ADTSessionSuccess *)sessionSuccessResponseData {
NSLog(@"Session recorded at %@", sessionSuccessResponseData.timeStamp);
}
func adtraceSessionTrackingSucceeded(_ sessionSuccessResponseData: ADTSessionSuccess?) {
print("Session recorded at \(sessionSuccessResponseData?.timeStamp ?? "")")
}
adtraceConfig.setSessionSuccessCallback(function(sessionSuccess) {
console.log('Session recorded at ' + sessionSuccess.timeStamp);
});
شکست Session
- (void)adtraceSessionTrackingFailed:(nullable ADTSessionFailure *)sessionFailureResponseData;
- Objective-C
- Swift
- Javascript
- (void)adtraceSessionTrackingFailed:(ADTSessionFailure *)sessionFailureResponseData {
NSLog(@"Session recording failed: %@", sessionFailureResponseData.message);
}
func adtraceSessionTrackingFailed(_ sessionFailureResponseData: ADTSessionFailure?) {
print("Session recording failed: \(sessionFailureResponseData?.message ?? "")")
}
adtraceConfig.setSessionFailureCallback(function(sessionFailure) {
console.log('Session recording failed: ' + sessionFailure.message);
});
Callback های رویداد
دادههای response
| Property | نوع | توضیح |
|---|---|---|
message | NSString | پیام از سرور، یا خطایی که توسط SDK لاگ شده. |
timeStamp | NSString | timestamp از سرورهای ادتریس. |
adid | NSString | شناسه یکتای دستگاه ادتریس. |
eventToken | NSString | توکن رویداد. |
callbackId | NSString | شناسه callback سفارشی تنظیمشده روی رویداد با setCallbackId در صورت وجود. |
jsonResponse | NSDictionary | شیء JSON با پاسخ سرور. |
willRetry | BOOL | فقط در شکست. اگر SDK بعداً سعی مجدد داشته باشد YES. |
موفقیت رویداد
- (void)adtraceEventTrackingSucceeded:(nullable ADTEventSuccess *)eventSuccessResponseData;
- Objective-C
- Swift
- Javascript
- (void)adtraceEventTrackingSucceeded:(ADTEventSuccess *)eventSuccessResponseData {
NSLog(@"Event %@ recorded at %@", eventSuccessResponseData.eventToken, eventSuccessResponseData.timeStamp);
}
func adtraceEventTrackingSucceeded(_ eventSuccessResponseData: ADTEventSuccess?) {
print("Event \(eventSuccessResponseData?.eventToken ?? "") recorded at \(eventSuccessResponseData?.timeStamp ?? "")")
}
adtraceConfig.setEventSuccessCallback(function(eventSuccess) {
console.log('Event recorded at ' + eventSuccess.timeStamp);
});
شکست ر ویداد
- (void)adtraceEventTrackingFailed:(nullable ADTEventFailure *)eventFailureResponseData;
- Objective-C
- Swift
- Javascript
- (void)adtraceEventTrackingFailed:(ADTEventFailure *)eventFailureResponseData {
NSLog(@"Event recording failed: %@", eventFailureResponseData.message);
}
func adtraceEventTrackingFailed(_ eventFailureResponseData: ADTEventFailure?) {
print("Event recording failed: \(eventFailureResponseData?.message ?? "")")
}
adtraceConfig.setEventFailureCallback(function(eventFailure) {
console.log('Event recording failed: ' + eventFailure.message);
});