Skip to content

Общие методы

Здесь описаны методы для получения баланса, статистики и работы с фильтрами.

aiosubgram.methods.general.GeneralMethods

GeneralMethods(*args, **kwargs)

Bases: MethodMixin

Source code in aiosubgram\methods\base.py
10
11
def __init__(self, *args, **kwargs):
    pass

Functions

get_balance async
get_balance() -> GetBalance

Возвращает текущий баланс аккаунта и краткую сводку по ботам. Требует api_token.

Returns:

Name Type Description
GetBalance GetBalance

Баланс и список ботов с их доходом.

Source code in aiosubgram\methods\general.py
13
14
15
16
17
18
19
20
21
22
23
24
25
26
async def get_balance(self) -> GetBalance:
    """
    Возвращает текущий баланс аккаунта и краткую сводку по ботам.
    Требует `api_token`.

    Returns:
        GetBalance: Баланс и список ботов с их доходом.
    """
    return await self._make_request(
    method="POST",
    endpoint="get-balance",
    response_model=GetBalance,
    key_type=KeyType.TOKEN
    )
get_filters async
get_filters() -> GetFilters

Возвращает список всех доступных значений для таргетинга (страны, языки, тематики). Не требует авторизации (но метод использует токен, если он есть в клиенте).

Returns:

Name Type Description
GetFilters GetFilters

Списки фильтров для рекламодателей и владельцев ботов.

Source code in aiosubgram\methods\general.py
28
29
30
31
32
33
34
35
36
37
38
39
40
41
async def get_filters(self) -> GetFilters:
    """
    Возвращает список всех доступных значений для таргетинга (страны, языки, тематики).
    Не требует авторизации (но метод использует токен, если он есть в клиенте).

    Returns:
        GetFilters: Списки фильтров для рекламодателей и владельцев ботов.
    """
    return await self._make_request(
        method="GET",
        endpoint="filters",
        response_model=GetFilters,
        key_type=KeyType.TOKEN
    )
get_statistic async
get_statistic(action: Literal['allads', 'ads', 'source', 'allbots', 'bots', 'sponsor'], ads_id: Optional[int] = None, bot_id: Optional[int] = None, start_date: Optional[Union[date, str]] = None, end_date: Optional[Union[date, str]] = None) -> GetStatistic

Универсальный метод получения статистики доходов и расходов. Требует api_token.

Parameters:

Name Type Description Default
action Literal['allads', 'ads', 'source', 'allbots', 'bots', 'sponsor']

Тип статистики (allads/ads/source для рекламодателей, allbots/bots/sponsor для владельцев).

required
ads_id Optional[int]

ID заказа (обязательно для actions: ads, source).

None
bot_id Optional[int]

ID бота (обязательно для actions: bots, sponsor).

None
start_date Optional[Union[date, str]]

Начальная дата (по умолч. 9 дней назад).

None
end_date Optional[Union[date, str]]

Конечная дата (по умолч. сегодня).

None

Returns:

Name Type Description
GetStatistic GetStatistic

Объект со статистическими данными (графики, таблицы).

Source code in aiosubgram\methods\general.py
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
async def get_statistic(
    self,
    action: Literal["allads", "ads", "source", "allbots", "bots", "sponsor"],
    ads_id: Optional[int] = None,
    bot_id: Optional[int] = None,
    start_date: Optional[Union[date, str]] = None,
    end_date: Optional[Union[date, str]] = None
) -> GetStatistic:
    """
    Универсальный метод получения статистики доходов и расходов.
    Требует `api_token`.

    Args:
        action: Тип статистики (allads/ads/source для рекламодателей, allbots/bots/sponsor для владельцев).
        ads_id: ID заказа (обязательно для actions: ads, source).
        bot_id: ID бота (обязательно для actions: bots, sponsor).
        start_date: Начальная дата (по умолч. 9 дней назад).
        end_date: Конечная дата (по умолч. сегодня).

    Returns:
        GetStatistic: Объект со статистическими данными (графики, таблицы).
    """
    if isinstance(start_date, date):
        start_date = start_date.strftime("%Y-%m-%d")
    if isinstance(end_date, date):
        end_date = end_date.strftime("%Y-%m-%d")

    params = {
        "api_token": self.api_token,
        "action": action,
        "ads_id": ads_id,
        "bot_id": bot_id,
        "start_date": start_date,
        "end_date": end_date,
        "output_format": "json"
    }

    request_params = {k: v for k, v in params.items() if v is not None}

    return await self._make_request(
        method="GET",
        endpoint="statistic",
        response_model=GetStatistic,
        params=request_params,
        key_type=KeyType.TOKEN
    )
toggle_exclusion async
toggle_exclusion(action: Literal['exclude', 'activate'], context: Literal['advertiser', 'publisher'], ads_id: int, bot_id: Optional[int] = None) -> ToggleExclusion

Управление черными списками (исключение ботов или спонсоров). Требует api_token.

Parameters:

Name Type Description Default
action Literal['exclude', 'activate']

'exclude' (добавить в ЧС) или 'activate' (убрать из ЧС).

required
context Literal['advertiser', 'publisher']

'advertiser' (рекламодатель блочит бота) или 'publisher' (владелец бота блочит спонсора).

required
ads_id int

ID заказа (или ID спонсора в контексте publisher).

required
bot_id Optional[int]

ID бота (обязателен для advertiser, опционален для publisher).

None

Returns:

Name Type Description
ToggleExclusion ToggleExclusion

Статус операции.

Source code in aiosubgram\methods\general.py
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
async def toggle_exclusion(
    self,
    action: Literal["exclude", "activate"],
    context: Literal["advertiser", "publisher"],
    ads_id: int,
    bot_id: Optional[int] = None
) -> ToggleExclusion:
    """
    Управление черными списками (исключение ботов или спонсоров).
    Требует `api_token`.

    Args:
        action: 'exclude' (добавить в ЧС) или 'activate' (убрать из ЧС).
        context: 'advertiser' (рекламодатель блочит бота) или 'publisher' (владелец бота блочит спонсора).
        ads_id: ID заказа (или ID спонсора в контексте publisher).
        bot_id: ID бота (обязателен для advertiser, опционален для publisher).

    Returns:
        ToggleExclusion: Статус операции.
    """
    params = {
        "api_token": self.api_token
    }

    payload = {
        "action": action,
        "context": context,
        "ads_id": ads_id,
        "bot_id": bot_id
    }

    json_data = {k: v for k, v in payload.items() if v is not None}

    return await self._make_request(
        method="POST",
        endpoint="toggle-exclusion",
        response_model=ToggleExclusion,
        params=params,
        json=json_data,
        key_type=KeyType.TOKEN
    )