コールトラッキングを行う

現代の世界では、企業は多数のチャネルを使用して顧客を引き付けます。コンテキスト広告、バナー広告、ラジオやテレビでの広告、屋外広告などです。 これらの各チャネルには、キーワードやサイトなどの配置パラメーターがまだある場合があります。 広告は費用のかかるビジネスであり、そのビジネスは特定のチャネルとサイトの有効性を研究したいという明確な願望を持っています。 オンライン販売の場合、すべてが多かれ少なかれシンプルであり、クライアントのブラウザにしがみつく特別なタグとクッキーがあり、彼が購入するとき、Google / Yandex /他のシステムはクライアントが特定のチャネルから来たという情報を提供します特定のキーワード。 しかし、すべての企業が商品やサービスをオンラインで販売しているわけではなく、多くの企業が電話でこれを行っています。各ビジネスには独自の特性があり、販売チャネルとしての電話は依然として関連性を失っていません。 電話販売の場合のマーケティングチャネルの有効性を分析するために、コールトラッキングが使用されます。次に、コールトラッキングのタイプを検討し、その実装方法について説明します。



コールトラッキングには、静的と動的のいくつかのタイプがあります。 静的なコールトラッキングの場合、各広告チャネルに番号が割り当てられ、割り当てられます。その後、番号を介したすべてのコールが記録され、統計情報の分析により、最も効果的なチャネルが示されます。 限られた数のチャネルを追跡する必要がある場合、この方法はうまく機能します。 現代の世界では、広告主はチャネルだけでなく特定のキーワードの有効性も追跡し、個々の顧客をキャッチしたいと考えています。これにより、最終的に多数の番号が必要になります。



この場合、彼らは動的なコールトラッキングの使用を開始します。動的なコールトラッキングでは、すべてのチャネルで使用される電話番号のプールがありますが、その番号はその場でサイト訪問者に接続され、クライアントが番号を呼び出すと、システムはこれを追跡します。 サイトへの訪問数と、異なるチャネルからサイトにアクセスする訪問者を追跡するために必要な数との間には相関関係があるため、コール追跡サービスは通常、サービスの価格をリソースの出席に結び付けます。







まあ、それはすべて理論で終わりました、私たちは練習に進むことができます。 VoxImplantプラットフォームに接続された追跡番号のプールのオプションを検討します。これは、着信コールの処理とクライアント番号への転送を担当します。 呼処理のシナリオでは、バックエンドからHTTP(S)に転送するデータを受信し、呼情報を記録することを想定しています。 呼び出しが成功した場合、日付、継続時間、会話の録音のURL、呼び出しが来た番号、呼び出しをリダイレクトした番号を保存します。呼び出しが行われなかった場合は、エラーに関する情報を追加します。 実装に移りましょう:

  1. VoxImplantアカウントを登録して有効化する
  2. コントロールパネルに移動し [ アプリケーション]セクションでアプリケーションを作成します。トラッキングと呼ぶことができます
  3. [ シナリオ]セクションで、次の内容の新しいスクリプトを作成します。



    var outbound_call, dialed_number, agent_number, record_url, call_date, call_length = 0, failure_code, failure_reason, wsURL = "http://yourwebservice.com/api", // ,   -      connected = false; //    VoxEngine.addEventListener(AppEvents.CallAlerting, function (e) { //    UTC- call_date = new Date().toUTCString(); // ,    dialed_number = e.destination; // URL         wsURL += "?dialed_number=" + encodeURIComponent(dialed_number); //  HTTP-  -,        Net.httpRequest(wsURL, function (res) { if (res.code == 200) { //     agent_number = res.text; //    outbound_call = VoxEngine.callPSTN(agent_number, dialed_number); //          VoxEngine.easyProcess(e.call, outbound_call, handleCallsConnected); outbound_call.removeEventListener(CallEvents.Disconnected); outbound_call.addEventListener(CallEvents.Disconnected, handleCallDisconnected); outbound_call.removeEventListener(CallEvents.Failed); outbound_call.addEventListener(CallEvents.Failed, handleCallFailed); } else { //  -  -  ,   -     e.call.reject(); } }); }); //    VoxEngine.addEventListener(AppEvents.Terminating, function (e) { //      if (connected) { Logger.write("Dialed number: " + dialed_number + " Agent number: " + agent_number + " Date: " + call_date + " Length: " + call_length + " Record URL: " + record_url); //      HTTP     Net.httpRequest } else { //    Logger.write("Call failed. Code: " + failure_code + " Reason: " + failure_reason); //     HTTP     Net.httpRequest } }); //     function handleCallFailed(e) { failure_code = e.code; failure_reason = e.reason; VoxEngine.terminate(); } //     function handleCallDisconnected(e) { call_length = e.duration; VoxEngine.terminate(); } //    function handleCallsConnected(call1, call2) { connected = true; outbound_call.addEventListener(CallEvents.RecordStarted, function (e) { record_url = e.url; }); outbound_call.record(); // start call recording }
          
          





    名前を付けて保存します。 Webサービスに転送用の番号を返させ、コード内のwsURLを変更することを忘れないでください

  4. 番号付きの2つのオプションがあります- 直接VoxImplantに移動するか、SIP設定でトランクアドレスを指定して 、そこから通話をプラットフォームに送信します。
  5. 前に作成したトラッキングアプリケーションの編集に進み、[ルール]タブで、何らかの名前を付ける必要がある新しいルールを作成します(たとえば、InboundCalls、Patternは残すことができます)。スクリプトをAssignedにドラッグして保存します。
  6. 電話することができます




これは、コールトラッキングにVoxImplantを使用する概念を示す最​​も単純なシナリオです。これを複雑にして、一度に複数の番号に電話をかけるか、複数の番号に順番にダイヤルしようとすることができます。 使用可能な数よりも多くの番号が必要な場合は、番号を呼び出すときにクライアントが入力する内線番号をいつでも使用できます。 この場合、次のようなキープレス処理をコードに追加する必要があります。



 var inbound_call, ext = ''; //    VoxEngine.addEventListener(AppEvents.CallAlerting, function (e) { inbound_call = e.call; inbound_call.addEventListener(CallEvents.ToneReceived, function (callevent) { callevent.call.stopPlayback(); ext += callevent.tone; if (ext.length == 4) { wsURL += "?dialed_number=" + encodeURIComponent(dialed_number) + "&ext=" + ext; //     Net.httpRequest(wsURL, function (res) { if (res.code == 200) { //     agent_number = res.text; //    outbound_call = VoxEngine.callPSTN(agent_number, dialed_number); //          VoxEngine.easyProcess(e.call, outbound_call, handleCallsConnected); outbound_call.removeEventListener(CallEvents.Disconnected); outbound_call.addEventListener(CallEvents.Disconnected, handleCallDisconnected); outbound_call.removeEventListener(CallEvents.Failed); outbound_call.addEventListener(CallEvents.Failed, handleCallFailed); } else { //  -  -  ,   -     inbound_call.reject(); } }); } }); inbound_call.addEventListener(CallEvents.Connected, function (callevent) { inbound_call.say(",  .", Language.RU_RUSSIAN_FEMALE); }); inbound_call.answer(); });
      
      





おそらく、あなたは多くの興味深いことを思いつくことができますが、これはこの記事の範囲には含まれていません。 本格的なコールトラッキングサービスには多くの作業が必要であり、これを実行する既製のサービスにはお金がかかるだけではないことを覚えておくことが重要です。 コメントの質問にお答えします。



All Articles