Giter Site home page Giter Site logo

calltouchapi's Introduction

CalltouchAPI

Простой класс для работы с API сервиса Calltouch на языке Python


Документация по API Calltouch


Использование

Инициализация

Для начала работы с API Calltouch необходимо получить ключ доступа и идентификатор сайта (подробнее).

""" Инициализация класса """
config = {
		'calltouch': [
		{'name': 'Сайт №1', 'siteId': 1, 'token': 'aa'},
		{'name': 'Сайт №2', 'siteId': 2, 'token': 'bb'},
		{'name': 'Сайт №3', 'siteId': 3, 'token': 'cc'}
		]
	}

# Конфигурацию можно брать и из файла
# config_file = open('configs/calltouch.json')
# config = json.load(config_file)
# config_file.close()

for i in config['calltouch']:
	ct = CalltouchApi(i['siteId'], i['token'])

Получение статистики по звонкам

API допускает получать статистику по звонкам 2 способами:

В случае использования этого варианта имеется возможность уточнять степень детализации статистики:

  • Суммарное количество звонков за выбранный период
from calltouch_definition import CalltouchApi

ct = CalltouchApi(config)
stats = ct.captureStats('11/07/2017', '11/07/2017')
"""Помимо такого использования, можно явно указать степень разбиения статистики.
Например:
stats = ct.captureStats('11/07/2017', '11/07/2017', 'callsTotal')
"""
print(stats)
  • Суммарное количество звонков за выбранный период в разбивке по дням
import pprint
from calltouch_definition import CalltouchApi

pp = pprint.PrettyPrinter(indent = 4)
ct = CalltouchApi(config)
stats = ct.captureStats('11/07/2017', '11/07/2017', 'callsByDate')

print(stats)
  • Суммарное количество звонков из поисковых систем в разбивке по дням
import pprint
from calltouch_definition import CalltouchApi

pp = pprint.PrettyPrinter(indent = 4)
ct = CalltouchApi(config)
stats = ct.captureStats('11/07/2017', '11/07/2017', 'callsByDateSeoOnly')

print(stats)
  • Суммарное количество звонков из поисковых систем в разбивке по ключевым фразам
import pprint
from calltouch_definition import CalltouchApi

pp = pprint.PrettyPrinter(indent = 4)
ct = CalltouchApi(config)
stats = ct.captureStats('11/07/2017', '11/07/2017', 'callsByKeywords')

print(stats)

Входные параметры метода captureStats:

  • Дата начала сбора статистики (в формате dd/mm/yyyy)
  • Дата окончания сбора статистики (в формате dd/mm/yyyy)
  • Разбиение (необязательный параметр, в случае задания возможные значения: callsTotal, callsByDate, callsByDateSeoOnly, callsByKeywords)

Возвращаемое значение отличается в зависимости от выбранного типа разбиения:

  • При выборе статистики без разбивки возвращается целое число
  • При выборе статистики с разбивкой по дням (вне зависимости от того, выбираются все звонки или только из поисковых систем) возвращается список словарей с ключами date и calls
  • Пот выборе статистики с разбивкой по ключевым словам возвращается список словарей с ключами keyword и calls

При использовании этого варианта имеется возможность указать ряд параметров, в текущей реализации предусмотрена только их часть:

  • Модель атрибуции (последнее (0) или последнее непрямое (1) взаимодействие)
  • Возвращать только целевые звонки
  • Возвращать только уникальные звонки
  • Возвращать только уникально-целевые звонки
  • Возвращать только обратные звонки

Кроме того, метод позволяет получать статистику только за один день.

import pprint
from calltouch_definition import CalltouchApi

pp = pprint.PrettyPrinter(indent = 4)
ct = CalltouchApi(config)
stats = ct.captureCalls('11/07/2017')

print(stats)

Входные параметры метода captureCalls:

  • Дата сбора статистики (в формате dd/mm/yyyy)
  • Модель атрибуции (1 или 0)
  • Только целевые звонки (True, False)
  • Только уникальные звонки (True, False)
  • Только уникально-целевые звонки (True, False)
  • Только обратные звонки (True, False)
  • Возвращаемые данные в сыром или агрегированном по кампаниям виде (True, False)
  • Загрузка статистики за один день или период с указанной даты по вчерашний день (True, False)

Возвращаемое значение представляет собой список словарей следующего вида (в случае агрегированных данных):

{
  "date": "Дата из входных параметров",
  "source": "Источник трафика, с которого поступили звонки",
  "name": "Значение из utm_campaign для звонков",
  "ordinaryCalls": "Общее количество звонков для такой комбинации источника/кампании",
  "uniqCalls": "Количество уникальных звонков для такой комбинации источника/кампании",
  "targetCalls": "Количество целевых звонков для такой комбинации источника/кампании",
  "uniqTargetCalls": "Количество уникально-целевых звонков для такой комбинации источника/кампании"
}

Возможность скачивания записей звонков в формате mp3 реализована при помощи метода captureRecords

import pprint
from calltouch_definition import CalltouchApi

pp = pprint.PrettyPrinter(indent = 4)
ct = CalltouchApi('PasteYourSiteIdHere', 'PasteYourTokenHere')
stats = ct.captureCalls('11/07/2017', '1', 'false', 'false', 'false', 'false')
totalCallIDs = [i['callIDs'] for i in result]
totalCallIDs = [y for x in totalCallIDs for y in x]

saveResults = [ct.captureRecords('PasteYourNodeAddressHere', i) for i in totalCallIDs]
pp.pprint(saveResults)

Входные параметры метода captureRecords:

  • Адрес API-сервера для выбранного ранее сайта (определить можно при помощи формы в руководстве)
  • Идентификатор звонка в системе Calltouch

Возвращаемое значение представляет собой словарь следующего вида:

 {
   "status": "True|False",
   "message": "Сообщение о результате выполнения"
 }

В сообщение о результате выполнения записывает либо название файла, если сохранение завершено успешно, либо код ошибки от API-сервиса.

Зависимости

  • Python3+
  • Модули:
    • urllib
    • json
    • requests
    • BytesIO

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.