IOS Swift - 搜索广告 API requestAttributionDetails 只返回 Nil

标签 ios swift swift4 apple-search-ads

我正在尝试使用 Apples Search Ad api 将广告数据返回到应用程序,以便我可以记录它。第一次尝试生成了 Apple 的默认数据,第二天我在所有属性上都返回了 nil。

会不会跟这个有关系? iadAttribution = false

我在几台设备上进行测试,一台已经更新到最新的 IOS,所有设备都产生相同的结果。

请注意,该应用尚未上线,我正在使用测试设备!

知道为什么它返回 nil 而不是默认数据吗?

我一直在学习本教程 http://www.nikola-breznjak.com/blog/ios/create-native-ios-app-can-read-search-ads-attribution-api-information/

override func loadView() {
        super.loadView()
        getSearchAdsInfo()
    }

 func getSearchAdsInfo(){
    ADClient.shared().requestAttributionDetails({ (attributionDetails, error) in
                if error == nil {
                    for (type, adDictionary) in attributionDetails! {
                        var attribution = adDictionary as? Dictionary<AnyHashable, Any>;
                        let params = [
                            "deviceID": self.appData.deviceInfo,
                            "appID": "self.appData.appID",
                            "iadAdgroupId": attribution?["iad-adgroup-id"] as? String as Any,
                            "iadAdgroupName": attribution?["iad-adgroup-name"] as? String as Any,
                            "iadAttribution": attribution?["iad-attribution"] as? String  as Any,
                            "iadCampaignId": attribution?["iad-campaign-id"] as? String as Any,
                            "iadCampaignName": attribution?["iad-campaign-name"] as? String as Any,
                            "iadClickDate": attribution?["iad-click-date"] as? String as Any,
                            "iadConversionDate": attribution?["iad-conversion-date"] as? String as Any,
                            "iadCreativeId": attribution?["iad-creative-id"] as? String as Any,
                            "iadCreativeName": attribution?["iad-creative-name"] as? String as Any,
                            "iadKeyword": attribution?["iad-keyword"] as? String as Any,
                            "iadLineitemId": attribution?["iad-lineitem-id"] as? String as Any,
                            "iadLineitemName": attribution?["iad-lineitem-name"] as? String as Any,
                            "iadOrgName": attribution?["iad-org-name"] as? String as Any

                            ]
                      print(params)
                    }
                }
            })
}

结果

    ["iadCampaignName": nil, 
    "iadLineitemName": nil, 
    "iadCreativeId": nil, 
    "iadOrgName": nil, 
    "iadConversionDate": nil, 
    "iadAdgroupName": nil, 
    "iadClickDate": nil, 
    "iadCreativeName": nil, 
    "iadLineitemId": nil, 
    "iadCampaignId": nil, 
    "iadKeyword": nil, 
    "iadAdgroupId": nil, 
    "iadAttribution": Optional("false")]

和 print(attributionDetails) 产生以下内容

Optional(["Version3.1": {
    "iad-attribution" = false;
}])

最佳答案

对我有用的是获取适用于 iOS 版本 10.2 的模拟器。有了这个版本,虚拟数据就会通过。我明白了:

`Optional([AnyHashable("Version3.1"): {
    "iad-adgroup-id" = 1234567890;
    "iad-adgroup-name" = AdGroupName;
    "iad-attribution" = true;
    "iad-campaign-id" = 1234567890;
    "iad-campaign-name" = CampaignName;
    "iad-click-date" = "2018-06-12T14:56:14Z";
    "iad-conversion-date" = "2018-06-12T14:56:14Z";
    "iad-creative-id" = 1234567890;
    "iad-creative-name" = CreativeName;
    "iad-keyword" = Keyword;
    "iad-lineitem-id" = 1234567890;
    "iad-lineitem-name" = LineName;
    "iad-org-name" = OrgName;
}])

最新的 iOS 版本(在我的例子中是 11.4)似乎没有发送虚拟数据

点击此链接了解如何获取旧版 iOS 的模拟器: https://stackoverflow.com/a/37684633/1072262

关于IOS Swift - 搜索广告 API requestAttributionDetails 只返回 Nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50818600/

相关文章:

ios - dictionaryWithObjectsAndKeys 内循环

swift - Firebase 查询

codeigniter - NSURLSession iOS CodeIgniter 不发送 POST

ios - 在 swift 中渲染 UIImageView 时质量松散

ios - 使用 TestFairy.begin() 时在 Xcode 9 中使用未解析的标识符 'TestFairy' 错误

ios - 快速检测应用程序是在后台还是在前台

objective-c - 将 NSString 转换为 Integer 并检查它是否小于或等于某个值

swift - 检查是否符合 Swift 中关联类型的协议(protocol)

ios - 无法向 UIMenuController 显示多个选项

ios - 如何在 ios 中检查互联网是否正常工作