strategy_generator.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. # coding=utf-8
  2. def generateAdmob5FloorStrategy(ad_id_arr):
  3. """ 5层 的admob的请求策略,从中间第3层开始请求
  4. :param ad_id_arr: [am_5, am_4, am_3, am_2, am_1]
  5. :return: 策略json
  6. """
  7. platform = "admob"
  8. return {
  9. "root": ad_id_arr[2],
  10. "strategy": {
  11. ad_id_arr[2]: {
  12. "suc": 1,
  13. "fail": 1,
  14. "platform": platform,
  15. "suc_next": ad_id_arr[4],
  16. "fail_next": ad_id_arr[1],
  17. },
  18. ad_id_arr[4]: {
  19. "suc": 2,
  20. "fail": 1,
  21. "platform": platform,
  22. "fail_next": ad_id_arr[3],
  23. },
  24. ad_id_arr[3]: {
  25. "suc": 2,
  26. "fail": 2,
  27. "platform": platform,
  28. },
  29. ad_id_arr[1]: {
  30. "suc": 2,
  31. "fail": 1,
  32. "platform": platform,
  33. "fail_next": ad_id_arr[0],
  34. },
  35. ad_id_arr[0]: {
  36. "suc": 2,
  37. "fail": 2,
  38. "platform": platform,
  39. },
  40. }
  41. }
  42. def generate_ordered_floor_strategy(ad_id_arr, platform):
  43. """ 按顺序生成策略
  44. :param ad_id_arr: [] 从小到大 [fb_4, fb_3, fb_2]
  45. :param platform: string 平台
  46. :return: json 策略
  47. """
  48. dic_strategy = {}
  49. # 每一个
  50. for i in range(1, len(ad_id_arr)):
  51. dic_strategy[ad_id_arr[i]] = {
  52. "suc": 2,
  53. "fail": 1,
  54. "fail_next": ad_id_arr[i - 1],
  55. "platform": platform
  56. }
  57. # 最后一个
  58. dic_strategy[ad_id_arr[0]] = {
  59. "suc": 2,
  60. "fail": 2,
  61. "platform": platform
  62. }
  63. # 组装一下
  64. return {
  65. "root": ad_id_arr[-1],
  66. "strategy": dic_strategy
  67. }
  68. def generator_pool(ad_id_arr, priority_arr):
  69. # type: (list, list) -> dict
  70. """ 生成池子
  71. 两个数组必须一一对应
  72. :param ad_id_arr: []
  73. :param priority_arr: []
  74. :return: {ad_1: 2, ad_2: 1}
  75. """
  76. dic = {}
  77. for i in range(0, len(ad_id_arr)):
  78. ad_id = ad_id_arr[i]
  79. priority = priority_arr[i]
  80. dic[ad_id] = priority
  81. return dic