| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- //
- // AsaManager.swift
- // Runner
- //
- // Created by Destiny on 2025/6/18.
- //
- import Foundation
- import SwiftyJSON
- import Alamofire
- class AsaManager {
-
- static let shared = AsaManager()
-
- var hostUrl = "http://asafrontend.mokiwi.com/api"
-
- var orgId = "8941670"
-
- var sign = "c50d251bcb2eec9345844df434e3a09d&kiwi".md5
-
- func addAttributionReport(completion:@escaping ((Bool) -> ())) {
-
- if self.payDataNotExist() {
- completion(false)
- return
- }
-
- var dict: [String: Any] = [String: Any]()
- if let payLoad: [String: Any] = UserDefaults.standard.object(forKey: "ASA_ATTRIBUTION_PAYLOAD") as? [String : Any] {
-
- if let campaignId = payLoad["campaignId"] as? Int {
- dict["campaign_id"] = campaignId
- }
-
- if let adGroupId = payLoad["adGroupId"] as? Int {
- dict["ad_group_id"] = adGroupId
- }
-
- if let keywordId = payLoad["keywordId"] as? Int {
- dict["keyword_id"] = keywordId
- }
-
- let formatter = DateFormatter()
- formatter.timeZone = TimeZone.autoupdatingCurrent
- formatter.dateFormat = "yyyy-MM-dd"
- let todayDate = formatter.string(from: Date())
- dict["date"] = todayDate
- dict["timezone"] = "ORTZ"
- }
-
- let urlString = String(format: "%@/asabackendData/add?org_id=%@&sign=%@", hostUrl, orgId, sign )
-
- let headers = ["Content-Type": "application/json"]
-
- // 使用Alamofire发送POST请求
- AF.request(urlString, method: .post, parameters: dict, encoding: JSONEncoding.default, headers: HTTPHeaders(headers)).response { response in
- switch response.result {
- case .success(let value):
- let json = try? JSON(data: value ?? Data())
- print("AppSaManager responseObject: \(String(describing: json))")
- if json?["code"] == 10000 {
- print("AppSaManager asa用户 提交成功")
- completion(true)
- } else {
- print("AppSaManager asa用户 提交失败")
- completion(false)
- }
- case .failure(let error):
- print("AppSaManager asa用户 error: \(error)")
- completion(false)
- }
- }
- }
-
- func addEventAttribution(eventDict: [String: Any]) {
-
- if self.payDataNotExist() {
- return
- }
-
- var dict: [String: Any] = [String: Any]()
- if let payLoad: [String: Any] = UserDefaults.standard.object(forKey: "ASA_ATTRIBUTION_PAYLOAD") as? [String : Any] {
-
- if let campaignId = payLoad["campaignId"] as? Int {
- dict["campaign_id"] = campaignId
- }
- if let adGroupId = payLoad["adGroupId"] as? Int {
- dict["ad_group_id"] = adGroupId
- }
-
- if let keywordId = payLoad["keywordId"] as? Int {
- dict["keyword_id"] = keywordId
- }
-
- let formatter = DateFormatter()
- formatter.timeZone = TimeZone.autoupdatingCurrent
- formatter.dateFormat = "yyyy-MM-dd"
- let todayDate = formatter.string(from: Date())
- dict["date"] = todayDate
- dict["timezone"] = "ORTZ"
- if let idfa = KeyboardSharedDataManager.shared.getInitIDFA() {
- dict["unique_device"] = idfa
- } else {
- dict["unique_device"] = KeyboardSharedDataManager.shared.getInitIDFV()
- }
- }
-
- for (key, value) in eventDict {
- dict[key] = value
- }
-
- let urlString = String(format: "%@/asabackendDataDetail/add?org_id=%@&sign=%@", hostUrl, orgId, sign )
-
- let headers = ["Content-Type": "application/json"]
-
- let parameters = ["backend_data_detail": dict]
-
- // 使用Alamofire发送POST请求
- AF.request(urlString, method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: HTTPHeaders(headers)).response { response in
- switch response.result {
- case .success(let value):
- let json = try? JSON(data: value ?? Data())
- print("AppSaManager responseObject: \(String(describing: json))")
- if json?["code"] == 10000 {
- print("AppSaManager asa用户 提交成功")
- } else {
- print("AppSaManager asa用户 提交失败")
- }
- case .failure(let error):
- print("AppSaManager asa用户 error: \(error)")
- }
- }
- }
-
- func payDataNotExist() -> Bool {
- guard UserDefaults.standard.object(forKey: "ASA_ATTRIBUTION_PAYLOAD") is [String: Any] else {
- return true
- }
- return false
- }
- }
|