だいたいそれでいいんじゃないの

つれつれなるkixixixixiの技術的なストック。http://reload.co.jp

UIWebViewでの広告クリックでコンバージョン計測したい

表題の通り。
要望があったので書きますー。

どういうことかというと、
- iOSアプリでwebviewを使ってコンテンツの表示等を行っている
- webview上で広告を配置
- 広告がリダイレクトを挟んでいるのでコンバージョン計測をしていそうだ
- コンバージョン計測はメインブラウザのクッキーで行うのでそこに飛ばしてあげないといけない
- webviewだけで完結するとそれができない

のでそれをスマートにできたらいいよね。

配置したwebviewのdelegeteをしてから

func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool
    {
        let url = request.URL
        if navigationType == UIWebViewNavigationType.LinkClicked
        {
            if (url.host as NSString!).isEqualToString("mydomain.com")
            {
                 UIApplication.sharedApplication().openURL(url)
                 return false
            }
        }
        return true
    }

これでとりあえず、自分のドメイン以外へのアクセスはsafariに飛びます。 クリックのときのみにしとかないと広告読み込みでも飛ばされてしまうので。

以上!