LINE @에 친구를 등록한 사람의 출처를 식별 (추적)하는 방법

누구의 기사인가?


  • LINE@에 친구 등록해 준 사람이 어디에서 왔는지를 특정해, 효과 측정하고 싶은 사람
  • LINE@에게 친구를 등록한 사람에게 인센티브를 부여하고 싶은 사람

  • 개요



    다양한 방법은 있지만, 가장 인기있는 방법으로 쿠키를 이용한 추적 방법을 소개합니다.
    브라우저에서 쿠키를 먹인 후 맞대고 특정하는 원시적인 기법입니다.
    브라우저를 사용하지 않는 FingerPrint 또는 더 멋진 방법이 있으면 꼭 댓글 란 등에서 가르쳐 주셨으면합니다.

    OS별 사양 차이



    iOS 버전 LINE


  • LINE의 QR코드 기능으로 이미지 읽기, LINE이외의 URL이었을 경우, LINE내 Web브라우저에서 QR코드의URL을 엽니다.
  • LINE 내 메시지에서 URL을 선택하면 LINE 내 웹 브라우저에서 URL을 엽니다.

  • Android 버전 LINE


  • LINE의 QR코드 기능으로 이미지 읽기, LINE이외의 URL이었을 경우, LINE외 웹 브라우저로 QR코드의URL을 엽니다.
  • LINE 내 메시지에서 URL을 선택하면 LINE 내 웹 브라우저에서 URL을 엽니다.

  • iOS 버전과 Android 버전에서 동작이 다르기 때문에 간단한 방식으로는 작동하지 않습니다.
    해결 방법으로 URL 쿼리에 openExternalBrowser=1을 붙이면 외부 브라우저를 강제로 사용하고 UA와 쿠키를 처리할 수 있습니다.

    방법



    1. 쿠키 먹이를 위한 PHP 만들기



    SetCookie.php
    
    <?php
    $set_id = $_GET['id'];
    setcookie('id', $set_id);
    
    //$_SESSION['id'] = $set_id;//SESSIONもセットしておくとよりbetter
    //ここらへんでUserAgentやIPとってDBに保管しておくとよりbetter
    
    //LINE友達登録用URLにリダイレクト
    $line_friend_url = "https://line.me/R/ti/p/hogehoge";
    header("Location:" . $line_friend_url);
    
    

    2.Cookie 먹이를 위한 PHP의 QR코드 만들기



    디자인 QR 코드 생성기 을 사용하면 그것처럼 보입니다.
    오. gl 같은 짧은 URL을 통해 더 better.


    3.Cookie 취득용 PHP 작성



    GetCookie.php
    
    <?php
    $get_id = $_COOKIE['id'];
    print "君は{$get_id}のフレンズなんだね!";
    
    

    4.Cookie 취득용 PHP를 LINE에서 밟는다



    URL이 보이면 알레이므로 UriTemplateActionBuilder 등을 사용하여 Button으로 링크하면 더 better.

    LineBot.php
    
        function do_get_cookie()
        {
            $url = "https://hoge.com/GetCookie.php?openExternalBrowser=1";//openExternalBrowser=1が重要
    
            $actions = array(
                new \LINE\LINEBot\TemplateActionBuilder\UriTemplateActionBuilder("ボタン", $url),
            );
    
            $title = " タイトル";
            $message = "メッセージ";
            $thumbnail = NULL;
    
            $button = new \LINE\LINEBot\MessageBuilder\TemplateBuilder\ButtonTemplateBuilder($title, $message, $thumbnail, $actions);
            $messageBuilder = new \LINE\LINEBot\MessageBuilder\TemplateMessageBuilder($message, $button);
            $response = $this->bot->replyMessage($this->replyToken, $messageBuilder);
    
        }
    
    

    FAQ



    Q. LINE Login 사용하면 좋지 않아?



    라고도 생각했습니다만, 심사가 엄격하다고 User에 Login시키는 수고가 번잡하다는 것으로 단념했습니다.

    Q.Profile의 pictureUrl을 유니크 키로 하면 좋지 않아?



    라고 생각했습니다만, LINE에서 이미지 등록하지 않은 User의 경우 응답 JSON에 포함되지 않는 사양 때문에, 단념했습니다.

    Q.UserAgent와 IP라면 충분하지?



    라고도 생각했습니다만, 정밀도를 요구하면 역시 쿠키 방식이 좋을까라고 생각해, 단념했습니다.

    좋은 웹페이지 즐겨찾기