Display Advertisement by Country Using .NET Framework

Why display advertisement based on visitor’s country

Online advertising is another way to promote company products. It’s very important to show the right advertisements to the right consumers to have an optimum response. A company selling their products in Japan showing their advertisement to visitors from United States is totally ineffective. On the other hand, localized advertisements catch visitor attention and improve sales.

How to display advertisement based on visitor’s country

In this example, we use a fully functional IP2Location™ .NET component available at https://www.ip2location.com/software/dot-net-component to query country by visitor’s IP address. Firstly, install the IP2Location™ .NET component by following the instructions on the component page. Then add a reference to this component from your Visual Studio web project. A copy of this component will be copied into /bin directory under the project. For unregistered components, there is a random 5-second delay when querying.

Sample Code (VB.NET)

Imports IP2Location
Private Sub Query(ByVal strIPAddress As String)
    Dim oIPResult As New IP2Location.IPResult
    Dim oIP2Location As New IP2Location.Component
    Try
        If strIPAddress <> "" Then
            oIP2Location.IPDatabasePath = "C:\Program Files\IP2Location\Database\IP-COUNTRY.SAMPLE.BIN"
            oIPResult = oIP2Location.IPQuery(strIPAddress)
            Select Case oIPResult.Status
                Case "OK"
                    If oIPResult.CountryShort = "JP" Then
                        ' Visitor is from Japan
                        ' Show advertisement from JP
                        Response.Write "<img src='Japan.jpg' border='0' width='100' height='200'>"
                    Else
                        ' Visitor is not from Japan
                        ' Show other advertisement
                        Response.Write "<img src='US.jpg' border='0' width='100' height='200'>"
                    End If
                Case "EMPTY_IP_ADDRESS"
                    Response.Write "IP Address cannot be blank."
                Case "INVALID_IP_ADDRESS"
                    Response.Write "Invalid IP Address."
                Case "MISSING_FILE"
                    Response.Write "Invalid Database Path."
            End Select
        Else
            Response.Write "IP Address cannot be blank."
        End If
    Catch ex As Exception
        ' do nothing
    Finally
        oIPResult = Nothing
        oIP2Location = Nothing
    End Try
End Sub

Sample Code (C#)

using IP2Location;
private void Query(string strIPAddress)
{
    IPResult oIPResult = new IP2Location.IPResult();
    IP2Location.Component oIP2Location = new IP2Location.Component();
    try
    {
        if (strIPAddress != "")
        {
            oIP2Location.IPDatabasePath = @"C:\Program Files\IP2Location\Database\IP-COUNTRY.SAMPLE.BIN";
            oIPResult = oIP2Location.IPQuery(strIPAddress);
            switch(oIPResult.Status.ToString())
            {
                case "OK":
                    if (oIPResult.CountryShort == "JP") {
                        Response.Write("<img src='Japan.jpg' border='0' width='100' height='200'>");
                    }
                    else {
                        Response.Write("<img src='US.jpg' border='0' width='100' height='200'>");
                    }
                    break;
                case "EMPTY_IP_ADDRESS":
                    Response.Write("IP Address cannot be blank.");
                    break;
                case "INVALID_IP_ADDRESS":
                    Response.Write("Invalid IP Address.");
                    break;
                case "MISSING_FILE":
                    Response.Write("Invalid Database Path.");
                    break;
            }
        }
        else
        {
            Response.Write("IP Address cannot be blank.");
        }
    }
    catch(Exception ex)
    {
        // do nothing
    }
    finally
    {
        oIPResult = null;
        oIP2Location = null;
    }
}

Was this article helpful?

Related Articles