Skip to content

Commit b5421e7

Browse files
author
Адель
committed
fix: request bid modifier fields for readback
1 parent b5bef56 commit b5421e7

2 files changed

Lines changed: 71 additions & 1 deletion

File tree

app/yandex_direct.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,25 @@ def dictionaries_get(self) -> dict[str, Any]:
345345
def bidmodifiers_get(self, campaign_id: int | str) -> dict[str, Any]:
346346
return self._call(
347347
"bidmodifiers",
348-
{"method": "get", "params": {"SelectionCriteria": self._selection_by_campaign(campaign_id)}},
348+
{
349+
"method": "get",
350+
"params": {
351+
"SelectionCriteria": self._selection_by_campaign(campaign_id),
352+
"FieldNames": ["Id", "CampaignId", "AdGroupId", "Level", "Type"],
353+
"MobileAdjustmentFieldNames": ["BidModifier", "OperatingSystemType"],
354+
"TabletAdjustmentFieldNames": ["BidModifier", "OperatingSystemType"],
355+
"DesktopAdjustmentFieldNames": ["BidModifier"],
356+
"DesktopOnlyAdjustmentFieldNames": ["BidModifier"],
357+
"DemographicsAdjustmentFieldNames": ["Gender", "Age", "BidModifier", "Enabled"],
358+
"RetargetingAdjustmentFieldNames": ["RetargetingConditionId", "BidModifier", "Accessible", "Enabled"],
359+
"RegionalAdjustmentFieldNames": ["RegionId", "BidModifier", "Enabled"],
360+
"VideoAdjustmentFieldNames": ["BidModifier"],
361+
"SmartAdAdjustmentFieldNames": ["BidModifier"],
362+
"SerpLayoutAdjustmentFieldNames": ["SerpLayout", "BidModifier", "Enabled"],
363+
"IncomeGradeAdjustmentFieldNames": ["Grade", "BidModifier", "Enabled"],
364+
"AdGroupAdjustmentFieldNames": ["BidModifier"],
365+
},
366+
},
349367
)
350368

351369
def bidmodifiers_set(self, payload: dict[str, Any] | list[dict[str, Any]]) -> dict[str, Any]:

tests/test_yandex_extended_methods.py

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,58 @@ def handler(request: httpx.Request) -> httpx.Response:
5252

5353
assert captured["url"] == f"https://api.direct.yandex.com/json/v5/{service}"
5454
assert captured["body"]["method"] == direct_method
55+
if method_name == "bidmodifiers_get":
56+
params = captured["body"]["params"]
57+
assert params["FieldNames"] == ["Id", "CampaignId", "AdGroupId", "Level", "Type"]
58+
assert params["SelectionCriteria"]["CampaignIds"] == [710]
59+
assert set(params.keys()) == {
60+
"SelectionCriteria",
61+
"FieldNames",
62+
"MobileAdjustmentFieldNames",
63+
"TabletAdjustmentFieldNames",
64+
"DesktopAdjustmentFieldNames",
65+
"DesktopOnlyAdjustmentFieldNames",
66+
"DemographicsAdjustmentFieldNames",
67+
"RetargetingAdjustmentFieldNames",
68+
"RegionalAdjustmentFieldNames",
69+
"VideoAdjustmentFieldNames",
70+
"SmartAdAdjustmentFieldNames",
71+
"SerpLayoutAdjustmentFieldNames",
72+
"IncomeGradeAdjustmentFieldNames",
73+
"AdGroupAdjustmentFieldNames",
74+
}
75+
assert params["MobileAdjustmentFieldNames"] == [
76+
"BidModifier",
77+
"OperatingSystemType",
78+
]
79+
assert params["TabletAdjustmentFieldNames"] == [
80+
"BidModifier",
81+
"OperatingSystemType",
82+
]
83+
assert params["DesktopAdjustmentFieldNames"] == ["BidModifier"]
84+
assert params["DesktopOnlyAdjustmentFieldNames"] == ["BidModifier"]
85+
assert params["DemographicsAdjustmentFieldNames"] == [
86+
"Gender",
87+
"Age",
88+
"BidModifier",
89+
"Enabled",
90+
]
91+
assert params["RetargetingAdjustmentFieldNames"] == [
92+
"RetargetingConditionId",
93+
"BidModifier",
94+
"Accessible",
95+
"Enabled",
96+
]
97+
assert params["RegionalAdjustmentFieldNames"] == ["RegionId", "BidModifier", "Enabled"]
98+
assert params["VideoAdjustmentFieldNames"] == ["BidModifier"]
99+
assert params["SmartAdAdjustmentFieldNames"] == ["BidModifier"]
100+
assert params["SerpLayoutAdjustmentFieldNames"] == [
101+
"SerpLayout",
102+
"BidModifier",
103+
"Enabled",
104+
]
105+
assert params["IncomeGradeAdjustmentFieldNames"] == ["Grade", "BidModifier", "Enabled"]
106+
assert params["AdGroupAdjustmentFieldNames"] == ["BidModifier"]
55107
if method_name == "bidmodifiers_set":
56108
assert captured["body"]["params"]["BidModifiers"] == [
57109
{"CampaignId": 710, "Type": "MOBILE"}

0 commit comments

Comments
 (0)