黑五网一期间,运营希望可以实时抓取广告营销的转化率
开始分析需求
1.看看数据是什么样子的.在Shopify后台可以在分析-报告中直接查看数据.
活动名称是广告的CampaignId,其余的列基本都是和订单相关.
2.开始看文档和社区问题.
3.GraphQL接口中,Order里面有两个属性,firstVisit和lastVisit,如果lastVisit不为null,就获取lastVisit的UTM,如果为null,就获取firstVisit的UTM
using ShopifySharp;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
namespace GetUTMTool
{
public class UpdateMain
{
private string ShopName = string.Empty;
private string ShopPassWord = string.Empty;
public UpdateMain(string shopname, string shoppassword)
{
ShopName = shopname;
ShopPassWord = shoppassword;
}
public async Task<GetUTMResponse> GetUTM(string orderid)
{
var graphService = new GraphService(ShopName, ShopPassWord);
string graphOrderId = "gid://shopify/Order/" + orderid;
string query = "";
query += "query MyQuery {";
query += " order(id: \"" + graphOrderId + "\") {";
query += " name ";
query += " customerJourney {";
query += " firstVisit {";
query += " referrerUrl";
query += " occurredAt";
query += " landingPageHtml";
query += " utmParameters {";
query += " campaign";
query += " source";
query += " }";
query += " source";
query += " }";
query += " lastVisit {";
query += " referrerUrl";
query += " occurredAt";
query += " landingPageHtml";
query += " utmParameters {";
query += " campaign";
query += " source";
query += " }";
query += " source";
query += " }";
query += " }";
query += " }";
query += "}";
var response = await graphService.PostAsync(query);
GetUTMResponse getUTMResponse = JsonConvert.DeserializeObject<GetUTMResponse>(response.ToString());
return getUTMResponse;
}
}
public class GetUTMResponse
{
public Order order { get; set; }
}
public class Order
{
public string name { get; set; }
public Customerjourney customerJourney { get; set; }
}
public class Customerjourney
{
public Firstvisit firstVisit { get; set; }
public Lastvisit lastVisit { get; set; }
}
public class Firstvisit
{
public string referrerUrl { get; set; }
public DateTime? occurredAt { get; set; }
public string landingPageHtml { get; set; }
public Utmparameters utmParameters { get; set; }
public string source { get; set; }
}
public class Lastvisit
{
public string referrerUrl { get; set; }
public DateTime? occurredAt { get; set; }
public string landingPageHtml { get; set; }
public Utmparameters utmParameters { get; set; }
public string source { get; set; }
}
public class Utmparameters
{
public string campaign { get; set; }
public string source { get; set; }
}
}