Passing call data
Step 1. Preparing data
Prepare special IDs.
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.
Be sure to pass the column names in the first line.
Required columns:
UserId
: Site user ID assigned by the site owner.ClientId
: Site user ID assigned by Yandex Metrica.Yclid
: The 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 time zone.
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 is enabled after data was transmitted to Yandex Metrica and the conversion tracking period hasn't reached 21 days yet.
-
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 city code). For example, +70123456789. -
TalkDuration
: Call duration in seconds. -
HoldDuration
: Time on hold in seconds. -
CallMissed
: Whether the call was missed (1 — missed, 0 — answered). -
Tag
: Custom tag. You can use it for arbitrary comments, for example, on the call quality or results. For example, "customer wasn't happy with the price". -
FirstTimeCaller
: Whether it was the customer's first call (1 — primary 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 pass 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 uploading.
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.
In the input data, specify the OAuth token and the tag ID.
$counter = ""; // Specify the counter ID
$token = ""; // Specify the OAuth token
$curl = curl_init("https://api-metrica.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-metrica.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.