All Products
Search
Document Center

Quick Tracking:Integrasi Dasar

Last Updated:Dec 15, 2025

1 Pengaturan Jalur

Periksa apakah Anda telah menggunakan Umeng+ SDK. Jika sudah, ubah jalur file SDK secara tepat waktu.

  • SDK Umeng+ telah diintegrasikan, dan sekarang SDK QT perlu diintegrasikan: [QTConfigure resetStorePath] di depan semua kode QT dan Umeng+ (setidaknya lebih awal dari penerimaan nama domain).

  • SDK QT telah diintegrasikan, dan sekarang Anda perlu mengintegrasikan SDK Umeng+: [UMConfigure resetStorePath] di depan semua kode QT dan Umeng+ (setidaknya lebih awal dari penerimaan nama domain).

Peringatan

Jika tidak dipanggil berdasarkan logika yang disebutkan sebelumnya, SDK Umeng+ dan SDK QT menggunakan jalur penyimpanan yang sama, yang mengakibatkan kebingungan log. Logika spesifiknya adalah: metode inisialisasi SDK mana yang dipanggil pertama kali akan menyetel ulang jalur file SDK lainnya, misalnya, SDK Umeng+ yang diinisialisasi pertama kali akan memanggil [QTConfigure resetStorePath]; jika SDK QT yang diinisialisasi pertama kali, Anda perlu memanggil [UMConfigure.resetStorePath];

Catatan: Jika Anda menyetel ulang jalur SDK QT, nilai kunci informasi fitur yang Anda tetapkan untuk SDK, seperti akun pengguna dan versi aplikasi, akan berubah. Jika Anda perlu menggunakan bidang ini untuk pemrosesan bisnis, kami sarankan Anda menyetel ulang bidang ini. Untuk menghindari kehilangan data, kami sarankan Anda mengonfigurasi bidang ini saat Anda mengintegrasikan SDK QT untuk pertama kalinya.

2 Pengaturan Nama Domain

Antarmuka:

/**Setel nama domain utama dan cadangan untuk pelaporan log statistik. Fungsi ini harus dipanggil sebelum SDK menginisialisasi panggilan fungsi. 
 
 @ param primaryDomain Alamat penerimaan nama domain utama tempat log dikirim. Parameter ini tidak boleh null atau string kosong. Contoh: https://www.xxx.com
 @ param standbyDomain Alamat penerimaan nama domain cadangan untuk mengunggah log. Parameter ini bisa null atau string kosong. Jika parameter ini kosong, SDK secara otomatis menetapkan nama domain utama sebagai nama domain cadangan. 
*/
+ (void)setCustomDomain:(NSString *)primaryDomain standbyDomain:(NSString *)standbyDomain;

Parameter:

Opsi

Tipe

Deskripsi

Catatan

primaryDomain

NSString

Nama domain utama

Pengaturan Wajib

standbyDomain

NSString

Nama domain alternatif

Tidak

Prompt

Metode ini perlu dipanggil sebelum metode inisialisasi.

Kode contoh:

[QTConfigure setCustomDomain:@"Nama domain layanan koleksi Anda" standbyDomain:nil];

3. Inisialisasi Kepatuhan

3.1 Antarmuka Inisialisasi

1. Pernyataan Kepatuhan

Anda harus memberi tahu pengguna bahwa Anda memilih layanan Quick Tracking SDK. Silakan tambahkan ketentuan referensi berikut ke Kebijakan Privasi:

Produk kami terintegrasi dengan Quick Tracking SDK, Quick Tracking SDK perlu mengumpulkan OAID/GAID/MAC/IMEI/Android ID/IDFA/IDFV/OPENUDID/GUID/Nomor Seri Perangkat/SIM card IMSI informasi /nomor seri perangkat keras /MCC (kode negara seluler), MNC (nomor jaringan seluler) untuk menyediakan layanan analisis statistik.

2. Inisialisasi Kepatuhan

Untuk memastikan bahwa aplikasi Anda dapat memenuhi persyaratan kepatuhan Kementerian Industri dan Teknologi Informasi (MIIT) setelah Anda mengintegrasikan SDK statistik [Quick Tracking], Anda harus memastikan bahwa fungsi inisialisasi awal dipanggil untuk menginisialisasi SDK statistik setelah pengguna membaca kebijakan privasi Anda dan mendapatkan otorisasi pengguna selama cold start pertama aplikasi. Dalam hal ini, SDK mengumpulkan informasi perangkat dan melaporkan data. Sebaliknya, jika pengguna tidak menyetujui otorisasi Kebijakan Privasi, fungsi inisialisasi tidak dapat dipanggil.

/**Inisialisasi Quick Tracking untuk semua produk komponen
 @ param appKey Appkey yang diterapkan oleh pengembang di Quick Tracking.
 @ param channel Pengenal saluran. Anda dapat menyetel nil untuk "App Store".
 */
+ (void)initWithAppkey:(NSString *)appKey channel:(NSString *)channel;

Jika Anda menggunakan SDK pengalaman kinerja pada saat yang sama dan perlu menyetel domain pengumpulan SDK pengalaman kinerja secara terpisah, panggil antarmuka berikut untuk menginisialisasi SDK (didukung oleh v1.5.6.PX dan yang lebih baru):

/**Inisialisasi semua komponen QTSDK
 @ param appKey Appkey yang diterapkan oleh pengembang di situs resmi platform QuickTracking.
 @ param channel Pengenal saluran. Anda dapat menyetel nil untuk "App Store".
 @ param pluginsTrackDomainIndepent apakah akan menyetel domain SDK pengalaman kinerja secara independen.
 */
+ (void)initWithAppkey:(NSString *)appKey channel:(NSString *)channel shouldPluginsTrackDomainIndepent:(BOOL)pluginsTrackDomainIndepent;

Setelah Aplikasi mendapatkan otorisasi pengguna "Kebijakan Privasi", pengembang harus memastikan bahwa fungsi inisialisasi dipanggil untuk cold start berikutnya dari Aplikasi.

3.2 Pengambilan Appkey

Saat Anda menginisialisasi SDK, Anda harus menentukan parameter Appkey. Kunci aplikasi adalah ID unik aplikasi di Quick Tracking. Ini dibuat saat Anda membuat aplikasi. Untuk informasi lebih lanjut tentang cara mendapatkan atau melihat kunci aplikasi, lihat Manajemen Aplikasi.

4. Pencetakan Log Harian

Di iOS, modul log adalah plug-in mandiri dan hanya dapat digunakan setelah diintegrasikan.

4.1 Pengenalan Plug-in Log

Jika Anda memperkenalkan SDK secara manual, Anda perlu mengimpor paket plug-in log ke proyek Anda.

1. Pilih dan unduh komponen fungsional SDK, lalu ekstrak file .zip untuk mendapatkan paket komponen yang sesuai (misalnya, UMCommonLog.framework, UMCommonLog.bundle).

2. XcodeFile ->Add Files to "Proyek Anda" dan pilih paket komponen yang diunduh->Tambahkan di Panel yang muncul. (Catatan: centang "Salin item jika diperlukan").

image

D0A83A67-2331-4BE6-804A-42BE6A927A27

Inisialisasi Plug-in Log 4.2

1. Deskripsi dan penggunaan

  • Tetapkan apakah akan menampilkan informasi log SDK di konsol.

  • Logstore UMCommonLog.framework harus diinisialisasi secara eksplisit sebelum dapat digunakan oleh berbagai komponen bisnis.

  • UMCommonLog.bundle adalah file sumber daya. Jika Anda memperkenalkan SDK secara manual, Anda harus menambahkan UMCommonLog.bundle ke proyek. Jika tidak, konten log akan salah.

2. Fungsi antarmuka

Antarmuka:

+(void) setUpUMCommonLogManager;

Kode contoh:

#import <UMCommonLog/UMCommonLogManager.h>
  
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
    // Pengembang perlu memanggil fungsi ini secara eksplisit agar sistem logging bekerja.
    [UMCommonLogManager setUpUMCommonLogManager];
}

4.3 Buka Log

Gunakan API UMConfigure.h dari file header QTCommon.framwork untuk mengaktifkan logging.

Antarmuka:

/**Tentukan apakah akan menampilkan informasi log SDK di konsol.
 @ param bFlag Nilai default NO (tidak ada output log); Setel ke YES untuk menampilkan informasi log untuk referensi debugging. Saat menerbitkan produk, atur ke NO.
 */
+ (void)setLogEnabled:(BOOL)bFlag;

Jika Anda ingin melihat log yang dihasilkan selama inisialisasi SDK, Anda harus mengaktifkan logging sebelum Anda menginisialisasi SDK. Kami sarankan Anda mengaktifkan logging sebelum Anda memanggil API.

Contoh:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
    // Pengembang perlu memanggil fungsi ini secara eksplisit agar sistem logging bekerja.
    [UMCommonLogManager setUpUMCommonLogManager];
    [QTConfigure setLogEnabled:YES];// Tentukan untuk mengaktifkan logging.
    [QTConfigure setCustomDomain:@"Nama domain layanan koleksi Anda" standbyDomain:nil];// Setel nama domain.
    [QTConfigure initWithAppkey:@"Appkey Anda" channel:@"App Store"];
    
     /**
     * Jika Anda perlu menyetel nama domain APM secara terpisah, gunakan antarmuka berikut untuk menginisialisasi
     * [QTConfigure initWithAppkey:@"Appkey Anda" channel:@"App Store" shouldPluginsTrackDomainIndepent:YES]; // Didukung oleh V1.5.6.PX dan yang lebih baru
     */
}

Format Log:

Sebagai contoh, jika AppKey yang dimasukkan oleh pengguna kosong, log dicetak seperti yang ditunjukkan pada gambar berikut:

5FC51E40-553A-4836-BD91-F78B255A8094

  • 2018-02-08 20:19:44: Mengacu pada waktu pencetakan saat ini;

  • UMengCommon: nama SDK berbasis komponen (UMCommon.framework).

  • <1.4.3>: nomor versi SDK berbasis komponen (UMCommon.framework).

  • (Error)[CIE10001]: mengacu pada kode FAQ log. Anda juga dapat menemukan solusi yang sesuai melalui dokumen FAQ.

  • AppKey yang ditentukan tidak valid. Ajukan AppKey di situs resmi untuk menghindari memengaruhi statistik aplikasi Anda.: menunjukkan pesan kesalahan yang meminta pengembang untuk membantu pengembang menemukan penyebab kesalahan.

5. Enkripsi Data Kustom

Fungsi antarmuka codec kustom:

SDK tidak langsung mengimplementasikan algoritma enkripsi dan dekripsi kustom. SDK menyediakan proxy QTCryptoProviderDelegate yang memungkinkan pengembang mengimplementasikan dua metode berikut:

@protocol QTCryptoProviderDelegate <NSObject>

- (NSData *)encode:(NSMutableDictionary<NSString *,NSString *> *)header input:(NSData *)input;

- (NSData *)decode:(NSDictionary<NSString *,NSString *> *)header input:(NSData *)input;

@end

Metode antarmuka

Parameter

- (NSData *)encode:(NSMutableDictionary<NSString *,NSString *> *)header input:(NSData *)input;

Parameter: header: informasi tambahan yang perlu diteruskan ke sisi dekripsi (seperti algoritma enkripsi yang digunakan, mode enkripsi, dan informasi lainnya). dilewatkan sebagai beberapa pasangan kunci-nilai string K-V. SDK melakukan pengkodean Base64 pada semua pasangan kunci-nilai K-V dalam kamus dan meneruskannya sebagai bidang header HTTP dc-args ke server penerima. Server pengumpulan meneruskan parameter kamus ini ke metode dekripsi yang sesuai tanpa perubahan. input: data mentah yang akan dienkripsi. Nilai kembali: data yang dienkripsi.

- (NSData *)decode:(NSDictionary<NSString *,NSString *> *)header input:(NSData *)input;

Parameter: header: informasi enkripsi tambahan yang diteruskan oleh enkripsi. Dekripsi perlu menggunakan informasi ini untuk menentukan algoritma dekripsi, mode, dan detail lainnya. input: data mentah yang akan didekripsi. Nilai kembali: data yang didekripsi.

Fungsi pendaftaran antarmuka codec kustom:

[QTConfigure registerCryptoProvider:self];

Metode antarmuka

Parameter

+ (void)registerCryptoProvider:(id<QTCryptoProviderDelegate>)delegate;

Parameter: delegate: Objek yang mengimplementasikan metode delegasi-agent.

Kode contoh:

#import <QTCommon/UMCommon.h>

@interface AppDelegate ()<QTCryptoProviderDelegate>

@end

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [QTConfigure setCustomDomain:@"Nama domain layanan koleksi Anda" standbyDomain:nil];
		[QTConfigure registerCryptoProvider:self];
    [QTConfigure initWithAppkey:@"Appkey Anda" channel:@"Saluran Anda"];
    
	....
	
    return YES;
}

- (NSData *)encode:(NSMutableDictionary<NSString *,NSString *> *)header input:(NSData *)input{
    // Kode contoh
    [header setObject:@"value1" forKey:@"arg1"];
    [header setObject:@"value2" forKey:@"arg2"];
    return [self customEncode:input key:CryptoKey];
}

- (NSData *)decode:(NSDictionary<NSString *,NSString *> *)header input:(NSData *)input{
    // Kode contoh
    NSLog(@"header dekode:%@",header);
    return [self customDecode:input key:CryptoKey];
}

// Enkripsi kustom
- (NSData *)customEncode:(NSData *)data key:(NSString *)key
{
    // Sesuaikan enkripsi.
}

// Sesuaikan dekripsi.
- (NSData *)customDecode:(NSData *)data key:(NSString *)key
{
    // Sesuaikan implementasi dekripsi.
}

6 Saklar Pengumpulan Data

Secara default, SDK mengaktifkan pengumpulan data. Anda juga dapat mengaktifkan atau menonaktifkan API untuk mengontrol waktu pengumpulan data. Didukung oleh 1.5.2.PX dan yang lebih baru

6.1 Aktifkan Kemampuan Pengumpulan

enableSDK

Contoh:

[QTConfigure enableSDK];

6.2 Nonaktifkan Kemampuan Pengumpulan

disableSDK

Contoh:

[QTConfigure disableSDK];

catatan: aplikasi memiliki kebijakan privasi yang mengontrol proses operasi. Oleh karena itu, SDK tidak menyediakan kontrol status cache tambahan untuk logo aktif dan nonaktif.

sistem, yaitu jika Anda ingin menonaktifkan fitur SDK setelah cold start dan ingin menonaktifkan status pengumpulan setiap cold start, Anda perlu menyesuaikan pengembangan layanan secara aktif

Nonaktifkan fitur API DisableSDK