Passing call data

Step 1. Preparing data

Prepare special identifiers.

Step 2. Preparing the CSV file

Call data is passed in CSV format. There are several ways to do this:

In the file, specify the data that you want to pass to Yandex Metrica.

The first line must include column names.

Required columns:

  • UserId: Site user ID assigned by the site owner.
  • ClientId: Site user ID assigned by Yandex Metrica.
  • Yclid: ID of a click on a Yandex Direct ad assigned by Yandex Direct.
  • DateTime: Date and time of the conversion in Unix Time Stamp format. The time should be in the UTC+0 timezone.

Optional columns:

  • StaticCall: Whether the call is static (1 — static, 0 — dynamic).

    Static and dynamic calls

    The type of call is determined by the call tracker. With the dynamic method, the call tracker assigns a phone number to each user session, meaning it uses number substitution. When the call tracker transmits a dynamic call, Yandex Metrica links the call data to the nearest session appropriate by time. Static calls aren’t linked to user sessions. More information about call tracking methods.

    Yandex Metrica doesn’t link calls to users and user sessions in the following cases:

    • A user ID was transmitted that doesn't exist in the Yandex Metrica database.
    • The user’s session ended after the call that was transmitted to the service, or earlier than 21 days before the data was sent.
    • Conversion tracking was enabled after the data was sent to Yandex Metrica, and the 21-day window for tracking conversions hasn't yet passed.
  • Price: Goal cost, with full stop (.) as the decimal separator.

  • Currency: Currency code in three-letter ISO 4217 format.

  • PhoneNumber: Phone number without spaces (with both country code and area code). For example, +70123456789.

  • TalkDuration: Call duration in seconds.

  • HoldDuration: Time on hold in seconds.

  • CallMissed: Shows if the call was missed or answered (1 — missed, 0 — answered).

  • Tag: Custom tag. You can use tags to add your own comments, such as call quality or outcomes. For example, "customer wasn't happy with the price".

  • FirstTimeCaller: Shows if it was a first call or a repeat call (1 — first call, 0 — repeat call).

  • URL: Source URL for the call (the web page linked to the event). For example, this could be a campaign landing page specifying a phone number (PhoneNumber).

  • CallTrackerURL: Click-through URL to the call tracker interface.

Step 3. Transmitting data

Note

Create a CSV file with the data and send it using this method. We also recommend generating API requests automatically using modules written in a programming language.

Note

The data will appear in Yandex Metrica reports within 2 hours of upload.

To pass data, use the POST /management/v1/counter/{counterId}/offline_conversions/upload_calls method. The request includes the name of the goal that will be created when data is transmitted. This goal can then be added to Yandex Metrica reports.

Make sure to include the OAuth token and the tag ID in your input data.

$counter = "";            // Specify the tag ID
$token = "";              // Specify the OAuth token

$curl = curl_init("https://api-metrika.yandex.net/management/v1/counter/{counterId}/offline_conversions/upload_calls");

curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, array('file' => new CurlFile(realpath('file.csv'))));
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type: multipart/form-data", "Authorization: OAuth $token"));

$result = curl_exec($curl);

echo $result;

curl_close($curl);
import requests

counter = 123456
token = "token"

file = open("offline-conversions.csv", "r").read()

url = "https://api-metrika.yandex.net/management/v1/counter/{counterId}/offline_conversions/upload_calls".format(counter)
headers = {
	"Authorization": "OAuth {}".format(token)
}

req = requests.post(url, headers=headers, files={"file":file})

What's next?

To track a call upload status, use the GET /management/v1/counter/{counterId}/offline_conversions/calls_uploading/{id} method.

Learn more