ck 4 anni fa
parent
commit
7f1da0d8f9
5 ha cambiato i file con 43 aggiunte e 25 eliminazioni
  1. 14 10
      app/api_data/cost_util.py
  2. 10 5
      app/api_data/get_cost.py
  3. 1 6
      app/dailyRun.py
  4. 7 4
      app/etl/dw/dw_ad_day.py
  5. 11 0
      app/hourlyRun.py

+ 14 - 10
app/api_data/cost_util.py

@@ -297,7 +297,7 @@ def get_ad_cost_day(account_id,access_token,flag,st,et):
 
 def ad_cost_day_gdt(account_id,access_token,st,et):
     url = 'https://api.e.qq.com/v1.3/daily_reports/get'
-    fields = ('date', 'ad_id', 'cost', 'view_count', 'ctr', 'follow_count','web_order_count','order_amount')
+    fields = ('date', 'ad_id','adgroup_id', 'cost', 'view_count', 'ctr', 'follow_count','web_order_count','order_amount')
     li = []
     page = 1
     while True:
@@ -335,7 +335,7 @@ def ad_cost_day_gdt(account_id,access_token,st,et):
                 if i['cost']>0:
                     li.append(
                         (
-                            i['date'], i['ad_id'], i['cost']/100, i['view_count'], i['ctr']*i['view_count'],
+                            i['date'], i['ad_id'],i['adgroup_id'], i['cost']/100, i['view_count'], i['ctr']*i['view_count'],
                             i['follow_count'],i['web_order_count'],i['order_amount']/100,account_id,'GDT'
                         )
                     )
@@ -348,13 +348,13 @@ def ad_cost_day_gdt(account_id,access_token,st,et):
     # print(li)
     if len(li) > 0:
         print(f"{account_id} have ad cost :{len(li)} ")
-        db.quchen_text.executeMany('replace into ad_cost_day values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)', li)
+        db.quchen_text.executeMany('replace into ad_cost_day values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)', li)
         db.close()
 
 
 def ad_cost_day_mp(account_id,access_token,st,et):
     url = 'https://api.e.qq.com/v1.3/daily_reports/get'
-    fields = ('date', 'ad_id', 'cost', 'view_count', 'valid_click_count', 'official_account_follow_count','order_count','order_amount')
+    fields = ('date', 'ad_id','adgroup_id', 'cost', 'view_count', 'valid_click_count', 'official_account_follow_count','order_count','order_amount')
     li = []
     page = 1
     while True:
@@ -379,7 +379,10 @@ def ad_cost_day_mp(account_id,access_token,st,et):
 
         while True:
             r = requests.get(url, params=parameters).json()
-            # print(r)
+            # print(r['data']['list'])
+            # import pandas as pd
+            # print(pd.DataFrame(r['data']['list']))
+
             code = r['code']
             if code == 11017:
                 time.sleep(61)
@@ -391,7 +394,7 @@ def ad_cost_day_mp(account_id,access_token,st,et):
                 if i['cost']>0:
                     li.append(
                         (
-                            i['date'],i['ad_id'],i['cost']/100,i['view_count'],i['valid_click_count'],
+                            i['date'],i['ad_id'],i['adgroup_id'],i['cost']/100,i['view_count'],i['valid_click_count'],
                             i['official_account_follow_count'],i['order_count'],i['order_amount']/100,account_id,'MP'
 
                         )
@@ -403,9 +406,10 @@ def ad_cost_day_mp(account_id,access_token,st,et):
         else:
             page += 1
     # print(li)
+    # exit()
     if len(li) > 0:
         print(f"{account_id} have ad cost :{len(li)} ")
-        db.quchen_text.executeMany('replace into ad_cost_day values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)', li)
+        db.quchen_text.executeMany('replace into ad_cost_day values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)', li)
         db.close()
 
 def daily_reports_get(access_token, account_id, level, start_date, end_date, fields):  # 获取wx投放计划日报数据
@@ -524,12 +528,12 @@ def mysql_insert_adcreative(data):
 
 
 if __name__ == '__main__':
-    account_id = 19016239
-    access_token = '65407243a6072b7dee3a013b58225e16'
+    account_id = 14629666
+    access_token = 'e1c074d5e1a71435a52c1078f9d5804c'
     #
     account_id2 = 14709511
     access_token2 = 'e87f7b6f860eaeef086ddcc9c3614678'
-    # get_ad_cost_day(account_id2,access_token2,'GDT','2021-03-01','2021-03-24')
+    get_ad_cost_day(account_id,access_token,'MP','2021-04-05','2021-04-05')
 
 
 

+ 10 - 5
app/api_data/get_cost.py

@@ -42,9 +42,8 @@ GROUP BY b.account_id,b.access_token,b.type"""
 
 
 """广告日消耗"""
-def ad_cost_day(dt):
+def ad_cost_day(st,et):
 
-	st = et = dt
 	executor = ThreadPoolExecutor(max_workers=max_workers)
 	for account in get_accounts():
 		executor.submit(get_ad_cost_day, account[0], account[1],account[3],st,et)
@@ -95,7 +94,7 @@ def run(dt):
 		"""
 	try:
 
-		ad_cost_day(dt)
+		ad_cost_day(dt,dt)
 		ad(dt)
 		adcreative(dt)
 		image(dt)
@@ -117,8 +116,14 @@ if __name__ == '__main__':
 	# account_id2= 14709511
 	# access_token2 = 'e87f7b6f860eaeef086ddcc9c3614678'
 	# run()
-	# ad_cost_day()
+	# ad_cost_day('2020-04-08','2021-04-07')
+
 	#
 
-	day()
+	# day()
+	# run('2021-04-05')
+	for dt in list(reversed(du.getDateLists('2020-04-08','2021-04-07'))):
+		ad(dt)
+		adcreative(dt)
+		image(dt)
 

+ 1 - 6
app/dailyRun.py

@@ -1,9 +1,7 @@
 from app.api_data import get_order
 from app.etl import data_stat_run
 from model.DateUtils import DateUtils
-from app.api_data import get_cost
-from app.etl.dw import dw_ad_day
-from model.DingTalkUtils import DingTalkUtils
+
 du = DateUtils()
 
 
@@ -20,10 +18,7 @@ if __name__ == '__main__':
     # 阳光订单
     get_order.daily_yg()
 
-    # 广告数据
 
-    get_cost.day()  # 广告相关消耗数据
-    dw_ad_day.day()
 
 
 

+ 7 - 4
app/etl/dw/dw_ad_day.py

@@ -10,7 +10,7 @@ du=DateUtils()
 
 
 def run(dt):
-    sql=f"""SELECT a.dt,a.ad_id,b.ad_name,b.type,'',a.cost,view_count,click_count,follow_count,order_count,order_amount,
+    sql=f"""SELECT a.dt,b.type,sum(a.cost),sum(view_count),sum(click_count),sum(follow_count),sum(order_count),sum(order_amount),
             title,description,e.channel,pitcher,book,platform,stage,ifnull(image_id,'')
             from 
             ad_cost_day a 
@@ -18,8 +18,10 @@ def run(dt):
             left join adcreative_info c on b.adcreative_id=c.adcreative_id
             left join channel_by_account_daily e on b.account_id=e.account_id and a.dt=e.dt
             left join channel_info_daily f on e.channel=f.channel and e.dt=f.dt
+            where a.dt='{dt}'  
+            group by a.dt,b.type,title,description,e.channel,pitcher,book,platform,stage,image_id
             
-            where a.dt='{dt}'  """
+            """
 
 
     data = db.quchen_text.get_data_list(sql)
@@ -52,7 +54,7 @@ def run(dt):
 
     # print(data)
 
-    db.dm.executeMany("replace into dw_ad_day values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)",data)
+    db.dm.executeMany("replace into dw_image_cost_day values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)",data)
 
 
 
@@ -65,4 +67,5 @@ def day():
 
 
 if __name__ == '__main__':
-    day()
+    # day()
+    run('2021-04-07')

+ 11 - 0
app/hourlyRun.py

@@ -2,6 +2,8 @@
 from app.api_data import get_order
 from app.etl import data_stat_run
 from model.DateUtils import DateUtils
+from app.api_data import get_cost
+from app.etl.dw import dw_ad_day
 du=DateUtils()
 
 
@@ -17,5 +19,14 @@ if __name__ == '__main__':
     # 阳光订单
     get_order.yangguang()
 
+    # 广告数据
+
+    get_cost.day()  # 广告相关消耗数据
+    dw_ad_day.day()
+
+
+
+
+